Add translations for 16 languages - #166
Open
danielchalmers wants to merge 3 commits into
Open
danielchalmers wants to merge 3 commits into
danielchalmers wants to merge 3 commits into
Conversation
All user-facing text now lives in Localization/Strings.resx and is looked up with {local:Loc Key} in XAML or Loc.Get in code, following the Windows display language with English as the fallback. The English UI is unchanged.
- Translations compile into the exe instead of satellite assemblies, because Costura doesn't embed the app's own satellites and the app ships as a single file
- Relative time ("in 3 days") picks plural forms per language instead of a fixed singular/plural pair
- Countdown presets that contain words ("{%d} days left") are translatable; theme preset names too
- Docs links drop /en-us so they open in the reader's language
- Tests that assert English text pin the UI language
Chinese (Simplified and Traditional), Japanese, Korean, German, French, Italian, Dutch, Spanish, Brazilian Portuguese, Indonesian, Vietnamese, Russian, Ukrainian, Polish, and Turkish. Regional variants fall back to the closest translation, such as de-AT to German and zh-CN to Simplified Chinese. Tests check every translation for missing or extra keys, changed placeholders or links, one unique access key per label, and the right number of plural forms. Another test makes sure every key used in XAML or code exists. Closes #160
danielchalmers
force-pushed
the
claude/ai-translated-localization-1b9e00
branch
from
September 22, 2026 19:49
65923af to
65ec08c
Compare
This was referenced Sep 22, 2026
danielchalmers
added this pull request to stack #170
September 22, 2026 20:00
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.
The app now follows the Windows display language. It includes translations for Simplified and Traditional Chinese, Japanese, Korean, German, French, Italian, Dutch, Spanish, Brazilian Portuguese, Indonesian, Vietnamese, Russian, Ukrainian, Polish, and Turkish. Regional variants use the closest translation (de-AT gets German, zh-CN gets Simplified Chinese), and anything else falls back to English:
Localization/Strings.resx, used with{local:Loc Key}in XAML andLoc.Getin codeDesktopClock.exe/en-usso they open in the reader's languageNot included:
{h:mm tt}are 12-hour patterns, so German shows1:01for 1:01 PMCloses #160