pypi / translate-toolkit
translate-toolkit
What changed in translate-toolkit 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-25.
1 breaking3 new APIs and options2 performance1 behavior and defaults1 tooling15 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli inittranslate-toolkit 323 changes
Breaking changes 1
Building the documentation now requires Python 3.14 or newer.
New APIs and options 3
Adds a Catalan language module that disables inappropriate acronym and capitalization checks.
Gettext PO supports an opt-in SPDX format for contributor comments while preserving historical years and unrelated copyright notices.
Exposes ordered term alternatives with IDs, administrative status, and scoped notes.
Performance 2
Restores embedded blocks in one pass to improve performance on large documents.
Indexes contexts by name to speed up parsing files with many contexts.
Behavior and default changes 1
When no exact language match exists, lookup falls back from bare language codes to default-country variants.
Tooling 1
Improves type annotations for translation checks and JSON storage.
Fixes and other changes 15
Preserves newlines when converting Chinese punctuation.
Exports every non-empty plural translation, pairing the first form with the singular source and subsequent forms with the plural source.
Checks plural translations against their matching source forms to avoid false positives in placeholder and other source-dependent checks.
Editing existing units preserves translations, XML metadata, plural keys, and retained YAML and TOML documents.
Preserves translations identical to the source before trying legacy lookup keys and avoids consuming duplicate translation occurrences.
Keeps lookup indexes in sync when editing sources, keys, and contexts.
Editing matched terms preserves existing XML language tags.
Editing alternatives preserves term IDs, metadata, and unrelated XML.
Usable terms remain available when another term is deprecated or the selected target language is missing.
Fixes copying wrapper children during XML generation.
Keeps direct single-variable format references with their plural units.
Reports missing stopword files correctly.
Rejects malformed messages with invalid lengths.
Corrects detection for script-specific and previously missing language codes.
XML-based formats now honor inherited xml:space attributes to preserve significant whitespace.