Files
effectcraft/docs/localization-parity.md
Brandon Thomas af671f6997 Merge pull request #987 from Losminek/cs-ui
i18n: add Czech (cs) interface language

# Conflicts:
#	crates/engine/src/prefs.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ui.rs
#	docs/localization-parity.md
2026-10-12 05:22:10 -04:00

7.0 KiB
Raw Permalink Blame History

Localization parity

Last reviewed: 2026-10-10 · Last updated: 2026-10-11 · Change: minor (Ukrainian panel catalog recounted after it caught up with the Chinese ones) · Target: Adobe After Effects 2026

How much of EffectCraft's interface is translated, language by language, compared with After Effects. gaps.md gap 16 and workstream G9 hold the work; target-app-parity.md the overall numbers.

What After Effects ships

The installed After Effects 2026 (26.5.0.89) bundle has 11 .lproj localisations: English, French, German, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Spanish, Simplified Chinese (zh_CN) and Traditional Chinese (zh_TW). Each translates the whole interface, including effect names and parameters. It ships no Hindi, Arabic, Indonesian or Vietnamese interface; Arabic and Hebrew text in layers is supported through its Middle Eastern text engine.

How EffectCraft translates

  • Menus: crates/ui-egui/src/i18n.rs, one catalog per language keyed by (command, English label). A test (every_translation_key_exists_in_the_actual_menu_tree) fails if any fixed menu entry is untranslated or a row is stale, so every catalog covers all 618 fixed entries. The generated Effect menu (effect names) is deliberately left in English.
  • Panels, dialogs, buttons, tooltips: crates/ui-egui/src/i18n/ui.rs, keyed by the English source string, with English fallback. Catalogs exist for Japanese, Simplified and Traditional Chinese, Ukrainian and Czech.
  • Not translated anywhere yet: effect names and their ≈ 1,650 parameter names (crates/effects), engine-generated text (property names, errors, undo labels), the Home screen's unwrapped literals (#574), Learn tutorials and documentation.
  • Language choice: Settings ▸ General ▸ Language, or Match System (match_system_uses_the_system_language_where_there_is_a_catalog).
  • Fonts: no bundled CJK font; the UI installs system fallbacks probed by script (Kana, Han, Arabic, Hebrew, Devanagari, Bengali, Gurmukhi, Gujarati, Tamil, Telugu, Kannada, Malayalam, Thai: crates/ui-egui/src/theme.rs). There is no Hangul probe, so Korean renders as boxes on macOS (#599). The web build has no system fonts.
  • Script support in the interface: egui draws text without complex shaping or right-to-left layout, so an Arabic or Hindi interface would render unshaped and left to right. In text layers (crates/text) shaping (harfrust), bidi (UAX #9), vertical text and Tate-Chu-Yoko work; text-layer typing goes through the IME (viewer_text.rs handles preedit and commit).

Measurement

Measured 10 October 2026 at origin/main 1446e27 by counting catalog rows. The denominator, ≈ 3,900 user-visible strings, is estimated: 618 fixed menu entries + ≈ 1,320 capitalised UI literals in crates/ui-egui/src outside tests and catalogs (a regex count, so an upper bound) + ≈ 1,650 distinct effect parameter names + 306 effect names. Engine messages are not counted, so the true percentages are slightly lower.

Language Code UI strings translated Dialogs / tooltips / help Script support Native review Status To full
English en ≈ 3,900 (100%, source) All; docs in English — yes full —
Simplified Chinese zh-hans 1,081 (≈ 28%): menus 618/618, panels 463 Panels and dialogs partly (≈ 35% of panel strings); no help, effects untranslated; Home screen literals unwrapped (#574) System CJK fallback; Han follows the UI language; CJK text in comps renders wrongly (#453); IME in text layers no partial 6–9 h + review
Spanish es 618 (≈ 16%) Menus only Latin, fine no menus only 7–10 h + review
Hindi hi 0 — UI: Devanagari fallback font but no shaping; text layers shape Devanagari no none (After Effects: none) 9–13 h + shaping in the UI
Arabic ar 0 — UI: Arabic fallback font but no shaping and no RTL layout; text layers: bidi + shaping no none (After Effects: none) 9–13 h + 15–25 h RTL UI
French fr 0 — Latin, fine no none 8–12 h + review
Portuguese (Brazil) pt-br 618 (≈ 16%) Menus only Latin, fine no menus only 7–10 h + review
Indonesian id 0 — Latin, fine no none (After Effects: none) 8–12 h + review
Japanese ja 1,015 (≈ 26%): menus 618/618, panels 397 Panels and dialogs partly (≈ 30% of panel strings) Japanese system fallback; vertical text and Tate-Chu-Yoko in text layers; IME no partial 6–9 h + review
German de 0 — Latin, fine no none 8–12 h + review
Korean ko 0 — No Hangul fallback probe: boxes on macOS (#599) no none 9–13 h + review
Vietnamese vi 0 — Latin with stacked diacritics; untested no none (After Effects: none) 8–12 h + review

Other languages EffectCraft ships (3):

Language Code UI strings translated Status To full
Traditional Chinese zh-hant 1,081 (≈ 28%): menus 618/618, panels 463 partial 6–9 h + review
Ukrainian uk 1,113 (≈ 29%): menus 618/618, panels 495/496 partial 6–9 h + review
Czech cs 1,114 catalog entries (≈ 29%): menus 618/618, panels 496/496 (current Chinese catalog); added after the measurement above All existing catalog entries covered; unwrapped UI, effects and engine text still in English; AI-assisted, not yet native-speaker proofread Remaining strings + independent native review

After Effects also ships Italian and Russian, which EffectCraft does not (8–12 h each).

Overall: ≈ 12%, the average coverage of After Effects' 10 non-English languages (Simplified and Traditional Chinese 28%, Japanese 26%, Spanish and Portuguese 16%, French, German, Korean, Italian and Russian 0%). This is the localization row in target-app-parity.md.

Effort. One-time work first: route effect names, parameter names and engine messages through a catalog, wrap the remaining panel literals, and add a Hangul probe (10–20 h). Then each language needs ≈ 2,900 more strings (≈ 5–9 h per language at the pace of #398 and #401). Parity with After Effects' 10 non-English languages: ≈ 60–110 h; the four extra languages of the standard list (Hindi, Arabic, Indonesian, Vietnamese) add ≈ 50–80 h, most of it right-to-left layout and complex shaping in the interface. Every language needs native-speaker review, which only a human can give; none has had it.

Revision history

Date Change Summary
2026-10-10 major First localization parity document: catalog rows counted for all six languages, the twelve-language table, After Effects' 11 shipped languages from its bundle
2026-10-11 minor Ukrainian panel catalog brought level with the Chinese ones (495 of 496 rows, counted at this commit); its share rises to ≈ 29%. The other languages' panel counts are the 10 October measurement