Repository navigation
Four languages: German, Turkish, Thai, Traditional Chinese - #821
Merged
Merged
Conversation
Ohualtex's German translation, re-applied onto current main: - Localizable.xcstrings: the "de" localization of every main key #701 translates, nothing else changed; the newer whatsapp.* and update.* strings stay in English for now (whatsapp.remove and step.needs-input are translated: Windows shows them). - Deutsch in the language picker, CFBundleLocalizations of both Mac targets (Info.plist, InfoAppStore.plist, project.yml). - Windows and Linux: "de" in the language lists (gen-strings, i18n.ts, i18n.rs), #701's German values for extra.json, strings.json regenerated, and #701's tests. The Apple-catalog checks now accept strings newer than a translation, and the registration check lets the Mac have languages Windows and Linux don't. Co-Authored-By: Ohualtex <230626673+Ohualtex@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJm3SRL9k3gBPaVtfPhwcT
Ohualtex's Turkish translation, re-applied onto current main the same way as German: - Localizable.xcstrings: the "tr" localization of every main key #700 translates, nothing else changed; the newer whatsapp.* and update.* strings stay in English for now (whatsapp.remove and step.needs-input are translated: Windows shows them). - Türkçe in the language picker, CFBundleLocalizations of both Mac targets. - Windows and Linux: "tr" in the language lists, #700's Turkish values for extra.json, strings.json regenerated, and #700's tests (its registration check is the one the German commit already has). Co-Authored-By: Ohualtex <230626673+Ohualtex@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJm3SRL9k3gBPaVtfPhwcT
XBalanceZ's Thai translation: only the "th" localizations of Localizable.xcstrings from #790, for the keys main has, plus what a new Mac language needs: ไทย in the language picker and "th" in CFBundleLocalizations (Info.plist, InfoAppStore.plist, project.yml). The rest of #790 (YouTube pill and controller, notch width sliders, geometry and iPhone changes, the hand-edited project.pbxproj and Package.resolved) is not part of this. The newer whatsapp.* and update.* strings stay in English for now. Co-Authored-By: XBalanceZ <106819823+XBalanceZ@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJm3SRL9k3gBPaVtfPhwcT
shawn-t516's Traditional Chinese translation: - Localizable.xcstrings: the "zh-Hant" localization of every key, from #314 (plus the update.* and step.needs-input strings main gained since), and 繁體中文 in the language picker after 简体中文; CFBundleLocalizations of both Mac targets. - #314's wrapping of hard-coded English in String(localized:): outfit names (MochiWardrobe), PillCatalog category titles and subtitles, and the DeepSeek, Qwen and Moonshot "key saved" messages. Pill ids are unchanged. The catalog gains #314's new keys (those, plus literals the code already shows that the catalog lacked, and the plan card's Change plan, Auto mode and Manual buttons), each translated in every language; the ones Windows already translates in extra.json reuse those translations (and #701/#700's German and Turkish) and leave extra.json, since the Mac catalog now has them. Brand names and URLs keep their English text. - scripts/test-localization.py and its CONTRIBUTING note, now also run by the macOS Build workflow. Co-Authored-By: shawn-t516 <180199675+shawn-t516@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJm3SRL9k3gBPaVtfPhwcT
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJm3SRL9k3gBPaVtfPhwcT
Louis-CFM
force-pushed
the
feat/languages-de-tr-th-zh-hant
branch
from
October 20, 2026 00:24
2c55dd1 to
2bb7608
Compare
Localizable.xcstrings is main's with the de/tr/th/zh-Hant localizations copied in again by the same script, plus German, Turkish, Thai and Traditional Chinese for the strings #820 and #823 add (claude-desktop.*, alerts.all-pills*, "has a plan ready"; "Change plan", "Auto mode" and "Manual", now in main's catalog, keep main's entries plus the four new languages). strings.json regenerated with gen-strings.mjs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LJm3SRL9k3gBPaVtfPhwcT
This was referenced Oct 20, 2026
This was referenced Oct 23, 2026
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.
Four community translations in one branch, re-applied onto current main, one commit per language with its translator as co-author.
de)tr)th)zh-Hant)How the Mac catalog was merged. No PR's
Localizable.xcstringswas taken as is (the older ones would drop newer keys such aswhatsapp.*andupdate.*). A script went through main's keys and copied in each PR's localization for its new language only, everything else as on main, in Xcode's format: the diff is only added language entries.Strings still in English (newer than the translation, they fall back to English):
whatsapp.*and 29update.*strings)update.*,step.needs-input) so the catalog stays complete.The strings from #820 and #823 (
claude-desktop.*,alerts.all-pills*, the plan card's "has a plan ready", "Change plan", "Auto mode", "Manual") are translated in all four new languages.whatsapp.removeandstep.needs-inputare translated in de/tr/th because Windows shows "Remove" and "Needs input": without them the generator would drop those strings fromstrings.jsonfor every language. Same for the two extra.json entries main added recently (the island clock): they got German and Turkish values.Plumbing per language: the language picker in Settings,
CFBundleLocalizationsin Info.plist, InfoAppStore.plist and both targets in project.yml. Windows/Linux (German, Turkish): the language lists in gen-strings.mjs, i18n.ts and i18n.rs, the PRs'de/trvalues added to current main's extra.json, strings.json regenerated, and both PRs' tests. Two of those tests were relaxed: the Apple-catalog check now accepts strings newer than a translation (at least 85% must be translated), and the registration check lets the Mac have languages Windows and Linux don't (Thai, Traditional Chinese).Left out of #790: everything except the Thai strings. That's the YouTube pill and controller, the notch width sliders, the geometry and iPhone view changes, and the hand edits to project.pbxproj and Package.resolved. They have nothing to do with Thai, and the project file comes from xcodegen. #790 also didn't touch Info.plist or project.yml, so those lines are added here.
Kept from #314:
String(localized:)around outfit names, PillCatalog category titles and subtitles (pill ids unchanged), and the DeepSeek/Qwen/Moonshot "key saved" messages. The catalog gets its new keys: those strings plus some the code already showed but the catalog lacked, like "Display", "API key" and "Open Claude". Each one is translated in all 14 languages. Where Windows already had a translation in extra.json, it is reused there (with #701/#700's German and Turkish) and taken out of extra.json, since the Mac catalog now has it. Brand names and URLs keep their English text. The script passes on this tree and now runs in the macOS Build workflow. Its CONTRIBUTING note is kept.Checked locally: the catalog parses,
python3 scripts/test-localization.pypasses,npm testin windows/ passes (415 tests),gen-strings.mjs --checkis clean, and the changed CoucouKit files typecheck with Swift 6.1 on Linux (with a stub forString(localized:)).https://claude.ai/code/session_01LJm3SRL9k3gBPaVtfPhwcT
Generated by Claude Code