Repository navigation
fix(i18n): fill missing translations and replace English copies in six locales - #32246
Closed
seijikohara wants to merge 1 commit into
Closed
seijikohara wants to merge 1 commit into
seijikohara wants to merge 1 commit into
Conversation
…x locales es, fr, ja, ko and zh each lacked 230-248 entries that en.json has, and pt lacked 147, so those strings fell back to English. Some target values were also the English sentence itself (es 178, ko 108, ja 20, zh 20, fr 16). Add the missing entries through apply-translation-delta.mjs and replace the English copies with the same placeholder check and locale-translation-policy repairs. Keep the ja action label "Open" as 開く for the host sign-in button, like the two existing overrides. Leave out the 11 provider balance keys, which provider-credit-balance-locales.test.ts pins to the English fallback, and the 70 pt keys that stablyai#32017 already fills. Part of stablyai#32207.
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ELI5
When Orca runs in Spanish, French, Japanese, Korean, Portuguese or Chinese, some labels and messages still show up in English. Either their translation is missing, or the "translation" is a copy of the English sentence. This PR adds those translations.
What Changed
Before:
pnpm run verify:localization-catalogreported 230–248 missing entries for es, fr, ja, ko and zh, and 147 for pt. The runtime falls back to English for each of them. Some target values were also the English sentence itself.After:
How:
config/scripts/apply-translation-delta.mjs, which checks placeholders and runsrepairTranslatedValuefromlocale-translation-policy.mjs.repairTranslatedValuein a one-off script that was not committed. It also refuses to overwrite a value that is not the English copy. The policy repairs changed no value.config/scripts/locale-ja-key-overrides.mjsgets one entry:accounts.hostSignIn.open→ 開く. The policy maps a bare "Open" to オープン, the PR state; this key is the button that opens the sign-in page, like the two existing overrides.Left out on purpose:
auto.components.status.bar.StatusBar.*andtooltip.*balance copy,apiKeyBalanceUnavailable).src/renderer/src/i18n/provider-credit-balance-locales.test.ts(from Show provider credit balances alongside usage limits #25408) asserts that es, fr, ja, ko and zh omit them and fall back to English. Translating them means changing that test, which is a separate decision.auto.lib.agent.catalog.*or key names such as "Tab". The rest need a case-by-case call. Two places now read oddly because a sibling label is one of them: esPluginsSettingsSection.emptymentions a "Todos" tab whose label is still "All", and frSleepTwinWorkspaceDialog.alsoSleepssits under the English title "Sleep Workspace".Why
The catalog sync never edits target catalogs (
config/localization-audit.md), so new English keys stay missing until a localization change fills them. Using the repository's own delta script and translation policy keeps the existing glossary repairs: brand names, CJK spacing, and the ja and ko overrides.Linked Issue
Fixes #32316
#32316 is area A1 and A2 of #32207, which lists every remaining localization gap.
Visual Proof
Settings → Agents → Agent Permissions with the UI language set to Japanese. Before, the description and the Auto label fell back to English.
Both images come from a hidden launch of each build (
electron-vite build --mode e2e, an isolated E2E profile withuiLanguage: 'ja',ORCA_BACKGROUND_LAUNCH=1), captured through Playwright.Testing
Tested on macOS (Apple silicon) only. The change is data; it has no platform-specific code.
Manual: I built main @ 22a95c4 and this branch, launched each hidden with a Japanese E2E profile, and opened Settings → Agents (screenshots above).
The localization checks pass:
pnpm run verify:localization-catalog: es, fr, ja, ko and zh 16908/16919 translated; pt 16849/16919pnpm run verify:localization-catalogspnpm run verify:localization-extractionpnpm run verify:localization-coveragepnpm run verify:localization-runtime-catalogpnpm lintandpnpm typecheckpass.pnpm testfails locally in 385 of 13,490 test files. None of the failures comes from this change:mapfile: command not found,MOBILE_CI_ARGS[@]: unbound variable),/varversus/private/vartemp paths, zsh prompt and PTY timeouts, and an unresolved@electron-toolkit/tsconfig.pnpm buildfails locally while bundling the mobile web app:react-native-webandexpo-routercannot be resolved. Unmodified main @ 22a95c4 fails the same way here.I manually tested these changes locally
Automated tests added/updated, or explained why not below
No new tests: this is a data-only change, and the existing catalog checks and tests above cover placeholders, parity and policy repairs.
AI Disclosure
Translations were produced with Claude Code (Claude Opus 5.5). One agent per locale worked from the English source and the terms already used in that locale's catalog and in
locale-translation-policy.mjs. I read every ja value. The es, fr, ko, pt and zh values are machine-translation quality: they were checked by separate review agents and spot-checked by me. Review by native speakers is welcome.Review
AI review with Claude Code (Claude Opus 5.5).
Translations: one review agent each for es + pt, fr, and ko + zh read every changed value. They checked meaning, terminology against the existing catalog, grammar and register, and consistency inside the change set. The fixes they led to:
Compatibility and risk:
locale-translation-policy.mjs. No key underauto.lib.agent.catalog.*changes.en-runtime-required.json, the boot bundle, is unchanged.<agents>tag match the English.Agent skill upstream boundary
Notes
Author
X handle: none.
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)