Release v0.25.0
The whole language, not just the text: automatic RTL, real language names, and context for translators. Adding Arabic or Hebrew now just works: the page direction follows the locale everywhere (browser switch, SvelteKit, Nuxt, Next.js and pre-rendered pages). Locale switchers get real language names from the platform instead of hardcoded tables. And translator exports now say where each text lives in your source. No breaking changes.
Highlights
- Right-to-left languages just work now. Add Arabic, Hebrew or Persian and the page direction follows the language on its own: when the user switches, when the server renders, and in pre-rendered static pages. No
dirattribute to manage, ever. - Language switchers without hardcoded names.
localeName('es')returns 'español',localeName('de', 'en')returns 'German'. The names come from the platform (Intl.DisplayNames), so any locale works without you maintaining a table. - Need the direction yourself?
localeDirection('ar')returns'rtl'. It is the same helper the rest of the toolkit uses, exported for your own layouts (like Next.js's root layout). - Translators now see where each text lives.
verbaly exportmarks every message with the source files it came from: XLIFF gets standard location notes, CSV gets alocationcolumn. Context stops being guesswork in the translation tool.
For the full details of this release, see the repository changelog.