Travailler avec des traductions existantes
Lingo.dev CLI s'intègre parfaitement aux projets disposant déjà de fichiers de traduction, en préservant le travail existant tout en complétant les traductions manquantes.
Lorsque vous exécutez l'interface en ligne de commande sur un projet avec des traductions existantes, elle analyse ce qui est déjà traduit et génère uniquement le contenu pour les clés manquantes, en maintenant la qualité et la cohérence de vos traductions existantes.
Remarque : assurez-vous que vos fichiers de langue cible sont vides et ne contiennent pas de contenu dans la langue source. Avoir du contenu en langue source dans les fichiers cibles est une mauvaise pratique et peut interférer avec le processus de traduction.
Fonctionnement
Lingo.dev CLI compare votre contenu source aux fichiers cibles existants pour identifier les lacunes. Seules les traductions manquantes sont générées, laissant votre travail existant intact.
Exemple de scénario :
// locales/en.json (source)
{
"welcome": "Welcome to our app",
"button.save": "Save",
"button.cancel": "Cancel",
"error.network": "Network error"
}
// locales/es.json (existing partial translations)
{
"welcome": "Bienvenido a nuestra aplicación",
"button.save": "Guardar"
}
L'exécution de npx lingo.dev@latest run génère uniquement les traductions manquantes :
// locales/es.json (after CLI run)
{
"welcome": "Bienvenido a nuestra aplicación",
"button.save": "Guardar",
"button.cancel": "Cancelar",
"error.network": "Error de red"
}
Vos traductions existantes pour "welcome" et "button.save" restent inchangées.
Première exécution avec des traductions existantes
Lorsque vous exécutez Lingo.dev CLI pour la première fois sur un projet avec des traductions existantes, il crée le fichier i18n.lock basé sur votre état actuel. Ce fichier de verrouillage suit le contenu qui a été traité, garantissant que les traductions existantes ne sont pas régénérées.
Flux de travail :
- Analyse initiale — l'interface en ligne de commande identifie les traductions existantes dans les fichiers cibles
- Analyse des lacunes — compare les clés sources aux fichiers cibles pour trouver les traductions manquantes
- Génération de traductions — crée uniquement les traductions manquantes
- Création du fichier de verrouillage — enregistre les empreintes de contenu pour tout le contenu source
Migration depuis des systèmes de traduction hérités
Lingo.dev CLI fonctionne avec des fichiers de traduction créés par n'importe quel outil, à condition qu'ils suivent des formats standard comme JSON, YAML ou d'autres types de fichiers pris en charge.
Étapes de migration :
- Configurer i18n.json — Définissez vos modèles de bucket pour correspondre aux emplacements de fichiers existants
- Exécuter la traduction initiale — Le CLI remplit toutes les traductions manquantes
- Réviser et valider — Les traductions existantes sont préservées, seules les lacunes sont comblées
Exemple de migration :
// Your existing project structure
locales/
en.json (source)
es.json (partial translations from previous tool)
fr.json (partial translations from previous tool)
// i18n.json configuration
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
Le CLI respecte votre structure de fichiers et vos traductions existantes.
Gestion de la qualité des traductions
Les traductions existantes peuvent avoir une qualité inférieure aux traductions générées par les moteurs de traduction IA. Lingo.dev CLI fournit des options pour actualiser les traductions si nécessaire :
Conserver les traductions existantes :
npx lingo.dev@latest run
# Preserves all existing translations, fills in gaps
Retraduire des langues spécifiques :
npx lingo.dev@latest run --force --target-locale es
# Regenerates all Spanish translations
Retraduire des clés spécifiques :
npx lingo.dev@latest run --force --key error.network
# Regenerates just the error.network key across all languages
Pour plus d'informations sur la retraduction, consultez Retraduction.
Fichiers cibles vides
Si vous avez des fichiers cibles vides ou des fichiers avec seulement quelques clés, Lingo.dev CLI les traite comme partiellement traduits et remplit le contenu manquant.
Exemple :
// locales/de.json (empty target file)
{}
Après l'exécution du CLI, il devient un fichier de traduction complet avec toutes les clés sources traduites.
Initialisation du fichier de verrouillage
La première exécution crée un fichier i18n.lock qui reflète votre état existant. Cela empêche le CLI de retraduire le contenu qui était déjà présent, même s'il n'a pas été généré à l'origine par Lingo.dev CLI.
Ce fichier de verrouillage garantit un comportement cohérent entre les traductions existantes et nouvelles à l'avenir.