Skip to content

Release v0.23.0

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Jul 01:37
95eff24

The 1.0-readiness release: one <Trans> contract everywhere, live extraction and a coverage view. The three framework adapters now share the exact same <Trans> surface and rendering rules, the CLI learns status (how much is left to translate, per locale) and extract --watch (live extraction for bundlers without the Vite plugin), and the last planned pre-1.0 breaking changes land: @verbaly/svelte moves to Svelte 5 only, and React/Vue <Trans> render whitelisted tags as real elements like the rest of the toolkit always did. Two breaking changes, both called out below.

Highlights

  • <Trans> is now the same component in React, Vue and Svelte. Same props everywhere (id, values, instance, components, richTags, links) and same rendering rules: your custom component wins, then named links, then the safe tag whitelist, and anything unknown degrades to plain text.
  • Breaking: React and Vue <Trans> now render whitelisted tags for real. A message like The <em>build</em> gate shows a real <em> element, matching Svelte and the DOM interpreter. Before, React and Vue flattened it to plain text. If you relied on that, pass richTags={[]}.
  • Breaking: @verbaly/svelte requires Svelte 5. Svelte 4 support is retired while the project is still 0.x. In exchange, the Svelte <Trans> finally gets the components prop: map a tag in your message to your own component.
  • verbaly status tells you how much is left to translate. One line per language ("es: 45/48 translated (94%)"), no CI noise. verbaly check stays the build gate.
  • verbaly extract --watch keeps catalogs and types in sync as you code. Made for webpack, Rspack and Rollup setups, where the Vite plugin's live extraction isn't available.
  • Easier to give feedback. The README now says exactly where a bug report or a friction report goes, and the issue forms cover all ten packages.

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