Release v0.18.0
Nuxt joins the family. The second meta-framework integration: @verbaly/nuxt is a zero-config Nuxt module — one line in nuxt.config wires the Vite plugin, negotiates the locale per request (cookie → Accept-Language → fallback), awaits the catalog before render and keeps <html lang> in sync, so pages arrive translated and hydrate flash-free. Built entirely on the 0.16/0.17 primitives (resolveRequestLocale, createRequestInstance) with zero dependency on nuxt or @nuxt/kit. switchLocale() moves to core so both SSR integrations share it (@verbaly/sveltekit re-exports — nothing breaks). No breaking changes.
Highlights
- New package
@verbaly/nuxt— Nuxt SSR in one line:modules: ['@verbaly/nuxt']. The module wires@verbaly/vite(live extraction +virtual:verbaly), negotiates the visitor's language per request and hydrates the client with the same locale and catalog — no flash of untranslated text, no hydration mismatch, no locale leaking between concurrent users. - Zero framework lock — no
@nuxt/kit, nonuxtpeer: the module is typed structurally (same approach that keeps@verbaly/sveltekitfree of@sveltejs/kit), verified against the realNuxtModuletype and a real Nuxt 4 app. switchLocale()is now a core export — the client-side language switch (catalog first, then locale, then cookie +<html lang>) lives once inverbalyand serves SvelteKit, Nuxt and hand-rolled setups.@verbaly/sveltekitre-exports it: existing imports keep working unchanged.- Client-only apps covered too — with
ssr: falsethe module still resolves the locale in the browser (cookie →navigator.languages→ fallback). - Support Verbaly — GitHub Sponsors is live: github.com/sponsors/AronSoto.
For the full details of this release, see the repository changelog.