Proyectos de gran tamaño

Max PrilutskiyCEO y cofundadorActualizado: hace 3 meses · 2 min de lectura

Obsoleto

Estos documentos cubren el CLI heredado (v0). El CLI actual es v1. Ver la documentación actual del CLI

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:

bash
npx lingo.dev@latest run

Aumenta la concurrencia en proyectos de gran tamaño:

bash
npx lingo.dev@latest run --concurrency 20

En 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:

bash
# 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.title

Estas 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:

yaml
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:

json
{
  "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.

Siguientes pasos#