Saltar al contenido

Traduce solo lo que cambió

Verbatra aplica hash a cada clave en un archivo de bloqueo, envía solo las claves modificadas a tu proveedor y hace fallar la CI ante desviaciones.

Empezar
npm i -D @verbatra/cli

Funciona con los archivos de locale y los proveedores que ya usas

Formatos de archivo

  • i18next JSON
  • vue-i18n JSON
  • next-intl JSON
  • ngx-translate JSON
  • XLIFF
  • YAML
  • Flutter ARB
  • Java/Spring .properties
  • Apple .strings
  • Xcode String Catalog
  • Android strings.xml
  • gettext .po/.pot
  • INI
  • .NET .resx

Proveedores

  • Anthropic
  • OpenAI
  • Gemini
  • DeepL
  • Google Cloud Translation
  • OpenCode
  • OpenAI-compatible
  • LibreTranslate

Una ejecución, una configuración regional

2 claves salen de tu máquina, 12 se quedan

de: 2 translated, 12 unchanged, 359 tokens (318 in, 41 out)

Todo alrededor del diff

Una CLI, un SDK, un Studio local y un servidor MCP, todos leyendo el mismo archivo de bloqueo.

Traducir

Volver a traducir todo cuesta más

Solo 4 de 28 traducciones son nuevas o han cambiado, así que solo 4 van a tu proveedor.

$ npx @verbatra/cli translate
  de: 2 translated, 12 unchanged, 359 tokens (318 in, 41 out)
  fr: 2 translated, 12 unchanged, 366 tokens (322 in, 44 out)
  total: 725 tokens (640 in, 85 out)
2 succeeded, 0 partial, 0 failed

Comprobación

Las claves que faltan llegan a producción

exit 1

La comprobación sale con 1 mientras a un locale le faltan claves. No necesita clave de API, así que se ejecuta en cada pull request.

Integridad

Un placeholder roto estropea una pantalla

  • de: Willkommen zurück, {name}!
  • es: ¡Bienvenido de nuevo, {name}!
  • fr: Bienvenue, {name} !
  • ja: おかえりなさい、{name}さん!

Agentes

Tu agente de codificación arregla las traducciones

Registra el servidor MCP para el proyecto, y el agente puede leer el estado y arreglar las traducciones. Las herramientas que gastan tokens del proveedor siguen desactivadas hasta que las permitas.

claude mcp add --transport stdio --scope project verbatra -- npx -y @verbatra/mcp

Traduce una cadena con el SDK

Elige una cadena y mira cómo la llamada al SDK la traduce a todos los idiomas a continuación. Los marcadores de posición se quedan exactamente en su sitio.

en → de, es, fr, jalisto
Origen (en)Welcome back, {name}!
Cadena de origen
Idiomas de destino
Comprobación de integridad superada: 4 de 4 marcadores de posición intactosenviados 1conservados 9marcadores de posición 4/4
translate.ts
@verbatra/sdk
import { defineConfig, loadConfig, translate } from "@verbatra/sdk";

const config = await loadConfig({
  configOverride: defineConfig({
    sourceLocale: "en",
    targetLocales: [
      "de",
      "es",
      "fr",
      "ja",
    ],
    format: "next-intl-json",
    files: { pattern: "messages/{locale}.json" },
    provider: {
      id: "gemini",
      options: { model: "gemini-2.5-flash", maxOutputTokens: 2048 },
    },
  }),
});

const summary = await translate({ config });
translate()resuelto

Pre-generado con el SDK de Verbatra y Gemini, no en vivo.

Cómo se generaron estos resultados

