Traitement parallèle
Lingo.dev CLI offre un traitement parallèle via la commande run
, qui traite plusieurs tâches de localisation simultanément pour réduire considérablement le temps de traduction des projets volumineux.
La commande run
remplacera progressivement la commande i18n
dans les versions futures, fournissant les mêmes fonctionnalités avec des améliorations significatives de performance grâce au traitement concurrent.
Utilisation de base
Traiter toutes les traductions avec un traitement parallèle :
npx lingo.dev@latest run
Contrôler le niveau de concurrence :
npx lingo.dev@latest run --concurrency 20
La commande run
utilise les mêmes fichiers de configuration i18n.json
et i18n.lock
que la commande standard i18n
.
Fonctionnement du traitement parallèle
Lingo.dev CLI distribue les tâches de localisation entre plusieurs workers concurrents, traitant simultanément différentes paires de langues et modèles de fichiers.
Aperçu de l'architecture :
- Création de tâches — L'interface CLI analyse votre configuration et crée des tâches individuelles pour chaque combinaison locale/fichier
- Distribution des workers — Les tâches sont distribuées entre plusieurs processus workers
- Traitement concurrent — Les workers traitent les traductions simultanément tout en évitant les conflits de fichiers
- Agrégation des résultats — Les traductions terminées sont écrites en toute sécurité dans les fichiers cibles
Contrôle de concurrence
Définir le nombre de workers :
npx lingo.dev@latest run --concurrency 15
La concurrence par défaut est de 10 workers. Des valeurs plus élevées traitent les traductions plus rapidement mais consomment plus de ressources système et peuvent atteindre les limites de taux d'API.
La concurrence optimale dépend des capacités de votre système et des limites du fournisseur de traduction. Commencez avec la valeur par défaut et ajustez en fonction des performances.
Traitement ciblé
Traiter des langues spécifiques :
npx lingo.dev@latest run --locale es --locale fr
Traiter des types de fichiers spécifiques :
npx lingo.dev@latest run --bucket json
Traiter des fichiers spécifiques :
npx lingo.dev@latest run --file components/header
Traiter des clés spécifiques :
npx lingo.dev@latest run --key welcome.title
Forcer la retraduction :
npx lingo.dev@latest run --force
Ces options de ciblage fonctionnent de manière identique à la commande i18n
mais traitent les tâches en parallèle.
Prévention des conditions de concurrence
Lingo.dev CLI empêche la corruption des fichiers lors du traitement parallèle grâce à plusieurs mécanismes de protection :
Synchronisation des E/S — Les opérations sur le système de fichiers sont synchronisées pour éviter que plusieurs workers n'écrivent simultanément dans le même fichier.
Protection par fichier de verrouillage — Le fichier i18n.lock
utilise des opérations atomiques pour prévenir la corruption lors des mises à jour concurrentes.
Traitement transactionnel — Chaque tâche s'exécute entièrement ou échoue proprement, garantissant ainsi des états de fichiers cohérents.
Optimisation des performances
Surveillez les ressources système lors de l'utilisation de valeurs de concurrence élevées. Le CLI est conçu pour être efficace, mais les projets très volumineux peuvent bénéficier d'une surveillance des ressources.
Commencez avec les paramètres par défaut :
npx lingo.dev@latest run
# Utilise des paramètres de concurrence optimisés
Augmentez progressivement :
npx lingo.dev@latest run --concurrency 20
# Augmentez si le système gère bien la charge
Ciblez du contenu spécifique pour l'itération :
npx lingo.dev@latest run --file src/components
# Traite uniquement les composants modifiés
Compatibilité
La commande run
maintient une compatibilité totale avec les configurations existantes :
- Même format
i18n.json
— Aucun changement de configuration requis - Même comportement
i18n.lock
— Le suivi incrémental des traductions fonctionne de manière identique - Mêmes formats de fichiers — Tous les types de buckets sont pris en charge
- Mêmes options de ciblage — Les flags
--locale
,--bucket
,--key
,--file
,--force
fonctionnent de manière identique
Migration depuis la commande i18n
:
# Commande actuelle
npx lingo.dev@latest i18n
# Équivalent parallèle
npx lingo.dev@latest run
Toutes les fonctionnalités sont transférées directement avec des performances significativement améliorées.
Architecture du pool de workers
Lingo.dev CLI utilise un système sophistiqué de pool de workers :
Allocation dynamique — Les workers sont créés en fonction des ressources système et des paramètres de concurrence.
Distribution des tâches — Les tâches sont réparties uniformément entre les workers à l'aide d'algorithmes optimisés.
Suivi de progression — Surveillance en temps réel de la progression de toutes les opérations parallèles.
Gestion des ressources — Nettoyage automatique et libération des ressources à la fin du traitement.