Files
vectorcraft/docs/localization-parity.md
T
BFlat 4b5d62ee9e Merge pull request #7605 from dotCooCoo/docs/localization-hi-report-section
Docs: Hindi pages state the untranslated report's Hindi gaps
2026-11-15 00:38:19 +07:00

18 KiB
Raw Blame History

Localization parity

Last reviewed: 2026-10-10 · Last updated: 2026-11-06 · Change: minor (Hindi catalog draft complete under the translation tests; contributor loanword terminology reviewed; wider proofreading welcome; Brazilian Portuguese: 154 rows for the strings the sibling catalogs translate — smart-filter and print presets, dimension lines, swatches, canvas messages; previously minor: Bosnian (bs): complete catalog; previously minor: Vietnamese text: stacked diacritics tested and attach in every form, #4491; previously: Catalan (ca) catalog added, complete under the tests)

Per-language status of VectorCraft's interface. How the catalogs work and how to add a language: development.md › Localisation. Part of target-app-parity.md.

How it is measured: rows with a translation in each crates/ui-egui/src/i18n/<code>.tsv, counted on origin/main 01e165af, except the rows that give a count date: those were counted on the main commit named in the row (the rows dated 2026-10-21 on main at cb0a7d9). The reference is the French catalog, which was complete when counted: 3,416 interface strings (menus, command labels, tl! literals: panels, dialogs, tooltips, Preferences) plus 604 @msg status and error messages, 4,020 in all. A language's % is its rows over 4,020 (capped at 100% per part). A missing translation never fails a test or a build: the interface shows the English text until a translator adds the row. cargo xtask ci prints the untranslated report (cargo xtask i18n-report alone), which lists per language the strings missing from each catalog with the complete_menus flag and the messages missing from each language in the COMPLETE_MESSAGES list. Every non-English language marked "full" has the flag, and all of them except Bosnian, Bulgarian, Danish and Indonesian are in the list. No language has help content: there is no translated (or English) in-app help, and the docs are English.

Native review: every catalog was written clean-room from the English meaning, most of it by agents (bflatastic), with community contributors adding or correcting (German by dwetscher, Japanese and Traditional Chinese by imachus). Georgian and the original Gujarati catalog are recorded as reviewed by native speakers; the contributor approved all 387 later Gujarati additions on 2026-11-14.

Gujarati status (2026-11-14, #6613): 4,673 catalog rows: the original 4,286 remain unchanged; all 387 additions are contributor-reviewed and approved, with 11 wording corrections. Status/error messages remain partial, and the pinned CI/release fonts and web startup list contain no Gujarati face; web selection stays unavailable until a Gujarati interface face is bundled. Scores and estimates unchanged.

The twelve key languages

Language Code UI strings translated Dialogs / tooltips / messages Script support Native review Status To full (h)
English en source, 100% all Latin — full —
Simplified Chinese (Mandarin) zh-hans 5,102 rows, 791 of them @msg (counted 2026-10-21): menus, tl! literals and messages complete when counted all (3,554 @msg and 48 @msgplural rows, counted 2026-11-13: the untranslated report lists 55 missing messages for it, which open #7116, #7211, #7330, #7378 and #7405 translate) CJK UI font from craft-fonts (BIZ UDPGothic) when embedded, else a system font; IME with marked text at the caret; vertical type partial (type-parity.md) no full — (review)
Spanish es 4,009 / 4,020 (99.7%) all (604 messages) Latin no full — (review)
Hindi hi 8,782 rows (2026-11-13): 3,014 @msg, 47 @msgplural, 41 @plural; the untranslated report on main f793044f83 (2026-11-14) lists 676 missing rows for it: 608 in its own section and 68 that every checked language lacks menus, dialogs, tooltips and scanned messages; contributor-approved loanword terminology; agent wording pass UI and document text shape with HarfRust; installed desktop Devanagari fallback, or a Deva craft-fonts face; web font still needed contributor terminology review; 2026-11-13 wording pass on messages and longer labels, with a glossary-term test; wider proofread welcome complete catalog, machine-assisted draft reported missing rows, native review, layout and web font
Gujarati gu 4,673 rows (2026-11-14): original 4,286 unchanged; all 387 additions contributor-reviewed and approved menus and dialogs; status/error messages partial installed Gujarati fonts on desktop; optional Gujr craft-fonts fallback; no Gujarati face in the pinned CI/release fonts or web startup list original catalog reviewed by a native speaker; all 387 later additions approved by the contributor, with 11 wording corrections contributor-reviewed catalog remaining messages and a bundled Gujarati web font
Arabic ar 0 none document text: bidi layout and Paragraph Direction; interface: no right-to-left layout, no Arabic shaping in egui no none 25–40
French fr 9,166 rows, 3,436 of them @msg and 48 @msgplural (counted 2026-11-13): the untranslated report lists 178 missing messages for it all Latin no full — (review)
Portuguese pt-br 9,378 rows, 3,563 of them @msg and 48 @msgplural (counted 2026-11-13): the untranslated report lists 55 missing messages for it, which open #7116, #7211, #7330, #7378 and #7405 translate; one/other plurals all Latin contributor is a Brazilian Portuguese speaker; further native review welcome full — (review)
Indonesian id 5,279 rows, 750 of them @msg (counted 2026-10-21): menus and tl! literals complete when counted; its messages are partial; one plural form dialogs and tooltips all; 750 message rows (French has 796) Latin no full — (review)
Japanese ja 4,004 / 4,020 (99.6%) all CJK UI font as above; Japanese IME; vertical type partial; Japanese crop marks and composition settings no full — (review)
German de 3,952 / 4,020 (98%; menus, literals and messages complete when counted) all (3,563 @msg and 48 @msgplural rows, counted 2026-11-13: the untranslated report lists 52 missing messages for it, which open #7116, #7211 and #7378 translate) Latin contributor-written, not reviewed full — (review)
Korean ko 4,870 rows (counted 2026-10-21): menus, tl! literals and messages complete when counted; one plural form all (3,438 @msg and 48 @msgplural rows, counted 2026-11-13: the untranslated report lists 39 missing messages for it) Hangul from an installed system font on the desktop (Apple SD Gothic Neo, Malgun Gothic, Noto Sans CJK KR…); the web build has no Korean UI font yet (craft-fonts); IME path exists no (AI-drafted) full — (review; web font)
Vietnamese vi 4,886 rows (counted 2026-10-21): menus, tl! literals and messages complete when counted; one plural form; 4,046 plain + 18 @plural + 28 contextual + 794 @msg all Latin with Vietnamese diacritics (stacked marks attach in precomposed, decomposed and keyboard forms, #4491; glyph tests pass) contributor is a Vietnamese speaker; AI-assisted draft, further native review welcome full — (review)

Historical 12-language score: ~82% (equal weights: 100 + 85 + 100 + 0 + 0 + 100 + 100 + 100 + 100 + 98 + 100 + 100, over 12). To full for all twelve: ~50–85 h (historical estimate, not re-scored here). Hindi now has a catalog that the tests count as complete, and UI shaping; its remaining work is the rows the untranslated report lists for it, native review, layout checking and the web font. Arabic still needs its catalog and right-to-left interface. Each new Latin-script catalog is ~4,000 rows; the existing ones were written in a few agent hours each plus review. Native-speaker review is human work and isn't in the hours.

Other shipped languages

Language Code Translated Status
Traditional Chinese (Taiwan) zh-hant 8,820 rows, 3,438 of them @msg and 48 @msgplural (counted 2026-11-13): the untranslated report lists 40 missing messages for it; menus, tl! literals and messages were complete when counted on 2026-10-21 (80% overall) partial
Italian it 8,757 rows, 3,422 of them @msg and 48 @msgplural (counted 2026-11-13): the untranslated report lists 40 missing messages for it full
Dutch nl 3,447 @msg and 48 @msgplural rows (counted 2026-11-13): in COMPLETE_MESSAGES, and the untranslated report lists 41 missing messages for it; one/other plurals full
Danish da 5,279 rows, 750 of them @msg (counted 2026-10-21): menus and tl! literals complete when counted; its messages are partial; one/other plurals full
Russian ru 4,009 / 4,020 full
Ukrainian uk 8,802 rows, 3,439 of them @msg and 48 @msgplural (counted 2026-11-13); one/few/many plurals full
Hungarian hu 9,166 rows, 3,444 of them @msg and 48 @msgplural (counted 2026-11-13): the untranslated report lists 40 missing messages for it, and lists 47 menu strings, 25 tl! strings, 11 undo labels and 45 swatch names without a row; one plural form full
Polish pl 9,044 rows, 3,439 of them @msg and 48 @msgplural (counted 2026-11-13): the untranslated report lists 46 missing messages for it, and 47 menu strings, 26 tl! literals, 11 undo labels and 45 swatch names; one/few/many plurals full; native review pending
Finnish fi 5,318 rows (counted 2026-10-21): menus, tl! literals and messages complete when counted; one/other plurals, 797 @msg rows full; AI-assisted, native proofreading pending
Czech cs 9,273 rows, 3,560 of them @msg and 48 @msgplural (counted 2026-11-13): the untranslated report lists 2 missing Czech messages, and 54 messages that no language has a row for catalog complete; render-site gaps reduced; native review pending
Bosnian bs 5,841 rows (counted 2026-10-30): menus, tl! literals and messages complete when counted; one/few/other plurals full; AI-assisted, native review pending
Swedish sv 8,991 rows, 3,106 of them @msg and 48 @msgplural (counted 2026-11-14): the untranslated report lists 518 missing messages for it, and 12 menu strings, 1 tl! literal and 3 undo labels; one/other plurals full; native review welcome
Bulgarian bg 5,245 rows, 763 of them @msg (counted 2026-10-21): menus and tl! literals complete when counted; its messages are partial full; AI-drafted, native review pending
Greek el 5,251 rows, 795 of them @msg (counted 2026-10-21): menus, tl! literals and messages complete when counted full; native review welcome
Georgian ka 5,200 rows (counted 2026-10-21): menus, panels, dialogs, plurals (one count-neutral form) and messages, tested complete; reviewed by a native speaker full
Turkish tr 5,558 rows, 880 of them @msg (counted 2026-10-28); 6 menu strings and the default swatch names still fall back to English full
Indonesian id 5,531 rows, 788 of them @msg (counted 2026-10-28): menus and tl! literals complete when counted; its messages are partial; one plural form full
Catalan ca 5,626 rows, 881 of them @msg (counted 2026-10-28): menus, tl! literals and messages complete when counted; one/other plurals; every ca-* locale resolves here full; AI-drafted, native review welcome

Twenty-seven non-English catalogs in all (registry count, 2026-11-06). Illustrator, as its public documentation lists, ships around two dozen interface languages (including Polish, Dutch, Turkish, the Nordic languages, Hungarian, and Middle East editions with Arabic and Hebrew); it doesn't ship Hindi, Indonesian or Vietnamese.

Czech render-site follow-up

The desktop and web file pickers look up filter labels at assignment time; format names and extensions stay unchanged. Diagnostics retain numeric values and units. New Document's suggested preset name uses Preset {number}. Contributor tooltips use named placeholders and Czech plurals; handles and chosen names remain unchanged. Gradient descriptions reuse {kind} Gradient with a contextual radial adjective. PDF/Print mark styles use mark-style, so Japanese displays as Japonské while the language name stays Japonština; their Summary uses the same context.

The search placeholder, Home screen, toolbar/panel tooltips and Preferences already use lookups. No new tl!("literal") keys were needed: only cs.tsv adds 19 AI-draft rows and revises the gradient template. Every other complete catalog (complete_menus) has the same rows and a Roman row for the other mark style; the untranslated report lists a catalog that lacks one of them. Native review is still needed, and catalog coverage does not prove that every variable in the UI is translated.

Not done in any language

Locale-aware number and date formats, a right-to-left interface, translated help, and a Traditional Chinese UI font for the web build.

Revision history

Date Change Summary
2026-11-14 minor Gujarati (#6613): contributor proofreading completed for all 387 additions, with 11 wording corrections; 4,673 reviewed catalog rows. Status/error messages remain partial; web selection requires a bundled Gujarati face. Scores and estimates unchanged.
2026-11-12 minor Gujarati (gu): reviewed by a native speaker; zero/one singular plurals (CLDR); Gujarati craft-fonts faces join the UI fonts; strings added on main since branching translated (4,286 rows)
2026-11-11 minor Gujarati (gu): 4,235-row machine-assisted interface catalog, one/other plurals, desktop Gujarati font fallback and a glyph-coverage filter; status and error messages not yet translated; native review pending
2026-11-06 minor Hindi (hi): 7,877-row machine-assisted catalog, zero/one singular plurals, desktop font fallback and optional Devanagari craft-fonts fallback; all 55 translation tests pass; native review and a web font remain; scores and estimates unchanged
2026-10-30 minor Bosnian (bs, Latin, Ijekavian): complete catalog of 5,841 rows, every bs-* locale, one/few/other plurals; AI-assisted, not yet native-reviewed
2026-10-29 minor Vietnamese text: letters with two marks (Ể, Ứ, Ự) attach in precomposed, decomposed and keyboard forms, and a font lacking the marks falls back for the whole letter (#4491); scores unchanged
2026-10-28 minor Catalan (ca): complete catalog under the tests (menus, literals, messages; one/other plurals); every ca-* locale resolves here; AI-drafted, native review welcome. Added the Turkish and Indonesian rows the table was missing. Scores and estimates unchanged
2026-10-23 patch A missing translation never fails a test or a build; one untranslated report, printed by cargo xtask ci and cargo xtask i18n-report, lists the missing strings per language; scores unchanged
2026-10-16 minor Bulgarian (bg, #1909) and Greek (el, #2076) catalogs added, complete under the tests; Swedish (#2139) and Finnish (#1994) rows for strings added since; eighteen non-English catalogs
2026-10-16 minor Finnish (fi) catalog added, complete under the tests (menus, literals, messages; one/other plurals); AI-assisted, native proofreading pending
2026-10-15 minor Swedish (sv) catalog added, complete under the tests (menus, literals, messages; one/other plurals); every sv-* locale resolves to it; AI-drafted, native review welcome; scores and estimates unchanged
2026-10-14 minor Brazilian Portuguese (pt-br, #1914): catalog completed under the tests (menus, literals, messages); 12-language score 71% → 74%, hours 55–90 → 50–85
2026-10-13 minor The Polish translator confirmed the Polish rows the maintainers had added after the catalog was written (#1614); Tool flyouts are as wide as their longest translated name and shortcut need, so names no longer run into shortcuts in Spanish and other languages (#1650, fixes #1616); scores and estimates unchanged
2026-10-13 minor Polish (pl, #1498): the row count is corrected to the 4,510 rows in pl.tsv (it said 4,492), 654 of them @msg rows; AI-drafted, contributor loanword terminology reviewed; wider proofreading welcome; scores and estimates unchanged
2026-10-13 minor French: the 423 strings added since the catalog was last complete are translated, and 188 entries are reworded to the feature names French users know (#1511); Hungarian: one message uses the informal address like the rest of the interface (#1474); the entry counts in the tables are the earlier measurements; native review still pending; scores and estimates unchanged
2026-10-12 minor Vietnamese (vi) catalog added, complete under the tests (menus, literals, messages; one plural form); 12-language score 63% → 71%, hours 60–100 → 55–90
2026-10-13 minor Czech: 128 more strings translated (tool names, PDF and Image Trace presets, pie graph options and others added since the catalog was completed; #1461); the entry count in the table is the 2026-10-11 measurement; native review still pending; scores and estimates unchanged
)
2026-10-12 minor Korean (ko) catalog added, complete under the tests (menus, literals, messages); 12-language score 54% → 63%, hours 70–110 → 60–100
2026-10-12 minor Polish (pl) catalog added, complete under the tests (menus, literals, messages; one/few/many plurals)
2026-10-12 minor Hungarian (hu) catalog added, complete under the tests
2026-10-12 minor Georgian (ka) catalog, complete
2026-10-11 minor Czech render-site follow-up: file-dialog filters, diagnostics, preset numbering, contributor tooltips/plurals, gradient grammar and contextual printer mark styles; estimates unchanged
2026-10-10 major First per-language table, measured from the catalog row counts against the complete French catalog