Release v0.30.0
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 checkcatches 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: onlyimportandtranslatewere checked.- The empty-string bug is gone. A translation whose plural block lost its
othercase 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
oneandothergets 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 statusshows 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 passednamewas the one bad-data path Verbaly did not report. Every other one already warned. - Preact works, and now it is proven.
@verbaly/reactruns its own suite a second time with React resolved topreact/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.