Guías
En el servidor
El core corre donde corra JavaScript, incluido Node. Crea una instancia, pasa el locale, llama a t(). Sin DOM.
Una instancia por request
Construye una instancia nueva por request y pásale el locale del visitante. negotiateLocale lee el header Accept-Language y elige la mejor coincidencia entre tus locales (entiende los q-values, y es-PE coincide con es). resolveRequestLocale (0.17.0) toma toda la decisión en una llamada: primero la cookie, luego el header, luego tu fallback. Las instancias no comparten estado, así que dos requests nunca mezclan sus idiomas.
import { createVerbaly, negotiateLocale } from 'verbaly';
import es from './locales/es.json';
import en from './locales/en.json';
function handle(req) {
const locale = negotiateLocale(req.headers['accept-language'], ['en', 'es']);
const v = createVerbaly({ locale, fallback: 'en', messages: { en, es } });
return v.t('home.title');
}Renderiza el HTML por adelantado
Para sitios estáticos, verbaly render pre-llena tu HTML compilado por locale para que las páginas se sirvan ya traducidas. Ver CLI → Renderizado estático.
Meta-frameworks
En SvelteKit, Nuxt y Next.js no cableas nada de esto a mano: la integración de SvelteKit, el módulo de Nuxt y la integración de Next.js negocian el locale por request e hidratan sin flash, todo sobre estas mismas primitivas.