French (fr) UI localization (#1224)

Adds a French catalog as a partial locale (missing strings fall back to English, like Russian), registered in the language list, with tests and attribution.
This commit is contained in:
rlartot authored and GitHub committed 2026-10-14 19:05:17 -04:00
1 parent 1cc65cbc91
commit e4ef6cfe29
7 files changed
+1083 -14

No files matched your search

+4 -4
View File
@@ -1,7 +1,7 @@
# UI localization
SolidCraft embeds its translations and works offline. English, Japanese, German, 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
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,9 @@ 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 and Russian are partial — their
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 may follow later.
new label needs en, ja, zh, de and ko; Russian and French 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.