Projets d’envergure

Mis à jour le : le trimestre dernier · 2 min de lecture

Déconseillé

Cette documentation couvre l’ancien CLI (v0). La version actuelle du CLI est la v1. Voir la documentation actuelle du CLI

Le CLI Lingo.dev s’adapte aux projets comptant des milliers de clés de traduction et des dizaines de langues cibles grâce au traitement parallèle, à la traduction incrémentielle via le lockfile et à des options de traitement ciblé.

Traitement parallèle#

Le CLI répartit les tâches de traduction entre plusieurs workers exécutés en parallèle. Le niveau de concurrence par défaut est de 10 workers :

bash
npx lingo.dev@latest run

Augmentez le niveau de concurrence pour les projets d’envergure :

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

Pour un projet de 50 fichiers dans 10 langues (soit 500 tâches de traduction), le traitement parallèle les exécute simultanément au lieu de les traiter séquentiellement. Consultez Parallel Processing pour en savoir plus sur l’architecture des workers.

Traitement ciblé#

Traitez des sous-ensembles précis plutôt que l’ensemble du projet :

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

Ces options peuvent être combinées — --force --bucket json --target-locale es retraduit tout le contenu JSON en espagnol uniquement.

Intégration CI/CD#

Automatisez la traduction à chaque push avec 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 }}

Le lockfile garantit que seul le contenu modifié est traduit, ce qui permet de garder des exécutions CI rapides, même sur les grands projets.

Organisation par buckets#

Séparez les types de contenu dans des buckets distincts pour un traitement ciblé :

json
{
  "buckets": {
    "json": {
      "include": ["src/locales/[locale].json"]
    },
    "markdown": {
      "include": ["docs/[locale]/*.md"]
    }
  }
}

Vous pouvez ainsi traiter séparément la documentation et le contenu de l’application : --bucket markdown traduit uniquement la documentation.

Étapes suivantes#