effectcraft/docs
WaWu e655159382 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
2026-10-13 14:13:28 +08:00
..
brand Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:24 -04:00
fidelity Keyframes: auto-Bezier spatial tangents follow After Effects 2026-10-11 02:44:49 +05:30
images M0.11: README rewrite with headless screenshots (hero, graph editor, effects, 3D, render queue) 2026-10-01 23:31:40 -04:00
agents.md Merge pull request #462 from storytold/fix/417-viewer-resolution 2026-10-12 04:21:14 -04:00
architecture.md Merge pull request #462 from storytold/fix/417-viewer-resolution 2026-10-12 04:21:14 -04:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#228) 2026-10-07 21:16:47 -04:00
control-protocol.md Merge pull request #462 from storytold/fix/417-viewer-resolution 2026-10-12 04:21:14 -04:00
effects-parity.md #757: Transitions animation presets in Effects & Presets 2026-10-11 12:24:10 +02:00
effects.md Fix tests after the community merges: GPU Pixel Motion Blur without a host, timeline footage kind, effects doc 2026-10-12 04:18:51 -04:00
file-format-parity.md Merge pull request #768 from vangel76/fix-762-animated-webp 2026-10-12 03:22:30 -04:00
footage.md Import: only dropped files default to stills; scripts and agents naming a frame still get its run (#431) 2026-10-10 20:15:24 +00:00
gaps.md i18n: an effect's name draws in the interface language, the generated Effect menu included (#821) 2026-10-13 13:39:16 +08:00
hardware-parity.md #486: move a panel into its own native window (multiple monitors) 2026-10-11 13:10:12 +02:00
localization-parity.md i18n: the effect catalog takes a language's tables, with Japanese's slot reserved (#821) 2026-10-13 14:13:28 +08:00
mcp.md MCP: --automation-read-root / --automation-write-root confine the agent's file access (#500) 2026-10-10 22:54:57 +00:00
plugins.md Merge pull request #775 from vangel76/script-766-mouse-events 2026-10-12 03:20:52 -04:00
preferences.md Merge pull request #888 from vangel76/fix-882-viewer-pixel-exact 2026-10-12 04:22:01 -04:00
releasing.md Release prep: 0.8.0 and a Linux riscv64 release build (#669) 2026-10-10 21:08:18 -04:00
roadmap.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
scripting-parity.md Merge pull request #775 from vangel76/script-766-mouse-events 2026-10-12 03:20:52 -04:00
target-app-parity.md Merge pull request #462 from storytold/fix/417-viewer-resolution 2026-10-12 04:21:14 -04:00
testing.md Effects: the sim golden test accepts macOS 27's libm hash for Mr. Mercury (#232) 2026-10-08 13:36:09 +07:00
ui-parity.md Merge pull request #774 from vangel76/gap-proportional-scrubbing 2026-10-12 03:20:51 -04:00
web.md Web: the layer and footage caches stay small enough for eight stacked clips 2026-10-09 16:44:15 -05:00