Primeros pasosAñade un idioma

Añade un idioma

Añade un nuevo locale de destino a un proyecto verbatra existente con un cambio de una línea en la configuración y una ejecución de translate, mientras tus locales existentes quedan intactos.

Página traducida automáticamente

Esta página fue traducida automáticamente, así que puede contener errores o sonar un poco raro. La versión en inglés es la fuente de la verdad. Lee el original en inglés.

Añadir un idioma es un cambio de una línea en la configuración más una ejecución. verbatra ve el nuevo locale como si le faltara todo y lo completa entero; tus locales existentes no cuestan nada, porque el archivo de bloqueo todavía los tiene registrados como vigentes.

Añade el locale a tu configuración

Añádelo a targetLocales en verbatra.config.ts:

import { defineConfig } from "@verbatra/cli";

export default defineConfig({
  sourceLocale: "en",
  targetLocales: ["de", "fr"], // "fr" added
  format: "i18next-json",
  files: {
    pattern: "locales/{locale}.json",
  },
  provider: {
    id: "gemini",
    options: {
      model: "gemini-2.5-flash",
      maxOutputTokens: 4096,
    },
  },
});

Dos reglas, ambas aplicadas al cargar la configuración: un locale de destino no puede ser el sourceLocale, y dos entradas no pueden colisionar sin distinguir mayúsculas de minúsculas (nada de de y DE en la misma lista).

Previsualiza el trabajo

Antes de gastar un token, mira qué haría una ejecución. diff es de solo lectura y lista las claves pendientes por locale:

verbatra diff

El nuevo locale aún no tiene archivo de destino, así que verbatra lo trata como vacío y cada clave de origen aparece como faltante; tus locales existentes no listan nada, suponiendo que sus cadenas de origen no han cambiado. diff sale con 1 mientras hay cambios pendientes y con 0 cuando ya no queda ninguno. verbatra translate --dry-run te da la misma vista previa con la forma de un resumen de ejecución, sin llamada al proveedor y sin escrituras.

Traduce

verbatra translate

La ejecución traduce cada clave de origen al nuevo locale y escribe el archivo en tu files.pattern (aquí locales/fr.json). Un origen grande se divide en sublotes de como mucho 50 claves por solicitud al proveedor (configurable con maxBatchSize), así que una solicitud sobredimensionada no puede hundir el locale entero.

Este es el comportamiento incremental en acción: solo el nuevo locale dispara llamadas al proveedor. Para cada locale existente, verbatra hace diff del origen contra la línea base de ese locale en verbatra.lock.json, no encuentra claves faltantes ni modificadas, y no envía nada. Después, verbatra check sale con 0: todos los locales, incluido el nuevo, están sincronizados.

Idiomas con más categorías de plural

Algunos idiomas necesitan más categorías de plural CLDR que tu origen. El inglés tiene dos (one y other); el polaco, el árabe y el ruso tienen más. Por defecto verbatra traduce las formas plurales que encuentra en el origen y no inventa las extra: la ejecución sigue teniendo éxito y emite un aviso por locale (código PLURAL_CATEGORIES_INCOMPLETE) que nombra las categorías que faltan.

Para que verbatra sintetice en su lugar las formas que faltan, define generatePlurals: true en tu configuración:

export default defineConfig({
  // ...
  generatePlurals: true,
});

La generación solo está soportada para proyectos i18next-JSON traducidos por un proveedor LLM; DeepL, los otros formatos y los idiomas de destino desconocidos recurren al aviso y nunca hacen fallar la ejecución. Las formas generadas pasan las comprobaciones de integridad como cualquier traducción y se informan por separado de las claves traducidas en el resumen de la ejecución.

Mantén el locale de origen

Solo mantienes a mano el locale de origen. Para añadir cadenas, ponlas en el archivo de origen y ejecuta translate de nuevo: verbatra las completa en todos los destinos, incluido el que acabas de añadir.

Siguiente

Edit on GitHub