verbatra translate
Traduce cada locale de destino una vez y luego termina.
Página traducida automáticamente
Ejecuta una pasada de traducción sobre cada locale de destino y luego sal. translate lee el locale de origen, lo compara con el archivo de bloqueo, envía al proveedor solo las cadenas nuevas o modificadas, ejecuta las comprobaciones de integridad, escribe los archivos de locale y actualiza el bloqueo. Lo que sigue al día nunca se reenvía, así que nunca pagas dos veces por una cadena sin cambios.
Sinopsis
verbatra translate [flags]Flags
| Flag | Argumento | Por defecto | Efecto |
|---|---|---|---|
--cwd | <path> | directorio actual | resuelve la configuración y los archivos de locale desde este directorio |
--config | <path> | busca uno | carga este archivo de configuración en lugar de buscar uno |
--locales | <list> | todos los locales de destino configurados | traduce solo este subconjunto separado por comas; un locale no configurado hace fallar la ejecución con UNKNOWN_LOCALE antes de leer ni gastar nada, y una lista vacía es un error de uso, salida 2 |
--dry-run | ninguno | desactivado | previsualiza los cambios sin llamar a un proveedor ni escribir archivos (sin necesidad de clave API) |
--prune | ninguno | la opción prune de la configuración, si no, desactivado | elimina del archivo escrito y del bloqueo las claves huérfanas (en un archivo de destino pero ausentes del origen) |
--lock-timeout | <seconds> | 600 | cuánto esperar por un bloqueo de escritura de locale que otro proceso mantiene antes de fallar; debe ser un entero positivo puro de segundos (un valor como 60s, 0 o -1 es un error de uso, salida 2) |
--concurrency | <n> | 1 | traduce hasta n locales de destino a la vez; debe ser un entero positivo |
--no-cache | ninguno | desactivado (caché activada) | omite la caché de memoria de traducción local (verbatra.cache.json) para esta ejecución |
--json | ninguno | desactivado | imprime un envoltorio JSON en stdout que lleva el resumen de la ejecución bajo result (la forma RunSummary), o el código de error si la ejecución falla; la línea de error legible por humanos sigue yendo a stderr |
Por defecto una ejecución no borra nada: las claves huérfanas se informan y se dejan en su sitio. --prune elimina exactamente esas claves y nada más, y anula la opción prune de la configuración para esta ejecución. Antes de ejecutarse, translate carga .env.local y luego .env desde el directorio de trabajo; una variable ya definida en el entorno real gana.
--dry-run no construye ningún proveedor, así que no necesita clave API y no puede gastar nada: lee los archivos de origen y de destino, los compara con el archivo de bloqueo e informa exactamente de lo que cambiaría una ejecución real. No escribe nada (ni archivo de locale, ni actualización del bloqueo, ni instantánea de estado de la ejecución), no lee ni escribe la caché, y no toma ningún bloqueo de escritura por locale, así que nunca espera a una ejecución ya en curso. La carga de .env de arriba sigue ocurriendo en una ejecución en seco; simplemente no hay ninguna clave que leer. Eso la convierte en una forma completa de probar verbatra en un proyecto real antes de crear una cuenta de proveedor.
--locales de,fr reduce la ejecución a un subconjunto de los destinos configurados. Los locales que quedan fuera no se tocan: sus archivos, sus entradas del bloqueo y sus entradas de caché se quedan como estaban. Es el flag al que recurrir en un nivel gratuito con límite de tasa, donde traducir un locale cada vez es la única forma de avanzar, y también es la manera más rápida de volver a ejecutar un solo locale que quedó parcial. La instantánea de estado de la ejecución describe siempre solo la ejecución más reciente, así que una ejecución sobre un subconjunto la reduce a ese subconjunto.
--lock-timeout ajusta cuánto espera un locale por un bloqueo de escritura disputado antes de que la ejecución falle con LOCK_CONTENDED: súbelo cuando otra ejecución retiene el bloqueo legítimamente un rato, bájalo para fallar rápido en CI.
--concurrency traduce varios locales de destino en paralelo para terminar antes un proyecto grande. Se rechaza con salida 2 cuando la configuración fija un presupuesto maxTokens, porque los locales concurrentes no pueden respetar un tope de tokens de forma determinista (un dry-run queda exento). Si un error de toda la ejecución (en la práctica, un archivo de bloqueo corrupto) aflora cuando ya hay locales en marcha, no se arranca ningún locale más, y los que están en vuelo terminan y liberan sus bloqueos de escritura antes de que el comando salga con 2, así que la ejecución no deja atrás ningún bloqueo que la siguiente tenga que esperar. A medida que avanza una ejecución, el progreso se imprime en stderr (una línea por inicio de locale, sub-lote del proveedor y fin de locale), así que el stdout de una ejecución con --json sigue siendo un único resumen limpio. --no-cache se salta la caché de memoria de traducción para la ejecución, haciendo exactamente las llamadas al proveedor que haría sin caché presente.
Ejemplos
# translate once using the config it finds
verbatra translate
# preview the keys that would be pruned, spending nothing
verbatra translate --prune --dry-run
# one locale at a time, which is what a rate-limited free tier needs
verbatra translate --locales deCódigos de salida
| Código | Significado |
|---|---|
0 | todos los locales de destino quedaron completos |
1 | la ejecución terminó pero uno o más locales fallaron o quedaron parciales |
2 | no se pudo ejecutar: un error de toda la ejecución (configuración, origen, formato, proveedor o bloqueo) o un error de uso |
Que falle un locale no es fatal: la ejecución termina, sale con 1 y el detalle por locale queda en el resumen. Un locale parcial sale con 1 también. Ese es un locale cuyo archivo se escribió pero todavía tiene claves faltantes, normalmente porque un sublote del proveedor falló o la puerta de integridad rechazó una traducción, y darlo por bueno dejaría un archivo a medio traducir en tu repositorio sin que nadie lo note.
Relacionado
- Cómo funciona explica la canalización de leer, comparar, traducir y escribir.
- La caché explica qué omite
--no-cachey cómo se acota la reutilización. - Seguridad de la traducción cubre las comprobaciones de integridad y la cola de revisión.
verbatra diffprevisualiza las mismas claves pendientes en modo de solo lectura.- CI y códigos de salida muestra cómo ramificar sobre estos códigos.