Le CLI Lingo.dev traduit vos applications et vos contenus à partir d’un unique fichier de configuration i18n.json, extrait les chaînes à traduire de vos fichiers source, puis les achemine via un moteur de localisation ou directement via un fournisseur LLM. Il écrit ensuite les traductions sur le disque et suit les modifications pour que les exécutions suivantes ne traitent que le delta.
Le pipeline en cinq étapes#
Lorsque vous exécutez npx lingo.dev@latest run, le CLI déroule cinq étapes dans l’ordre :
Découverte du contenu
Le CLI analyse votre projet pour repérer les fichiers source et cible en fonction des configurations de bucket dans i18n.json. Chaque bucket définit un format de fichier ainsi qu’un ensemble de motifs d’inclusion et d’exclusion qui indiquent au CLI où se trouve le contenu à traduire.
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
},
"markdown": {
"include": ["docs/[locale]/*.md"]
}
}
}Le placeholder [locale] est remplacé à l’exécution par les codes de langue source et cible configurés.
Nettoyage des données
Tout le contenu n’a pas besoin d’être traduit. Le CLI filtre les valeurs qui doivent rester identiques d’une langue à l’autre : nombres, booléens, dates ISO, UUID, URL et chaînes vides. Cela réduit le volume envoyé au backend de traduction, ainsi que la consommation de tokens et le temps de traitement.
Calcul du delta
Le CLI calcule des empreintes SHA-256 pour chaque chaîne source et les compare à l’état précédent stocké dans i18n.lock. Seul le contenu nouveau ou modifié entre dans le pipeline de traduction. Les chaînes inchangées sont entièrement ignorées.
Avec cette approche incrémentale, un projet de 10 000 clés dont 12 ont changé ne traduit que ces 12 clés, et non l’ensemble complet.
Localisation
Le delta est envoyé au backend de traduction configuré. Le CLI prend en charge deux modes :
| Mode | Fonctionnement |
|---|---|
| Moteur Lingo.dev | Achemine les requêtes via votre moteur de localisation, en appliquant automatiquement la voix de marque, le glossaire, les instructions et la configuration du modèle. |
| Fournisseur LLM brut | Envoie les requêtes de traduction directement à OpenAI, Anthropic, Google, Mistral, OpenRouter ou Ollama avec un prompt personnalisé. |
Le CLI relance les requêtes échouées avec un backoff exponentiel, enregistre la progression partielle et traite plusieurs langues cibles en parallèle.
Injection du contenu
Les chaînes traduites sont écrites sur le disque exactement aux emplacements du contenu source. Le CLI préserve la structure et la mise en forme des fichiers afin de produire des diffs minimaux et faciles à relire. Si Prettier est configuré dans votre projet, la sortie respecte vos règles de formatage.
Fichiers de sortie#
Une exécution typique produit deux types de modifications :
- Fichiers de langue - fichiers de langue cible mis à jour avec les traductions nouvelles et modifiées
i18n.lock- mis à jour avec les empreintes du contenu pour suivre l’état
Les deux doivent être commités dans votre système de contrôle de version, manuellement ou automatiquement via l’intégration CI/CD.
