Traduce solo lo que cambió.
verbatra es una CLI y un SDK que mantiene tus archivos de locale i18n sincronizados. Tú mantienes el locale de origen; verbatra rellena todos los demás locales a través del proveedor de IA que elijas.
pnpm add -D @verbatra/cliAn example verbatra command-line session.
- verbatra init
- ✓ created verbatra.config.ts
- source en · targets de, es, fr
- provider anthropic · key from ANTHROPIC_API_KEY
- verbatra translate
- diff en.json · 12 new · 0 changed · 108 unchanged
- de 12 translated · 108 unchanged · 0 withheld
- es 12 translated · 108 unchanged · 0 withheld
- fr 12 translated · 108 unchanged · 0 withheld
- ✓ 36 keys translated in 5.4s · 0 skipped · lock updated
- verbatra diff
- en.json · 120 keys · source of truth
- de 2 new · 1 changed · 117 up to date
- es 0 new · 0 changed · 120 up to date
- fr 5 new · 0 changed · 115 up to date
- 8 keys would be sent · run verbatra translate to apply
- verbatra watch
- watching en.json for changes
- en.json changed · 1 new key
- de 1 translated · 0 withheld
- es 1 translated · 0 withheld
- fr 1 translated · 0 withheld
- ✓ 3 keys translated · waiting for changes
Una herramienta para todo el ciclo de traducción.
verbatra es más que traducción con IA. Cubre la traducción automática que tú controlas, una entrega limpia en Excel para traductores humanos y la automatización para mantener cada locale sincronizado.
Traducción con IA
Traduce solo lo que cambió a través del proveedor que tú elijas: Anthropic, OpenAI, Gemini, DeepL o cualquier servidor compatible con OpenAI que tú mismo ejecutes. Un archivo de bloqueo confirmado mantiene cada ejecución incremental, y la integridad de los marcadores de posición y de ICU se comprueba antes de escribir nada.
Entrega en Excel
Ejecuta verbatra export para producir un libro .xlsx con estilo, entrégalo a una agencia de traducción o a traductores internos, y luego verbatra import vuelve a leer sus cambios en tus archivos de locale. Combina la traducción automática con el trabajo humano profesional.
Automatización
Mantén cada locale sincronizado mientras trabajas: verbatra watch traduce al cambiar, los códigos de salida compatibles con CI y la salida --json encajan en cualquier pipeline, y una GitHub Action lo ejecuta en tu flujo de trabajo.
Una herramienta, todos los frameworks.
verbatra lee los archivos de locale que tu stack ya usa: JSON para i18next, vue-i18n, next-intl y ngx-translate, además de XLIFF, YAML y Flutter ARB. Los rellena a través del proveedor que elijas, sin ningún formato nuevo que adoptar.
- Frameworks y formatos:
- React
- Next.js
- Vue
- Nuxt
- Angular
- Node.js
- SvelteKit
- Astro
- React Native
- Flutter
Traduce con el modelo en el que confías.
Anthropic, OpenAI, Gemini, DeepL o cualquier servidor compatible con OpenAI que tú mismo alojes. Elige uno en una sola línea de configuración y cambia de proveedor sin tocar tus archivos de locale.
- Proveedores de traducción:
- Anthropic
- OpenAI
- Gemini
- DeepL
Una ejecución es un pipeline corto y predecible.
Sin magia, sin sincronización en segundo plano: una secuencia determinista que puedes leer de arriba abajo.
- 01
Configura
Apunta verbatra a tu locale de origen, indica los locales de destino y elige un proveedor. La configuración vive en un solo archivo; las claves de API se quedan en tu entorno.
- 02
Compara
Cada ejecución compara tu locale de origen con el archivo de bloqueo confirmado y clasifica cada clave en nueva, cambiada, sin cambios o huérfana.
- 03
Traduce
Solo las claves nuevas y cambiadas se envían a tu proveedor, en lotes, con tu glosario y tono aplicados. Todo lo demás se deja intacto.
- 04
Verifica y escribe
La integridad de los marcadores de posición y de ICU se comprueba en cada resultado. Cualquier cosa que se rompa se retiene; el resto se escribe en tus archivos de locale y se actualiza el bloqueo.
Creado para equipos que publican en muchos idiomas.
Cada decisión favorece la previsibilidad: diffs pequeños, configuración explícita y nada escrito que no se haya verificado primero.
Incremental por defecto
Un archivo de bloqueo confirmado registra lo que se tradujo. Cada ejecución compara el origen y llama al proveedor solo para las claves que cambiaron.
El proveedor que tú elijas
Anthropic, OpenAI, Gemini, DeepL o un modelo local compatible con OpenAI, elegido en una línea de configuración. Cambia de proveedor sin tocar tus archivos de locale.
Seguro por construcción
La integridad de los marcadores de posición y de ICU se comprueba después de cada traducción. Un resultado que rompe un marcador de posición se retiene, nunca se escribe.
Las claves se quedan en tu entorno
Las claves de API del proveedor se leen desde variables de entorno, nunca desde el archivo de configuración, nunca desde argumentos de la CLI y nunca se registran.
CLI y SDK, un solo motor
El comando verbatra y @verbatra/sdk comparten un único núcleo de orquestación, así que los scripts, la CI y tus propias herramientas se comportan de forma idéntica.
Ejecuciones en seco y modo de observación
Previsualiza exactamente lo que una ejecución cambiaría sin escribir nada, o mantén una observación en marcha que traduce a medida que tu locale de origen evoluciona.
Preguntas frecuentes
Respuestas cortas y directas a las preguntas que los equipos hacen antes de adoptar verbatra.
Mantiene un archivo de bloqueo confirmado que registra lo que ya se tradujo. Cada ejecución compara tu locale de origen con ese bloqueo y envía solo las claves nuevas o cambiadas a tu proveedor. Las claves sin cambios nunca se tocan, así que una ejecución típica cuesta un puñado de cadenas, no todo tu catálogo.
Cinco, tras una sola interfaz: Anthropic, OpenAI y Gemini (LLM), DeepL (traducción automática) y openai-compatible, que apunta verbatra a un servidor local o autoalojado como Ollama, LM Studio o vLLM. Eliges uno por id en tu configuración y puedes cambiar después editando esa única línea. Gemini tiene un nivel gratuito real, y un modelo local no cuesta nada por llamada.
JSON para i18next, vue-i18n, next-intl y ngx-translate, además de XLIFF, YAML y Flutter ARB. Eso cubre React, Next.js, Vue, Nuxt, Angular, SvelteKit, Astro, Node.js y Flutter. verbatra lee los archivos que ya tienes; no hay ningún formato específico de verbatra al que migrar.
Un panel web local sobre tu proyecto que muestra en vivo el estado de cada locale, reúne una cola de revisión de las entradas marcadas y te deja corregir traducciones al momento. Ejecútalo con verbatra studio (instala primero @verbatra/studio). Editar tus propios archivos de locale funciona de fábrica; llamar a un proveedor desde la interfaz es opcional, tras --allow-spend. Corre solo en 127.0.0.1 y nunca sale de tu máquina.
Cada resultado pasa una comprobación de integridad de marcadores de posición e ICU antes de escribirse. Una traducción que suelta, inventa o reordena un marcador de posición, o produce una sintaxis de mensaje ICU inválida, se retiene en lugar de guardarse en tu archivo de locale. La misma comprobación se aplica a las ediciones y retraducciones hechas en Verbatra Studio.
Las claves se leen solo desde variables de entorno (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, DEEPL_API_KEY), nunca desde el archivo de configuración, los argumentos de la CLI ni los logs. Solo se envían las cadenas que estás traduciendo, y solo al proveedor que elegiste. Si usas el proveedor openai-compatible con un modelo local, nada sale de tu máquina ni de tu red.
Sí. Una ejecución en seco informa exactamente de qué claves se enviarían y escribirían sin tocar tus archivos, y verbatra check y verbatra diff informan de la desviación por locale sin llamar a un proveedor. El modo de observación hace lo contrario: sigue traduciendo a medida que tu locale de origen cambia.
Sí. La CLI es un envoltorio ligero sobre @verbatra/sdk, que expone las mismas operaciones translate, watch, check y diff para tus propias herramientas. Los comandos devuelven códigos de salida compatibles con CI y admiten la salida --json, y una GitHub Action oficial ejecuta verbatra en tu flujo de trabajo.
verbatra en sí es gratuito y de código abierto bajo la licencia MIT. El único coste es el uso de tu proveedor, que tú controlas: traduce solo lo que cambió, y puedes ejecutarlo gratis en el nivel gratuito de Gemini o en un modelo local compatible con OpenAI.
Es joven y se desarrolla de forma activa, así que fija una versión y lee el registro de cambios cuando actualices. El modelo de seguridad ya es sólido: cada ejecución compara con un archivo de bloqueo confirmado, comprueba la integridad de marcadores de posición e ICU en cada resultado, y retiene cualquier cosa que se rompa en lugar de escribirla. Hoy los equipos lo ejecutan en CI; si fijas versiones, estás sobre terreno estable.
Deja de sincronizar los archivos de locale a mano.
Añade verbatra, confirma el archivo de bloqueo y deja que cada ejecución toque solo lo que cambió.