One <Trans> everywhere, live extraction and a coverage view
The React, Vue and Svelte
<Trans>is now the same component in React, Vue and Svelte: same props, same rendering rules. Your custom component wins, then named links, then the safe tag whitelist; anything unknown degrades to plain text.- Breaking: React and Vue
<Trans>now render whitelisted tags likeemandcodeas real elements, matching Svelte and the DOM interpreter. Pass an emptyrichTagslist to keep the old flatten-to-text behavior. - Breaking:
@verbaly/sveltenow requires Svelte 5. In exchange<Trans>gains thecomponentsprop: map a tag in a message to your own component. On Svelte 4, stay on0.22.0. verbaly statusshows how much is left to translate, one line per language, without failing anything.verbaly checkstays the build gate.verbaly extract --watchkeeps catalogs and types in sync as you code, made for webpack, Rspack and Rollup setups where the Vite plugin is not available.- Easier to give feedback: the README points bug reports and friction reports to the right place, and the issue forms cover all ten packages.
componentsprop on the Svelte<Trans>;instanceandrichTagsprops on React and Vueverbaly status: per-language translation coverage, informational onlyverbaly extract --watch: re-extracts as source files change, with the building block exported aswatchProject
- React and Vue
<Trans>render whitelisted tags as real elements (breaking; an emptyrichTagslist restores the old behavior) @verbaly/svelterequires Svelte 5 (breaking); the shipped components moved to runes- An extract that changes nothing no longer rewrites catalog files, so file watchers stay quiet