El comando run procesa las tareas de traducción en paralelo distribuyéndolas entre un pool de workers. Cada combinación de idioma/archivo se convierte en una tarea independiente, y los workers las procesan al mismo tiempo.
Uso#
# Default concurrency (10 workers)
npx lingo.dev@latest run
# Custom concurrency
npx lingo.dev@latest run --concurrency 20Cómo funciona#
- Creación de tareas - la CLI analiza tu
i18n.jsony crea tareas individuales para cada combinación de idioma/archivo - Distribución de workers - las tareas se asignan a los workers disponibles mediante balanceo de carga
- Procesamiento concurrente - los workers traducen simultáneamente mientras los bloqueos del sistema de archivos evitan conflictos de escritura
- Agregación de resultados - las traducciones completadas se escriben de forma segura en los archivos de destino
Opciones de segmentación#
Todas las opciones de segmentación del comando run funcionan con el procesamiento en paralelo:
| Opción | Descripción |
|---|---|
--target-locale es | Procesar idiomas de destino concretos |
--source-locale en | Sobrescribir el idioma de origen |
--bucket json | Procesar tipos de bucket concretos |
--file components/header | Procesar archivos concretos (admite patrones glob) |
--key welcome.title | Procesar claves concretas (admite patrones glob) |
--force | Omitir el archivo de bloqueo y volver a traducirlo todo |
--frozen | Fallar si algún contenido requiere traducción |
--concurrency 20 | Definir el número de workers concurrentes |
Caché automática#
Al usar la API de Lingo.dev, los archivos de idioma de gran tamaño se dividen en fragmentos. Los archivos de destino se rellenan de forma incremental a medida que cada fragmento vuelve desde la API. Si el proceso se interrumpe, la siguiente ejecución se reanuda justo donde se quedó.
Para volver a traducir, usa primero purge y después run sin --force. Así aprovechas el mecanismo de caché integrado para procesar de forma más eficiente que con run --force.
Seguridad#
El pool de workers evita la corrupción de archivos mediante:
- Sincronización de E/S - las operaciones del sistema de archivos se serializan por archivo
- Protección mediante archivo de bloqueo - las operaciones atómicas evitan la corrupción concurrente de
i18n.lock - Procesamiento transaccional - cada tarea se completa por completo o falla de forma limpia
