Guias

No servidor

O core roda onde o JavaScript rodar, incluindo Node. Crie uma instância, passe o locale, chame t(). Sem DOM.

Uma instância por request

Construa uma instância nova por request e entregue a ela o locale do visitante. negotiateLocale lê o header Accept-Language e escolhe a melhor correspondência entre seus locales (entende os q-values, e es-PE corresponde a es). resolveRequestLocale (0.17.0) toma a decisão inteira em uma chamada: primeiro o cookie, depois o header, depois seu fallback. Instâncias não compartilham estado, então dois requests nunca misturam seus 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');
}

Renderize o HTML de antemão

Para sites estáticos, verbaly render pré-preenche seu HTML compilado por idioma para que as páginas cheguem já traduzidas. Veja CLI → Renderização estática.

Meta-frameworks

No SvelteKit, no Nuxt e no Next.js você não liga nada disso à mão: a integração do SvelteKit, o módulo do Nuxt e a integração do Next.js negociam o locale por request e hidratam sem flash, tudo sobre essas mesmas primitivas.

Copiado para a área de transferência