docs/.i18n/README.md
This folder stores translation config for the source docs repo.
Generated locale trees and live translation memory now live in the publish repo:
openclaw/docs~/Projects/openclaw-docsopenclaw/openclaw.docs/.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/**, or docs/th/**.openclaw/openclaw.main.openclaw/openclaw/.github/workflows/docs-sync-publish.yml mirrors the docs tree into openclaw/docs.docs/docs.json so the generated locale picker blocks exist there even though they are no longer committed in the source repo.openclaw/docs/.github/workflows/translate-all.yml waits for main to settle, translates only stale or missing locale pages, and uploads per-locale artifacts.chore(i18n): refresh translations commit.full run reconciles every locale/page path so flaky model failures are retried without making hot docs commits wait.th) and Persian (fa) docs plus translation memory even though Mintlify does not currently accept those codes in navigation.languages. Their absence from the built-in docs language picker is a host limitation, not a failed translation run.en, zh-CN, zh-TW, pt-BR, de, es, ja-JP, ko, fr, ar, it, tr, uk, id, pl, th, vi, nl, and fa.openclaw/docs.navigation.languages; today that includes Vietnamese (vi) and Dutch (nl), but not Thai (th) or Persian (fa).th or fa entries in generated docs/docs.json as a pipeline failure. Verify their generated folders in openclaw/docs instead.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, and tr-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.<lang>.json is an array of entries:
{
"source": "troubleshooting",
"target": "故障排除"
}
Fields:
source: English (or source) phrase to prefer.target: preferred translation output.scripts/docs-i18n still owns translation generation.x-i18n.source_hash into each translated page.x-i18n.source_hash.0, the expensive translation step is skipped entirely..openclaw-sync/source.json in the publish repo.OPENCLAW_DOCS_SYNC_TOKENOPENCLAW_DOCS_I18N_OPENAI_API_KEYTranslate All workflow in openclaw/docs first.