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