Início
Primeiros passos
O Verbaly inverte o fluxo i18n habitual: você escreve texto natural no seu código e o compilador extrai as mensagens, gera chaves estáveis, tipos e bundles por idioma. Requisitos: Node 20+ e Vite 7 ou 8.
- 1
Instalação
Adicione o runtime e o plugin do Vite. Escolha seu gerenciador de pacotes.
pnpm add verbaly @verbaly/vite - 2
Gere tudo com um comando
npx verbaly initescreve a config, cria os catálogos delocales/e detecta seu bundler. Nunca sobrescreve nada. Prefere configurar à mão? Os passos abaixo fazem o mesmo.terminalnpx verbaly init # config + locales/ + bundler detection - 3
Adicione o plugin
vite.config.tsimport verbaly from '@verbaly/vite'; export default { plugins: [verbaly({ sourceLocale: 'es' })], };sourceLocaleé o idioma em que você escreve. Todos os outros idiomas vêm de um catálogo JSON emlocales/: deixe ali umen.jsonoupt.jsone o Verbaly os detecta automaticamente. - 4
Escreva texto, não chaves
src/app.tsimport { t, setLocale } from 'virtual:verbaly'; const saludo = t`Hola ${name}, tienes ${count} mensajes`; await setLocale('pt'); // lazy-loads pt chunkEm dev, o plugin extrai as mensagens ao vivo: seu catálogo fonte se preenche sozinho, os outros idiomas recebem placeholders
"", everbaly.d.tsmantém chaves e params tipados. - 5
Traduza e verifique
terminalnpx verbaly extract # sync catalogs + types npx verbaly check # exit 1 if anything is missing
O que o módulo virtual exporta
| Export | Descrição |
|---|---|
| t | Traduz: t('key', params) ou o tagged t`...` |
| setLocale(locale) | Async: carrega o chunk desse idioma sob demanda e então troca |
| getLocale() | Idioma atual |
| subscribe(fn) | Re-executa a UI em mudanças de idioma/mensagens; retorna unsubscribe |
| verbaly | A instância subjacente (uso avançado) |