mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-14 19:27:05 -04:00
i18n: the effect catalog takes a language's tables, with Japanese's slot reserved (#821)
The Japanese data point in #821 (zitann2020) offered to write its rows against whatever mechanism this PR lands, so both languages share one catalog instead of inventing two. This makes adding a language a data change and reserves `ja`: - `Catalog` holds a language's effect rows and its category labels, and `catalog()` resolves a language code to one; adding a language is two tables and one arm, with no change to the lookups or to any panel. - `JAPANESE_EFFECTS` and `JAPANESE_CATEGORIES` are declared, keyed by the same effect ids and by the registry's English category names, and `ja` resolves to them. Both are empty, so a Japanese interface draws exactly what it drew before — the slot changes no behaviour on its own. - `a_pending_language_only_uses_known_ids` guards the pending tables (Japanese and Traditional Chinese) as rows arrive: an id Simplified Chinese does not know, a different English name for one of them, an empty translation or a repeated id fails. `languages_without_rows_draw_the_registry_name` asserts each pending language has an arm in `catalog()` (a table with no arm would leave a translator's rows dead) and is still row-less, so the day one gets rows the test says where its coverage moved. - `only_the_brand_names_stay_in_english` now documents that it pins *Simplified Chinese's* five brand names and is deliberately not shared: AE's Japanese interface keeps the whole `CC`, `VR` and `OCIO` sets in English while its Chinese one translates them, so repeating the English name is a language's choice and not an unfinished row. The row check reflects that (a repeated English name is accepted, an empty one is not). docs/localization-parity.md records the two empty tables and that each language decides for itself which names stay in English. Refs #821
This commit is contained in:
1 parent
40a8e50de9
commit
e655159382
2 files changed
+139
-65
No files matched your search
@@ -31,7 +31,12 @@ interface; Arabic and Hebrew text *in layers* is supported through its Middle Ea
|
||||
the drawing — the Effect menu, Effect Controls, the Timeline and Effects & Presets — goes
|
||||
through the catalog, so a project file is identical whichever interface language opens it.
|
||||
A repeat (`Gaussian Blur 2`) keeps the index the engine appends, and a group the user renamed
|
||||
in Effect Controls stays verbatim. No other language has rows yet, so they draw English.
|
||||
in Effect Controls stays verbatim. Adding a language there is two tables and one arm, and no
|
||||
panel changes: Traditional Chinese and Japanese have their tables in place and empty, so those
|
||||
languages draw English until a translator fills them (the Japanese set for #821 is what that
|
||||
slot is for). Each language decides for itself which names stay English — Adobe's Japanese
|
||||
interface leaves the `CC`, `VR` and `OCIO` sets in English while its Chinese one translates
|
||||
them — so a row repeating the English name is a choice, not a missing row.
|
||||
- **Not translated anywhere yet:** effect *parameter* names (≈ 1,650, `crates/effects`),
|
||||
engine-generated text (property names, errors, undo labels), the Home screen's unwrapped
|
||||
literals (#574), Learn tutorials and documentation.
|
||||
|
||||
Reference in new issue
Block a user