Skip to content

Commit c04bf71

Browse files
chaxusclaude
andcommitted
feat(i18n): finish the six shell locales, not just their first 19 strings
The language menu has offered eight languages for a while, but only English and Chinese had complete tables. The other six carried 19 of 90 keys -- the landing buttons and the theme switcher -- and everything past that fell back to English. So a German, Japanese, Korean, Spanish, Portuguese or Persian visitor got their own language on the homepage and English the moment they opened the AI panel, hit an autosave warning, or went to the saved-documents page. 426 strings translated, and the tables are complete. Two things the translations had to keep. Interpolation placeholders survive verbatim ({size}, {title}, {when}, {days}, {count}, {page}, {pages}) -- message-placeholders cases already cover that. And Persian is RTL, so its arrows point the other way: agentSwitchCloud reads "← به حالت ابری بروید", not a left-to-right arrow flipped by the browser. The suite gains a per-locale completeness case, because the old shape of this bug is invisible: a missing key still renders, in English, and only a reader of that language would ever notice. It walks every key in every table and fails with the names of the ones still matching English. Two exceptions are declared rather than assumed -- "Web Office" is the product name, and Spanish "Error" is genuinely the English word. The fallback path is still tested, but against a key no table defines instead of a real one, so completeness and fallback cannot be satisfied by the same gap. It also replaces a case that asserted German's agentSend was "Send", which was the old deliberate-English behaviour this change removes. Reverse-verified: drop historyOpen from the German table and the case fails naming that key. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent aabd740 commit c04bf71

2 files changed

Lines changed: 541 additions & 12 deletions

File tree

0 commit comments

Comments
 (0)