La CLI de Lingo.dev escala sin problemas 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#
La CLI distribuye las tareas de traducción entre workers que se ejecutan de forma concurrente. La concurrencia predeterminada es de 10 workers:
npx lingo.dev@latest runAumenta la concurrencia en proyectos de gran tamaño:
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 detalles sobre la arquitectura de workers.
Procesamiento selectivo#
Procesa subconjuntos concretos 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, para que las ejecuciones de CI sigan siendo rápidas incluso en proyectos de gran tamaño.
Organización por buckets#
Separa los distintos tipos de contenido en buckets específicos para procesarlos de forma selectiva:
{
"buckets": {
"json": {
"include": ["src/locales/[locale].json"]
},
"markdown": {
"include": ["docs/[locale]/*.md"]
}
}
}Así puedes procesar la documentación y el contenido de la aplicación por separado: --bucket markdown traduce solo la documentación.
