Add complete Italian UI localization (#1941)
* Add complete Italian UI localization Translate all 1509 English catalog entries originally, register Italiano, guard complete coverage and exercise Italian labels and UI rendering. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * i18n: Italian is a partial catalog it.json lacks 19 messages main has gained since this branch began, so as a complete catalog it would fail every_complete_catalog_carries_every_english_message. Like the other community languages, Italian is now partial: its gaps fall back to English and new labels don't require an Italian string. The docs line goes back to main's wording, with Italian among the partial catalogs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LGeCa5jWWdroMWvXxN3LLM --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ben Herbruck <bherbruck@herbrucks.com> Co-authored-by: bherbruck <brennen.herbruck@gmail.com> Co-authored-by: jyviko <2501648+jyviko@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
5 files changed
+1595
-5
No files matched your search
+11
-3
@@ -1,7 +1,7 @@
|
||||
# UI localization
|
||||
|
||||
SolidCraft embeds its translations and works offline. English, Japanese, German, French, Galician, Korean,
|
||||
Brazilian Portuguese, Russian, Ukrainian, Turkish 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, Czech, German, Spanish, French, Galician, Italian,
|
||||
Japanese, Korean, Brazilian Portuguese, Russian, Turkish, 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,7 +31,7 @@ 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, Galician, Korean, Brazilian Portuguese, Russian, French, Ukrainian and
|
||||
Japanese and Chinese are delivered complete; German, Spanish, Galician, Italian, Korean, Brazilian Portuguese, Russian, French, Ukrainian and
|
||||
Turkish 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.
|
||||
@@ -59,6 +59,14 @@ claim it, or the English-text lookup would silently pick one.
|
||||
|
||||
## Rendering and coverage
|
||||
|
||||
The Italian catalog uses original translations of SolidCraft's English messages, not text
|
||||
extracted from commercial CAD software. Its core terminology is Schizzo (Sketch),
|
||||
Estrusione (Extrude), Raccordo (Fillet), Smusso (Chamfer), Corpo (Body), Componente
|
||||
(Component) and Vincolo (Constraint). Draft geometry is Sformo, while a report draft
|
||||
is Bozza; Counterbore is Lamatura and Countersink is Svasatura. Established technical
|
||||
terms such as Loft, Sweep, Spline and Offset remain unchanged. Command IDs, shortcuts,
|
||||
file formats, units and user-provided names are not translated.
|
||||
|
||||
One immutable `Locale` type handles all translations. Table widgets without an app reference
|
||||
use a render scope that restores the previous locale when it exits, including nested renders.
|
||||
Standalone translated panels enter the same scope. Measure rendered text to size custom
|
||||
|
||||
Reference in new issue
Block a user