Skip to content

Release v0.30.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 21:36
a3987b7

The build gate stops trusting that a filled-in translation is a working translation. Until now verbaly check asked one question: is there a value for every key? A translation could drop your {name}, lose an <em>, or flatten a plural block into plain text, and CI stayed green while production quietly showed the wrong text (or nothing at all). The gate now reads the translation against the source and fails on anything that cannot render what the source renders, with the reason in plain words and the source line to click. The runtime stops being silent about the same class of bug, and @verbaly/react is now verified against Preact. No new configuration.

Highlights

  • verbaly check catches translations that are present but broken. A missing {param}, a lost rich tag, a plural block turned into plain text, or a plural set with no catch-all case: each one fails the gate with a sentence that says what happened and why it matters, annotated on the exact source line in GitHub. Before this, a hand-edited catalog had no validation at all: only import and translate were checked.
  • The empty-string bug is gone. A translation whose plural block lost its other case rendered an empty string for every count it did not list. In Polish, {count | one: … | few: …} showed nothing at all for 5 items. That now fails the build instead of shipping.
  • Verbaly tells a translator which plural forms their language actually needs. A Polish or Russian catalog that only carries one and other gets a warning naming the missing forms. It is a warning, not a failure: the text still renders. Forms no real counter can reach are never requested, so Spanish, French, Portuguese and Italian catalogs stay quiet.
  • verbaly status shows a broken count per language, so you can see the state of a catalog without running the gate.
  • A missing param now warns in the console. Rendering {name} into your UI because nobody passed name was the one bad-data path Verbaly did not report. Every other one already warned.
  • Preact works, and now it is proven. @verbaly/react runs its own suite a second time with React resolved to preact/compat: hooks, locale switching, <Trans> and server rendering all pass. No separate package, no adapter changes.
  • VS Code can show your translations on hover. The README carries the i18n-ally configuration that turns hash keys into readable text in the editor.

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