Skip to content

Release v0.28.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 04:52
3552b58

The translator matrix is complete, and the runtime is measurably harder to crash. verbaly export/import now speak gettext PO, so any PO editor or TMS works out of the box. XLIFF files now protect your {params} and tags as untouchable chips with meaningful names, so a translator can no longer break them by accident. A custom sitemap filename in render is finally honored, a rare crash with invalid dates is fixed, and CI now fails automatically if the runtime ever grows past its size budget. No breaking changes.

Highlights

  • Export and import gettext PO files. verbaly export --format po writes one .po file per language, ready for any PO editor (Poedit, Weblate, Crowdin, …). verbaly import reads them back with the same safety net as every other format: a translation that breaks a placeholder is rejected, not shipped. Entries a tool marks as fuzzy count as untranslated.
  • Translators can no longer break your placeholders in XLIFF. {params} and tags now travel as protected codes with meaningful names (name, em, link), so translation tools show them as untouchable chips instead of editable text. Plural and select blocks stay editable on purpose: their words need translating.
  • Custom sitemap names work now. render: { sitemap: 'sitemap.xml' } used to be ignored and always wrote sitemap-i18n.xml. The name you configure is the name you get.
  • A rare crash is gone. Passing an invalid date to a message could throw instead of degrading gracefully. Found by the new randomized test suite that now hammers the parser with garbage on every run, so this class of bug stays fixed.
  • The runtime cannot silently grow. CI now measures the core bundle (min+gzip) on every push and fails if it exceeds its size budget. The ~3KB promise is enforced by a machine, not a habit.

For the full details of this release, see the repository changelog.