crates/ui-egui/src/i18n/*.tsv and catalog.rs are gone: translations live
in storytold/craft-i18n (locales/<l>/wordcraft.tsv, synced at
wordcraft@806a945) and are credited in its ATTRIBUTION.md. To carry an
open PR's catalog rows over, from a craft-i18n checkout:
tools/sync_app.py ../wordcraft 806a945d85 --ref <branch>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* CI: line-table debug info for dev builds, none for dependencies
* CI: one integration-test binary per crate
* CI: nextest with doctests, test build without examples, one wasm check
* CI: the interface audit reports missing catalog entries instead of failing
* i18n tests: the same checks for every language, none fail on a missing translation
* i18n tests: mechanism tests use fixtures, not catalog text
* Docs: the interface audit, not CI as a whole, passes with missing catalog entries
* i18n tests: disabled reasons a catalog lacks are reported, not a failure
* i18n tests: one missing-translation report, printed by cargo xtask ci
* i18n docs: the missing-translation report
* xtask: the i18n report reuses the test run's build
Rebased on main. sl.tsv now has 2,614 entries, every key of every other
catalog, including the native print settings (Tiskalnik, Odtenki sive,
Obojestransko tiskanje), mail merge filter and sort, Go To, bookmarks,
privacy options, interface size and dictionary folder strings. Three keys
main renamed were replaced.
- Slovenian added alongside Vietnamese, Swedish and Croatian in the
language list, the audit list and the Polish coverage exclusions.
- New test: sl has no keys outside the other catalogs.
- localization-parity.md, localization-sl.md and ROADMAP.md counts,
language lists and status lines updated.
A 2,463-entry Slovenian catalog: every key of every other catalog in the
repository (built-in style names, equation gallery, paper sizes, citation
styles included). Written from the meaning of the English labels in ordinary
Slovenian computing vocabulary; no other product's localisation was used.
Counts use count-neutral wording ("Besede: 21"), since the catalog has no
dual/plural forms.
- sl, sl-SI, sl_SI.UTF-8 select it automatically; "Slovenščina" in Options
and ui.language with {"value":"sl"}.
- The interface audit checks Slovenian coverage the way it checks Russian.
- Tests: locales and saved preference, catalog coverage and key terms,
count wording, and bundled fonts covering č, š, ž.
- docs/localization-sl.md with conventions and terminology; parity table,
README, ROADMAP and ATTRIBUTION updated.