El CLI de Lingo.dev escala en proyectos con miles de claves de traducción y decenas de idiomas de destino gracias al procesamiento en paralelo, la traducción incremental mediante el lockfile y las opciones de procesamiento selectivo.
Procesamiento en paralelo#
El CLI distribuye las tareas de traducción entre workers concurrentes. La concurrencia predeterminada es de 10 workers:
npx lingo.dev@latest runAumenta la concurrencia en proyectos grandes:
npx lingo.dev@latest run --concurrency 20En un proyecto con 50 archivos en 10 idiomas (500 tareas de traducción), el procesamiento en paralelo las resuelve de forma concurrente en lugar de secuencial. Consulta Parallel Processing para conocer más sobre la arquitectura de workers.
Procesamiento selectivo#
Procesa subconjuntos específicos en lugar de todo el proyecto:
# Specific languages
npx lingo.dev@latest run --target-locale es --target-locale fr
# Specific file format
npx lingo.dev@latest run --bucket json
# Specific files
npx lingo.dev@latest run --file components/header
# Specific keys
npx lingo.dev@latest run --key welcome.titleEstas opciones se pueden combinar: --force --bucket json --target-locale es vuelve a traducir todo el contenido JSON solo al español.
Integración con CI/CD#
Automatiza la traducción en cada push con GitHub Actions:
name: Lingo.dev Localization
on:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
localize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}El lockfile garantiza que solo se traduzca el contenido modificado, lo que mantiene rápidas las ejecuciones de CI incluso en proyectos grandes.
Organización por buckets#
Separa los tipos de contenido en buckets distintos para habilitar un procesamiento selectivo:
{
"buckets": {
"json": {
"include": ["src/locales/[locale].json"]
},
"markdown": {
"include": ["docs/[locale]/*.md"]
}
}
}Esto te permite procesar la documentación y el contenido de la app por separado: --bucket markdown traduce solo la documentación.
