effectcraft/crates
WaWu 0aa2ea5e12 i18n: an effect's name draws in the interface language, the generated Effect menu included (#821)
The interface below the menu bar is localized (618 fixed menu entries, ~490 panel rows) but an
effect's name still rendered in English everywhere it appeared: the generated Effect menu, Effect
Controls, the Timeline and Effects & Presets.

The registry's English name is the effect's identity: `effect.list`, `effect.apply {"effect": …}`,
scripts, expressions and the property tree's group name all match on it. Only the drawing changes.

`crates/ui-egui/src/i18n/effects.rs` keys the names by effect **id** rather than by the English
string — a repeat is stored as `Gaussian Blur 2` (an English key would miss it) and upstream
renames a display name now and then, while the id is stable. It carries 306 rows for Simplified
Chinese, one per effect in the registry, taken from the installed After Effects 2026 (26.5.0.89)
Simplified Chinese interface, with the `CC` series following Adobe's Chinese documentation (which
names 68 of the 69 that its interface leaves in English). `Cryptomatte`, `EXtractoR`, `IDentifier`,
`Key Light` and `Unmult` stay in English as brand names; `Face Measurements` and `Face Track
Points` are EffectCraft's own effects. The 21 category folder names are in the same file, worded
after the effect names (channel → 通道, noise → 杂色, matte → 遮罩 …).

What draws the catalog now:

- **Effect menu:** the entries and the category submenus. The command and its `{"effect": <id>}`
  params are untouched, so the menu still applies by id.
- **Effect Controls:** the header, its Rename field, the accessible name and the About popup.
- **Timeline:** effect group rows, and the search (a Chinese interface is searchable in Chinese).
- **Effects & Presets:** the rows, the drag ghost, the folder rows and the search.

Kept as they are: the effect id, the property tree's `PropGroup.name`, every automation id and
label, `effect.list`'s `name`/`category`, and the undo label (`Apply Gaussian Blur`). A name the
user typed in Effect Controls stays verbatim, and a repeated instance keeps the index the engine
appends (`Gaussian Blur 2` → `高斯模糊 2`). No other language has rows yet, Traditional Chinese
included, so those draw the registry's English name.

Tests: nine unit tests under `cargo test -p effectcraft-ui-egui --lib i18n` cover the data (every
effect has a row, the row still carries the registry's English name, ids are unique, only the five
brand names repeat their English name, every category has a row, a row names an effect the registry
knows) and the behaviour (the instance index, user renames, English and untranslated languages,
search) plus a scan pinning the drawing sites. `crates/ui-egui/tests/ui_effect_names.rs` checks the
Effect Controls header, the generated Effect menu and that the ids, automation labels and
`effect.list` stay English.

`docs/localization-parity.md` and `docs/gaps.md` no longer record effect names as deliberately
English; effect *parameter* names are still untranslated and stay the next piece.

Refs #821
2026-10-13 13:39:16 +08:00
..
automation #741: font menu filters to variable fonts 2026-10-11 12:14:50 +02:00
av1enc G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
color Blend modes: classic modes fade with opacity and HDR modes keep over-range values, as in After Effects (#494) 2026-10-10 20:51:24 +00:00
effects Merge pull request #686 from vbasky/fix/659-text-effect-bounds 2026-10-12 04:21:15 -04:00
engine Merge pull request #987 from Losminek/cs-ui 2026-10-12 05:22:10 -04:00
export #372: uncompressed QuickTime (raw RGB / ARGB) output module format 2026-10-11 12:43:33 +02:00
expr #786: make the expression budget tests independent of machine load 2026-10-11 20:52:39 +02:00
geom Never crash: deny panic lints in the already-clean crates and apps 2026-10-04 14:52:39 -04:00
gpu Merge pull request #686 from vbasky/fix/659-text-effect-bounds 2026-10-12 04:21:15 -04:00
hevcenc Untrack crates/hevcenc/target (36 MB of build output) and ignore nested target/ 2026-10-06 15:02:20 -04:00
host Merge pull request #677 from vbasky/test/651-gif-preview 2026-10-12 03:02:39 -04:00
interchange Never crash: reject timeline documents nested too deeply 2026-10-04 14:05:57 -04:00
keyframe Merge pull request #883 from vangel76/fix-880-spatial-nan 2026-10-12 04:20:41 -04:00
lottie G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
media Integration fixes for the community batch 2026-10-12 04:27:59 -04:00
model Merge follow-up: model description and gaps row 17 after the import PRs 2026-10-12 03:20:48 -04:00
opusenc G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
path G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
pdf Lint: clippy's collapsible_match passes on Rust 1.95 2026-10-10 16:54:16 -04:00
plugin G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
project Merge pull request #462 from storytold/fix/417-viewer-resolution 2026-10-12 04:21:14 -04:00
psd Lint: clippy's collapsible_match passes on Rust 1.95 2026-10-10 16:54:16 -04:00
raster Effects: EXtractoR picks layers and channels of multi-layer EXRs (#295) 2026-10-09 17:32:09 +07:00
render Merge pull request #983 from MarekSpodBiedry/issue-974 2026-10-12 05:21:55 -04:00
script Merge pull request #895 from MarekSpodBiedry/issue-837 2026-10-12 04:20:47 -04:00
segment Merge pull request #374 from storytold/fix/368-tflite-budgets 2026-10-09 09:25:24 -04:00
svg SVG: percentages inside a nested <svg> resolve against its own viewport 2026-10-11 22:36:43 -05:00
text Merge pull request #876 from vangel76/fix-874-linux-font-dirs 2026-10-12 04:20:39 -04:00
time G3: fix frame-rate boundaries and bounded timecode arithmetic 2026-10-10 06:40:02 +10:00
track G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
ui-egui i18n: an effect's name draws in the interface language, the generated Effect menu included (#821) 2026-10-13 13:39:16 +08:00
vp9enc VP9: frames never end in a byte that reads as a superframe marker (#161) 2026-10-07 14:15:33 +07:00