Ir para o conteúdo

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.

  • Node 20+ · Vite 7/8
  • TypeScript-first
  • ~3 KB · 0 deps
  1. Instalação

    Adicione o runtime e o plugin do Vite. Escolha seu gerenciador de pacotes.

     pnpm add verbaly @verbaly/vite

    O runtime é sempre o mesmo; o segundo depende do seu setup. Em webpack, Rollup, esbuild ou Rspack você instala @verbaly/unplugin no lugar, e Next.js, Nuxt e Astro têm o seu. Ver Pacotes.

  2. Gere tudo com um comando

    npx verbaly init escreve a config, cria os catálogos em locales/ e diz qual integração o seu projeto precisa. Ele nunca sobrescreve nada. Prefere ligar na mão? Os passos abaixo fazem o mesmo.

    terminal
    npx verbaly init      # config + locales/ + the integration to install
  3. Adicione o plugin

    vite.config.ts
    import 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 em locales/: deixe ali um en.json ou pt.json e o Verbaly os detecta automaticamente.

  4. Escreva texto, não chaves

    src/app.ts
    import { t, setLocale } from 'virtual:verbaly';
    
    const saludo = t`Hola ${name}, tienes ${count} mensajes`;
    
    await setLocale('pt'); // lazy-loads pt chunk

    Em dev, o plugin extrai as mensagens ao vivo: seu catálogo fonte se preenche sozinho, os outros idiomas recebem placeholders "", e verbaly.d.ts mantém chaves e params tipados.

  5. Traduza e verifique

    terminal
    npx verbaly extract   # sync catalogs + types
    npx verbaly check     # exit 1 if anything is missing

O que o módulo virtual exporta

ExportDescrição
tTraduz: 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
verbalyA instância subjacente (uso avançado)
Copiado para a área de transferência