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.

npm i -D @verbatra/cli
  • Última versión publicada de @verbatra/cli en npm
  • Última versión publicada de @verbatra/sdk en npm
  • Estado de la compilación de integración continua
  • Cobertura de pruebas reportada en Codecov
  • Descargas mensuales en npm
  • Publicado bajo la licencia MIT
~/acme-shop

An example verbatra command-line session.

  1. verbatra init
    • ✓ created verbatra.config.ts
    • source en · targets de, es, fr
    • provider gemini · key from GEMINI_API_KEY
  2. 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
  3. 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
  4. 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 elijas: Anthropic, OpenAI, Gemini, DeepL, Google Cloud Translation, o cualquier servidor compatible con OpenAI que ejecutes tú mismo. Un archivo de bloqueo comprometido mantiene cada ejecución incremental, y la integridad de los placeholders y del ICU se verifica antes de escribir cualquier cosa.

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 localización que tu stack ya usa: JSON para i18next, vue-i18n, next-intl y ngx-translate, además de archivos XLIFF, YAML, Flutter ARB, .properties de Java/Spring, .strings de Apple y catálogos de strings de Xcode, strings.xml de Android y archivos .po/.pot de gettext. Los completa a través del proveedor que elijas, sin un nuevo formato 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, Google Cloud Translation, o cualquier servidor compatible con OpenAI que alojes tú mismo. Elige uno en una sola línea de configuración y cambia de proveedor sin tocar tus archivos de localización.

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

  1. 01

    Configura

    Apunta verbatra a tu locale de origen, indica los idiomas de destino y elige un proveedor. La configuración vive en un solo archivo; las claves de API se quedan en tu entorno.

  2. 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. Las claves huérfanas, las que ya no están en tu origen, se informan y se dejan donde están: no se elimina nada de tus archivos de locale a menos que actives --prune.

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

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

Observa todo el estado de la traducción, en local.

Verbatra Studio es un panel local sobre tu proyecto. Muestra en vivo la cobertura de cada locale, lista las traducciones que una ejecución marcó como dignas de una segunda mirada y te deja corregirlas ahí mismo. Editar no necesita clave de API y nunca llama a un proveedor.

Verbatra Studio
La página Traducciones de Verbatra Studio: cuatro tarjetas de resumen con las claves que necesitan atención, la cobertura media, los locales sincronizados y el consumo de tokens de la última ejecución, y debajo una cuadrícula que marca cada clave como ausente o sincronizada por locale, más una tabla de cobertura por locale.
Studio viene en claro y oscuro. Cambia la captura para compararlos.
Revisa traducciones en Studio

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, Google Cloud Translation, o un modelo local compatible con OpenAI, elegido en una línea de configuración. Cambia de proveedor sin tocar tus archivos de localización.

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.

JSON para i18next, vue-i18n, next-intl y ngx-translate, además de archivos XLIFF, YAML, Flutter ARB, .properties de Java/Spring, .strings de Apple y catálogos de strings de Xcode, strings.xml de Android y archivos .po/.pot de gettext. Eso cubre React, Next.js, Vue, Nuxt, Angular, SvelteKit, Astro, Node.js, Spring, Flutter, iOS, macOS, Android y cualquier stack basado en gettext. verbatra lee los archivos que ya tienes; no hay un formato específico de verbatra al que migrar.

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.

Seis, detrás de una sola interfaz: Anthropic, OpenAI y Gemini (LLMs), DeepL y Google Cloud Translation (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 su ID en tu configuración y puedes cambiar más tarde editando esa única línea. Gemini tiene una capa gratuita real, y un modelo local no cuesta nada por llamada.

Cada resultado pasa una comprobación de integridad de marcadores de posición e ICU antes de escribirse. Una traducción que omite, 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.

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.

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