Complete zh-CN/zh-TW/ja-JP translations and fix garbled entries#189
Conversation
Several components rendered English UI text directly instead of going through t(), bypassing the existing i18n system. Most were pre-i18n codepaths (CookiesTab, ApiKeySection) or surfaces never migrated (floatbar/SettingsSection, AboutTab update flow, OpenAiExtras). - Add ~70 new LocaleKey variants (synced across locale.rs, keys.ts, en-US.ftl) - Replace hardcoded literals with t() in 17 components - Many strings reuse already-existing keys that were simply not wired up - Update affected test assertions
ja-JP was almost entirely untranslated (~430 entries). zh-CN/zh-TW each had ~70 untranslated entries. All three had garbled (????) entries from encoding corruption at the file ends. - ja-JP: translated ~430 entries (0% to fully localized) - zh-CN/zh-TW: filled ~70 untranslated entries each - Fixed all garbled (????) entries (PredictivePaceWarnings, ShowResetWhenExhausted, etc.) - zh-TW: corrected TabMenuBar wording (選單列 -> 選單欄) - Brand names / tech terms kept in English per CJK UI convention
|
Thanks for the PR, I will review it ASAP |
|
Follow-up validation at the current head (a294971): the previously reported issues are not fixed yet.
The 78 keys introduced by the cumulative localization change are still absent from |
|
I re-audited the
The remaining Latin-script terms are intentionally preserved because they are standard product names, technical terms, or literal identifiers that should not be translated, such as CodexBar, Codex, Claude, GitHub, Google Cloud, API, OAuth, CLI, IDE, Cookie, token, URL, environment variables, paths, and API endpoint placeholders. I can confidently review the Simplified Chinese, Traditional Chinese, and Japanese translations. I do not speak Korean or Spanish well enough to responsibly claim translation quality for those resources, so their missing entries use the explicit English fallback contract introduced in #187 rather than unreviewed translations. Validation:
|
Summary
The
zh-CN,zh-TW, andja-JPlocale files had significant gaps:ja-JP.ftlwas almost entirely untranslated (~430 English-only entries),zh-CN/zh-TWeach had ~70 untranslated entries, and all three had garbled (????????) entries caused by encoding corruption at the end of the files. This completes the translations and fixes the corruption.What changed
BrowserCookiePlaceholderOllama.????) entries inPredictivePaceWarnings,ShowResetWhenExhausted, etc. across the three files.zh-TW: correctedTabMenuBarwording (選單列→選單欄).Brand names and technical terms (OAuth, API, CLI, Cookie, Codex/Claude, Gemini CLI, JetBrains IDE, URLs) are intentionally kept in English per common CJK UI convention.
Translator note
I'm a student from China who has studied in Japan and Macau, so I'm fluent in Simplified Chinese, Traditional Chinese, and Japanese. The translations were drafted with AI assistance and then reviewed and corrected by me entry-by-entry for natural phrasing and terminology consistency across the three languages. The garbled-entry fix was the original motivation — I noticed the
????????strings while using the app and traced them to encoding corruption in the.ftlfiles.Verification
```
pnpm --dir apps/desktop-tauri run check-locale # 668 keys match
pnpm --dir apps/desktop-tauri test # 152/152 passed
cargo test --manifest-path rust/Cargo.toml # settings tests pass
cargo fmt --all
```