mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-18 21:54:49 +00:00
* fix(gateway): persist critical memory pressure bundles * docs(gateway): add memory pressure troubleshooting * feat(gateway): gate memory pressure bundles * feat(gateway): flatten memory pressure bundle config * feat(gateway): rename memory pressure snapshot config * fix(gateway): make memory pressure snapshots opt in * docs(config): refresh config baseline * fix(config): simplify memory pressure migration default
OpenClaw docs i18n assets
This folder stores translation config for the source docs repo.
Generated locale trees and live translation memory now live in the publish repo:
- repo:
openclaw/docs - local checkout:
~/Projects/openclaw-docs
Source of truth
- English docs are authored in
openclaw/openclaw. - The source docs tree lives under
docs/. - The source repo no longer keeps committed generated locale trees such as
docs/zh-CN/**,docs/zh-TW/**,docs/ja-JP/**,docs/es/**,docs/pt-BR/**,docs/ko/**,docs/de/**,docs/fr/**,docs/ar/**,docs/it/**,docs/vi/**,docs/nl/**,docs/fa/**,docs/tr/**,docs/uk/**,docs/id/**,docs/pl/**, ordocs/th/**.
End-to-end flow
- Edit English docs in
openclaw/openclaw. - Push to
main. openclaw/openclaw/.github/workflows/docs-sync-publish.ymlmirrors the docs tree intoopenclaw/docs.- The sync script rewrites the publish
docs/docs.jsonso the generated locale picker blocks exist there even though they are no longer committed in the source repo. openclaw/docs/.github/workflows/translate-all.ymlwaits formainto settle, translates only stale or missing locale pages, and uploads per-locale artifacts.- The publish repo finalizer applies successful locale artifacts and pushes one aggregate
chore(i18n): refresh translationscommit. - A weekly
fullrun reconciles every locale/page path so flaky model failures are retried without making hot docs commits wait.
Why the split exists
- Keep generated locale output out of the main product repo.
- Keep Mintlify on a single published docs tree.
- Preserve the built-in language switcher for Mintlify-supported generated locales by letting the publish repo own generated locale trees.
- Keep generated Thai (
th) and Persian (fa) docs plus translation memory even though Mintlify does not currently accept those codes innavigation.languages. Their absence from the built-in docs language picker is a host limitation, not a failed translation run.
Locale visibility
- Control UI supports
en,zh-CN,zh-TW,pt-BR,de,es,ja-JP,ko,fr,ar,it,tr,uk,id,pl,th,vi,nl, andfa. - Docs translation workflows generate the same non-English locale set in
openclaw/docs. - The Mintlify docs language picker can expose only the locales accepted by Mintlify
navigation.languages; today that includes Vietnamese (vi) and Dutch (nl), but not Thai (th) or Persian (fa). - Do not treat missing
thorfaentries in generateddocs/docs.jsonas a pipeline failure. Verify their generated folders inopenclaw/docsinstead.
Files in this folder
glossary.<lang>.json— preferred term mappings used as prompt guidance.zh-Hans-navigation.json— curated zh-Hans Mintlify locale navigation reinserted into the publish repo during sync.ar-navigation.json,de-navigation.json,es-navigation.json,fr-navigation.json,id-navigation.json,it-navigation.json,ja-navigation.json,ko-navigation.json,pl-navigation.json,pt-BR-navigation.json, andtr-navigation.json— starter locale metadata kept alongside the source repo, but the publish sync now clones the full English nav tree for clone-en locales so translated pages are visible in Mintlify without hand-maintaining per-locale nav JSON.<lang>.tm.jsonl— translation memory keyed by workflow + model + text hash.
In this repo, generated locale TM files such as docs/.i18n/zh-CN.tm.jsonl, docs/.i18n/zh-TW.tm.jsonl, docs/.i18n/ja-JP.tm.jsonl, docs/.i18n/es.tm.jsonl, docs/.i18n/pt-BR.tm.jsonl, docs/.i18n/ko.tm.jsonl, docs/.i18n/de.tm.jsonl, docs/.i18n/fr.tm.jsonl, docs/.i18n/ar.tm.jsonl, docs/.i18n/it.tm.jsonl, docs/.i18n/vi.tm.jsonl, docs/.i18n/nl.tm.jsonl, docs/.i18n/fa.tm.jsonl, docs/.i18n/tr.tm.jsonl, docs/.i18n/uk.tm.jsonl, docs/.i18n/id.tm.jsonl, docs/.i18n/pl.tm.jsonl, and docs/.i18n/th.tm.jsonl are intentionally no longer committed.
Glossary format
glossary.<lang>.json is an array of entries:
{
"source": "troubleshooting",
"target": "故障排除"
}
Fields:
source: English (or source) phrase to prefer.target: preferred translation output.
Translation mechanics
scripts/docs-i18nstill owns translation generation.- Doc mode writes
x-i18n.source_hashinto each translated page. - The publish workflow precomputes a pending file list by comparing the current English source hash to the stored locale
x-i18n.source_hash. - If the pending count is
0, the expensive translation step is skipped entirely. - If there are pending files, the workflow translates only those files.
- Locale workers retry transient model-format failures, but unchanged files stay skipped because the same hash check runs on each retry.
- Locale workers upload artifacts; the publish repo finalizer commits all successful locale outputs together.
- Published GitHub releases dispatch one aggregate translation refresh so release docs can catch up without waiting for the weekly reconciliation.
Operational notes
- Sync metadata is written to
.openclaw-sync/source.jsonin the publish repo. - Source repo secret:
OPENCLAW_DOCS_SYNC_TOKEN - Publish repo secret:
OPENCLAW_DOCS_I18N_OPENAI_API_KEY - If locale output looks stale, check the
Translate Allworkflow inopenclaw/docsfirst.