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.

server.ts
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.

Copiado en el portapapeles