Skip to content

fix(cli): translate the CLI for every locale (38 catalogs were nearly empty) - #13892

Merged
diegosouzapw merged 4 commits into
release/v3.8.51from
feat/i18n-cli-catalog-sync
Sep 16, 2026
Merged

diegosouzapw merged 4 commits into
release/v3.8.51from
feat/i18n-cli-catalog-sync

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

Summary

Tasks 1–3 of the i18n completion plan. The 2026-09-16 audit found that 38 of the 65 CLI catalogs carried 1–24 of 830 keys (ar, ru, ja, de, fr, es, it, … only the 24 newest locales and zh-CN/zh-TW/pt-BR were complete) — the CLI silently fell back to English for them, and check:cli-i18n only compares pt-BR/zh-CN/zh-TW so nothing noticed.

  • scripts/i18n/sync-ui-keys.mjs --catalog=cli (exported resolveCatalog): the same syncer targets bin/cli/locales with its own allowlist untranslatable-cli-keys.json.
  • scripts/i18n/check-key-completeness.mjs --catalog=cli (npm run i18n:check-keys:cli): blocking key-set parity for the CLI catalogs, wired into the i18n-ui-coverage job next to the dashboard gate; documented in QUALITY_GATES.md and the i18n guide.
  • 65 catalogs synced: 52,000 strings translated (codex/gpt-5.6-sol-low, 3 workers, 28 min), 0 __MISSING__, every catalog carries all 830 keys; placeholders ({port}, {message}, ${cost} …) verified leaf by leaf against English — the pre-existing zh-CN/zh-TW health.cost regains its ${cost}.

Validation

Check Result
i18n-sync-ui-keys-catalog, i18n-key-completeness, i18n-sync-ui-keys-retranslate, cli-i18n-catalog 20/20
npm run i18n:check-keys:cli OK — 65 locales carry all 830 keys of en.json, none extra
npm run check:cli-i18n PASS
placeholder parity over 53,950 CLI leaves 0 drifts; 0.1 % of leaves identical to English (brand/command words)
prettier on the 65 catalogs, scripts, tests, docs clean
check:docs-all docs-sync / frontmatter / links / fabricated green; check:docs-counts fails only on the environmental readCodeFacts unavailable — tsx/spawnSync failed (every real count passes); check:env-doc-sync red is inherited (OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE, CDP_PROXY_TOKEN — base tip)

Samples: de serve.starting → "OmniRoute-Server wird auf Port {port} gestartet …", ja → "ポート {port} で OmniRoute サーバーを起動しています…", ar → "جارٍ بدء تشغيل خادم OmniRoute على المنفذ {port}…".

⚠️ base-red inherited: #12732

… empty)

Task 3 of the i18n completion plan. `sync-ui-keys --catalog=cli
--retranslate-identical --translate-markers` over the 65 CLI catalogs:
52,000 strings translated in 28 minutes, 0 `__MISSING__` left, every
catalog now carries all 830 keys of bin/cli/locales/en.json (the new
`i18n:check-keys:cli` gate turns green). Placeholders verified against the
English source for every leaf; the pre-existing zh-CN / zh-TW
`health.cost` values regain their `${cost}` placeholder.
@diegosouzapw
diegosouzapw merged commit 9d92844 into release/v3.8.51 Sep 16, 2026
15 of 21 checks passed
@diegosouzapw
diegosouzapw deleted the feat/i18n-cli-catalog-sync branch September 16, 2026 15:28
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
… empty) (diegosouzapw#13892)

sync-ui-keys --catalog=cli + blocking i18n:check-keys:cli gate; 65 CLI catalogs synced (52,000 strings, 0 __MISSING__, all 830 keys, placeholders verified). ⚠️ base-red inherited: diegosouzapw#12732
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant