Add Ukrainian localization (uk) (#1196)

Ukrainian UI catalog; untranslated keys fall back to English.
This commit is contained in:
Igor Bronovskyi authored and GitHub committed 2026-10-14 20:10:45 -04:00
1 parent 9935133b56
commit 861ab027b6
7 files changed
+1063 -16

No files matched your search

+6 -5
View File
@@ -1,7 +1,7 @@
# UI localization
SolidCraft embeds its translations and works offline. English, Japanese, German, French, Korean, Russian
and Chinese are currently registered in `crates/ui-egui/src/i18n.rs`. Adding a language requires an
SolidCraft embeds its translations and works offline. English, Japanese, German, French, Korean,
Russian, Ukrainian and Chinese are currently registered in `crates/ui-egui/src/i18n.rs`. Adding a language requires an
embedded catalog and one registration there; the preferences selector and validation use the same
registry.
@@ -31,9 +31,10 @@ that looks untranslated. Two guards catch that in the build:
- `every_complete_catalog_carries_every_english_message` — adding a key to `en.json`
without giving it to a complete catalog fails the tests. English is the source catalog,
Japanese and Chinese are delivered complete; German, Korean, Russian and French are partial — their
gaps fall back to English and are reported by `cargo xtask i18n` without failing the build. A
new label needs en, ja, zh, de and ko; Russian and French may follow later.
Japanese and Chinese are delivered complete; German, Korean, Russian, French and Ukrainian are
partial — their gaps fall back to English and are reported by `cargo xtask i18n` without
failing the build. A new label needs en, ja, zh, de and ko; Russian, French and Ukrainian may
follow later.
- `every_toolbar_tab_and_panel_is_in_the_english_catalog` — tabs and panels reach the UI as bare
source strings, resolved only by the English-label adapter, so a heading missing from `en.json`
can never translate.