mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-09 04:22:20 +00:00
124 lines
13 KiB
Markdown
124 lines
13 KiB
Markdown
# Localization parity
|
||
|
||
> **Last reviewed:** 2026-11-03 · **Last updated:** 2026-11-03 · **Change:** minor (every catalog restated from `cargo xtask i18n-report` on `main` at `14ae839a`: 2,897 strings in the report's denominator; Hindi, Indonesian, Korean, Thai, Lao and Central Kurdish listed with their catalogs. Scores and estimates unchanged) · **Target:** Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS)
|
||
|
||
Per-language status of PdfCraft's interface against Acrobat Pro's. How translations work and how to
|
||
add a language: [localization.md](localization.md). Summary in [ROADMAP.md](../ROADMAP.md).
|
||
|
||
## How this was measured
|
||
|
||
- **Strings translated** is measured with `cargo xtask i18n-report`, which CI also runs: the
|
||
English strings in its denominator, less the ones a catalog has no translation for. The
|
||
denominator is the UI source's literals, the command, All tools and engine wordings, and every
|
||
key of every bundled catalog, which brings in the contextual, plural and dynamically looked-up
|
||
strings the scan can't see. On `main` at `14ae839a` (2026-11-03) that is **2,897** strings, and
|
||
every count and percentage in the tables below is of that number. A key only some catalogs have
|
||
counts as missing in the others; a contextual one (such as `theme`/`Appearance`) is met by a
|
||
plain translation of the same English, but a `@plural` one only by its own plural forms. The
|
||
denominator still grows whenever the interface gains a string, so a catalog that was complete
|
||
falls behind without losing a translation, and every figure here carries its date. English is
|
||
built in.
|
||
- **Catalogs:** the figures above were taken from the in-repo catalogs
|
||
(`crates/ui-egui/src/i18n/<code>.tsv`), which have since moved to craft-i18n's `locales/<code>/`.
|
||
The report reads the catalogs the build embeds, so measuring again needs `CRAFT_I18N_DIR` set to a
|
||
craft-i18n checkout at the commit in `craft-i18n.rev`; without it the report says it was
|
||
skipped.
|
||
- **Before 2026-11-03** this page counted distinct `(context, English)` keys against the union of
|
||
keys across all catalogs: 2,143 keys on 2026-10-10, 2,798 on 2026-10-25, and 2,895 on
|
||
`14ae839a`. That union also grew whenever one catalog added a key no other had, so it moved every
|
||
row at once. Earlier revisions in the history quote it, at the size of their own date.
|
||
- **Not counted:** error details from the engine and the operating system, which are shown in
|
||
English inside a translated frame; there is no translated user documentation or help yet (Acrobat
|
||
ships localized help).
|
||
- **Script support** comes from [localization.md](localization.md), the vendored winit IME patches
|
||
(`vendor/README.md`) and user reports.
|
||
- **Native review**: "community" means a native speaker contributed or corrected the catalog in a
|
||
pull request or issue; "no" means no record of review. No catalog has had a formal review.
|
||
- **Acrobat** ships 24 interface localizations on macOS (`.lproj`: cs, da, de, en, es, fi, fr, hu,
|
||
it, ja, ko, nl, no, pl, pt, ru, sv, tr, uk, zh_CN, zh_TW, plus en_AE, en_IL, fr_MA) and Middle
|
||
East / North Africa editions (MEA Arabic, MEH Hebrew, NAF French; `Resources/Sequences/`).
|
||
|
||
## The twelve key languages
|
||
|
||
| Language | Code | UI strings translated (of 2,897, 2026-11-03) | Dialogs / tooltips / help | Script support | Native review | Status | Acrobat ships it | To `full` (h) |
|
||
|---|---|---|---|---|---|---|---|---|
|
||
| English | `en` | built in (100%) | all; README and docs | Latin | yes | **full** | yes | 0 |
|
||
| Simplified Chinese | `zh-hans` | 2,560 (88.4%) | dialogs and tooltips through `tl!`; no help | CJK text and IME work; native craft-fonts builds embed the **LXGW WenKai Lite** Hans face, while the web build has no Hans face beyond BIZ UDPGothic, and missing-glyph reports (#826, #688, #728, #758; Flatpak #689) predate the native face | no | partial | yes | 6–12 |
|
||
| Spanish | `es` | 2,851 (98.4%) | dialogs and tooltips; no help | Latin | no | partial | yes | 2–4 |
|
||
| Hindi | `hi` | 2,825 (97.5%) | dialogs and tooltips; no help | Devanagari not tested (egui shapes Telugu conjuncts, so shaping is likely workable); the pinned craft-fonts manifest has Noto Sans Devanagari Regular; rendering remains unqualified | no | partial | no | 10–18 |
|
||
| Arabic | `ar` | 2,836 (97.9%) | dialogs and tooltips; no help | Logical-order catalog; egui 0.37's epaint reorders with UAX #9, Arabic, Kurdish and Persian labels use an explicit right-to-left paragraph direction, and stock chrome is mirrored. Native/browser RTL input and IME, and complex bidirectional workflows, are not yet qualified (`localization.md` §Arabic) | no | partial | yes (Middle East edition) | 25–45 |
|
||
| French | `fr` | 2,851 (98.4%) | dialogs and tooltips; no help | Latin | no | partial | yes | 1–2 |
|
||
| Portuguese (Brazil) | `pt-br` | 2,851 (98.4%) | dialogs and tooltips; no help | Latin | community (#288) | partial | yes | 1–2 |
|
||
| Indonesian | `id` | 2,825 (97.5%) | dialogs and tooltips; no help | Latin | no | partial | no | 3–5 |
|
||
| Japanese | `ja` | 2,597 (89.6%) | dialogs and tooltips; no help | BIZ UDPGothic from craft-fonts; IME patched on macOS, Windows, X11, Wayland; vertical text renders but can't be edited | no | partial | yes | 4–8 |
|
||
| German | `de` | 2,600 (89.7%) | dialogs and tooltips; no help | Latin | community, in progress (#828: terminology, clipping) | partial | yes | 2–4 |
|
||
| Korean | `ko` | 2,825 (97.5%) | dialogs and tooltips; no help | Hangul IME patched (Microsoft and Apple Korean, `vendor/README.md` winit 3, 6, 9, 10); no Hangul UI face in craft-fonts | no | partial | yes | 6–10 |
|
||
| Vietnamese | `vi` | 2,851 (98.4%) | dialogs and tooltips; no help | Latin with stacked diacritics; bundled Inter covers them (fonts test) | community | partial | no | 2–4 |
|
||
|
||
**Localization dimension ≈ 68%** (scored 2026-10-13, before the counts above): the mean over the
|
||
twelve, counting a catalog's percentage of the 2,143-key snapshot but only 60% for Chinese and
|
||
Arabic until their script problems are fixed, and 0 for Hindi, Indonesian and Korean, which had no
|
||
catalog yet. Vietnamese moved from 0% to 100% in that mean (59% → 68%). Hindi, Indonesian and
|
||
Korean now have catalogs, so the score understates them. It is not re-scored here, because that
|
||
decides how their script caveats count (Devanagari rendering unqualified, no Hangul UI face). **≈ 55–110 h**
|
||
to bring all twelve to `full`, of which ≈ 35–60 h is engineering (remaining RTL qualification, a web Hans face, bidi text)
|
||
and the rest catalogs and fixes; native-speaker review needs humans.
|
||
|
||
No language is `full` except English: every catalog leaves engine error details in English, and
|
||
none has translated help. The **To `full`** hours of Vietnamese and Spanish are therefore mostly
|
||
help/docs polish: their script work is done, and each catalog lacks 46 strings on 2026-11-03.
|
||
|
||
## Other shipped languages
|
||
|
||
| Language | Code | UI strings translated (of 2,897, 2026-11-03) | Status | Acrobat ships it |
|
||
|---|---|---|---|---|
|
||
| Traditional Chinese | `zh-hant` | 2,559 (88.3%) | partial (same Hans/Hant face caveat) | yes |
|
||
| Russian | `ru` | 2,515 (86.8%) | partial | yes |
|
||
| Bulgarian | `bg` | 2,564 (88.5%) | partial | no |
|
||
| Czech | `cs` | 2,847 (98.3%) | partial | yes |
|
||
| Telugu | `te` | 2,513 (86.7%) | partial (the release-pinned craft-fonts has no Telugu face yet) | no |
|
||
| Hungarian | `hu` | 2,599 (89.7%) | partial | yes |
|
||
| Ukrainian | `uk` | 2,600 (89.7%) | partial | yes |
|
||
| Italian | `it` | 2,790 (96.3%) | partial | yes |
|
||
| Kazakh | `kk` | 2,609 (90.1%) | partial | no |
|
||
| Polish | `pl` | 2,681 (92.5%) | partial | yes |
|
||
| Slovenian | `sl` | 2,618 (90.4%) | partial | no |
|
||
| Greek | `el` | 2,615 (90.3%) | partial | no |
|
||
| Turkish | `tr` | 2,895 (99.9%) | partial; AI-assisted, judgement calls reviewed by a native speaker, full proofreading pending | yes |
|
||
| Lithuanian | `lt` | 2,851 (98.4%) | partial; community native-speaker review ([#1401](https://github.com/storytold/pdfcraft/pull/1401)) | no |
|
||
| Finnish | `fi` | 2,849 (98.3%) | partial; AI-assisted, native proofreading pending | yes |
|
||
| Albanian | `sq` | 2,604 (89.9%) | partial; not yet reviewed by a native speaker | no |
|
||
| Catalan | `ca` | 2,849 (98.3%) | partial: no translated help, engine error details in English; native-speaker review by the contributor | no |
|
||
| Romanian | `ro` | 2,849 (98.3%) | partial; AI-assisted, not yet reviewed line by line by a native speaker | no |
|
||
| Norwegian Bokmål | `nb` | 2,758 (95.2%) | partial; native-speaker terminology review by the contributor ([#1836](https://github.com/storytold/pdfcraft/pull/1836)), not yet line by line | yes |
|
||
| Persian | `fa` | 2,801 (96.7%) | partial; AI-assisted, not yet reviewed line by line by a native speaker | no |
|
||
| Central Kurdish (Sorani) | `ckb` | 2,754 (95.1%) | partial; right-to-left like Arabic | no |
|
||
| Thai | `th` | 2,751 (95.0%) | partial | no |
|
||
| Lao | `lo` | 2,504 (86.4%) | partial | no |
|
||
|
||
**23 other languages** ship (34 catalogs plus English = **35** interface languages in Preferences).
|
||
Their presence does not imply a detailed linguistic or runtime review.
|
||
Acrobat languages PdfCraft lacks: Danish, Dutch, Swedish, Hebrew. Vietnamese is shipped here but not by Acrobat.
|
||
|
||
## Revision history
|
||
|
||
| Date | Change | Summary |
|
||
|---|---|---|
|
||
| 2026-11-03 | minor | Every catalog restated from `cargo xtask i18n-report` on `14ae839a` (of the 2,897 strings in the report's denominator), replacing the catalog-union measure, which had reached 2,895 keys and left rows "100%" that were 44 short (#5805). Hindi, Indonesian and Korean restated from 0 to their catalogs, and Thai, Lao and Central Kurdish added to the table. The ≈ 68% score is not re-scored |
|
||
| 2026-10-25 | minor | Arabic current state corrected: catalogs stay logical, Arabic/Kurdish labels take an explicit RTL direction, and stock chrome mirrors; native/browser RTL input, IME and complex workflows remain unqualified. Native Simplified Chinese uses LXGW WenKai Lite; the web build still has no Hans face and the release-pinned craft-fonts still has no Telugu face. Scores and estimates unchanged |
|
||
| 2026-10-25 | minor | Added Persian (`fa`, 2,785 entries, all but 13 of the current 2,798-key union); right-to-left like Arabic and Kurdish, with logical entries reordered by egui 0.37's epaint; AI-assisted, not yet native-reviewed |
|
||
| 2026-10-21 | minor | Brazilian Portuguese (`pt-br`) now covers all 2,674 distinct keys in the current catalog union; no help or engine/OS error-detail localization; twelve-language mean still rounds to ≈ 68% |
|
||
| 2026-10-20 | minor | Spanish: the 143 keys the other catalogs had and `es.tsv` was missing; `es` now covers the whole 2,674-key union, like `lt` and `vi`. Restated Lithuanian against the current union (its 2,585 was measured on 2026-10-13) and said plainly in *How this was measured* that the union moves, so counts only compare within a date |
|
||
| 2026-11-03 | minor | Turkish: 2,867 entries after translating the 288 keys the translation gaps report listed (AI-assisted); measured with the report, not against the 2,798-key union of 2026-10-25, which predates keys added since |
|
||
| 2026-10-19 | minor | Removed the 2026-10-13 status line and the 14-language summary that concurrent merges left beside the current ones; the summary keeps the Italian and Norwegian Bokmål measurement dates |
|
||
| 2026-10-16 | minor | Czech: 2,674 entries after adding the keys the other catalogs had (the engine's sentences, weekday heads, certificate fields, shared buttons) and unifying "tag" as *tag* (not *značka*, which is a redaction mark) |
|
||
| 2026-10-13 | minor | Vietnamese (`vi`) catalog: 2,591 entries (100% of current key union + `theme`/`Appearance`); twelve-language mean ≈ 68%; native-speaker community review; registered with `plural_none` |
|
||
| 2026-10-14 | minor | Italian: 2,528 entries after adding the 201 keys the other catalogs had and the code looks up |
|
||
| 2026-10-14 | minor | Added Finnish (2,674 entries, AI-assisted) |
|
||
| 2026-10-12 | minor | Added Albanian (`sq`): catalog, date names, Preferences entry |
|
||
| 2026-10-14 | minor | Added Catalan (`ca`, 2,592 entries, measured 2026-10-14); retained existing language assessments |
|
||
| 2026-10-15 | minor | Romanian (`ro`) catalog: 2,673 entries (every bundled key); three plural forms (`plural_ro`); not one of the twelve key languages, so the mean is unchanged |
|
||
| 2026-10-15 | minor | Norwegian Bokmål added as an interface and date language with a 2,674-entry catalog |
|
||
| 2026-10-12 | minor | Added current counts for Kazakh, Polish, Slovenian, Greek, Turkish and Lithuanian; retained existing language assessments and the original percentage snapshot |
|
||
| 2026-10-10 | major | Created. Catalog counts measured from `crates/ui-egui/src/i18n/*.tsv` against the 2,143-key union; Acrobat's localizations from its bundle's `.lproj` and Sequences folder names |
|