Proveedor
Gemini
Modelo
gemini-2.5-flash
Generado
Cada resultado pre-generado, una fila por cadena de origen
Origen (inglés)AlemánEspañolFrancésJaponés
Save changesÄnderungen speichernGuardar cambiosEnregistrer les modifications変更を保存
Sign inAnmeldenIniciar sesiónSe connecterサインイン
Welcome back, {name}!Willkommen zurück, {name}!¡Bienvenido de nuevo, {name}!Bienvenue, {name} !おかえりなさい、{name}さん!
You have {count} new messagesSie haben {count} neue NachrichtenTienes {count} mensajes nuevosVous avez {count} nouveaux messages{count}件の新しいメッセージがあります
Your cart is empty.Ihr Warenkorb ist leer.Tu carrito está vacío.Votre panier est vide.カートは空です。
Delete this file?Diese Datei löschen?¿Eliminar este archivo?Supprimer ce fichier ?このファイルを削除しますか?
Don't show this againNicht wieder anzeigenNo mostrar esto de nuevoNe plus afficher ceci今後表示しない
SettingsEinstellungenConfiguraciónParamètres設定
Only changed keys get translated.Es werden nur geänderte Schlüssel übersetzt.Solo las claves modificadas se traducen.Seules les clés modifiées sont traduites.変更されたキーのみが翻訳されます。
VerbatraVerbatraVerbatraVerbatraVerbatra

Características

Diseñado para todo el flujo de trabajo de traducción

Desde la primera cadena en tu código fuente hasta la traducción revisada en producción.

  • Revisa en Studio

    Un panel de control local sobre tu proyecto: explora cada locale, trabaja en la cola de revisión y edita valores directamente.

  • Pasa el testigo a personas

    Exporta un libro de Excel, CSV, TSV o XLIFF para un traductor e impórtalo de nuevo. Los valores importados permanecen protegidos de futuras ejecuciones de traducción automática.

  • Extrae del código fuente

    Escanea tu código en busca de llamadas de traducción y añade las nuevas claves al locale de origen antes de que nadie las traduzca.

  • Vigila mientras desarrollas

    Mantén un vigilante ejecutándose en desarrollo, y cada cambio en el locale de origen se traduce a medida que guardas.

  • Claves tipadas

    Genera declaraciones de TypeScript para tus claves y argumentos de mensaje, de modo que un error tipográfico en una clave falle la compilación.

  • Sabe antes de gastar

    Doctor comprueba la configuración sin una clave de API, y una estimación calcula el tamaño de una ejecución antes de que cueste nada.

Antes de instalar Verbatra

Respuestas cortas, cada una con la página de documentación que profundiza.

¿Es Verbatra gratuito?

Sí. Verbatra es gratuito y de código abierto bajo la licencia MIT (se abre en una pestaña nueva), y solo pagas a tu proveedor por las claves que cambiaron; estimar el coste calcula antes una ejecución.

¿Qué proveedores de traducción soporta Verbatra?

Anthropic, OpenAI, Gemini, DeepL, Google Cloud Translation, OpenCode, OpenAI-compatible y LibreTranslate. Elige uno en el bloque provider, o none si solo traducen personas; detalles en proveedores.

¿Verbatra envía mis cadenas o claves de API a algún lugar?

Solo al proveedor que configures, cuando un comando traduce; no hay telemetría. Las claves permanecen en variables de entorno, y el manejo de datos enumera lo que recibe cada proveedor.

¿Puede Verbatra hacer que falle una pull request cuando faltan traducciones?

Sí. verbatra check sale con código 1 si un locale tiene claves faltantes u obsoletas, sin clave de API; la GitHub Action lo ejecuta en las pull requests.

¿En qué se diferencia Verbatra de otras herramientas de i18n?

Es una CLI que corre en tus archivos con commit, no una plataforma alojada. La página de comparación la contrasta con otras herramientas, con fuentes, incluso donde son más fuertes.

Antes de que gastes un token

Empieza con una ejecución de prueba

Este camino es para un proyecto que ya tiene archivos de locale, y ninguno de los pasos necesita una clave de API.

npx @verbatra/cli init
npx @verbatra/cli translate --dry-run