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
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 diffEl 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 translateLa 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
- El archivo de bloqueo: por qué repetir ejecuciones sale barato y qué confirmar.
- Archivo de configuración: el esquema completo de configuración, incluidos
glossaryytone. - Proveedores: las opciones de cada proveedor y dónde conseguir una clave.
Tu primera traducción
Instala la CLI, genera una configuración con verbatra init, define tu clave de API y ejecuta tu primer translate. Menos de diez minutos desde cero hasta un archivo de locale traducido.
Cómo funciona
La canalización de traducción de principio a fin, desde leer el locale de origen hasta actualizar el archivo de bloqueo.