Inicio
Primeros pasos
Verbaly invierte el flujo i18n habitual: escribes texto natural en tu código y el compilador extrae los mensajes, genera claves estables, tipos y bundles por idioma. Requisitos: Node 20+ y Vite 7 u 8.
- 1
Instalación
Agrega el runtime y el plugin de Vite. Elige tu gestor de paquetes.
pnpm add verbaly @verbaly/vite - 2
Genera todo con un comando
npx verbaly initescribe la config, crea los catálogos delocales/y detecta tu bundler. Nunca sobreescribe nada. ¿Prefieres cablearlo a mano? Los pasos de abajo hacen lo mismo.terminalnpx verbaly init # config + locales/ + bundler detection - 3
Agrega el plugin
vite.config.tsimport verbaly from '@verbaly/vite'; export default { plugins: [verbaly({ sourceLocale: 'es' })], };sourceLocalees el idioma en el que escribes. Los demás idiomas salen de un catálogo JSON enlocales/: deja ahí unen.jsonopt.jsony Verbaly los detecta automáticamente. - 4
Escribe texto, no claves
src/app.tsimport { t, setLocale } from 'virtual:verbaly'; const saludo = t`Hola ${name}, tienes ${count} mensajes`; await setLocale('pt'); // lazy-loads pt chunkEn dev, el plugin extrae los mensajes en vivo: tu catálogo fuente se llena solo, los demás idiomas reciben placeholders
"", yverbaly.d.tsmantiene claves y params tipados. - 5
Traduce y verifica
terminalnpx verbaly extract # sync catalogs + types npx verbaly check # exit 1 if anything is missing
Qué exporta el módulo virtual
| Export | Descripción |
|---|---|
| t | Traduce: t('key', params) o el tagged t`...` |
| setLocale(locale) | Async: carga el chunk de ese idioma bajo demanda y luego cambia |
| getLocale() | Idioma actual |
| subscribe(fn) | Re-ejecuta la UI en cambios de idioma/mensajes; devuelve unsubscribe |
| verbaly | La instancia subyacente (uso avanzado) |