Travailler avec des traductions existantes

Lingo.dev CLI s'intègre parfaitement aux projets qui disposent déjà de fichiers de traduction, préservant le travail existant tout en complétant les traductions manquantes.

Lorsque vous exécutez le CLI sur un projet avec des traductions existantes, il analyse ce qui est déjà traduit et ne génère du contenu que pour les clés manquantes, maintenant ainsi 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.

Comment ça fonctionne

Lingo.dev CLI compare votre contenu source avec les fichiers cibles existants pour identifier les lacunes. Seules les traductions manquantes sont générées, laissant votre travail existant intact.

Scénario d'exemple :

// locales/en.json (source)
{
  "welcome": "Welcome to our app",
  "button.save": "Save",
  "button.cancel": "Cancel",
  "error.network": "Network error"
}

// locales/es.json (traductions partielles existantes)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar"
}

L'exécution de npx lingo.dev@latest i18n génère uniquement les traductions manquantes :

// locales/es.json (après exécution du CLI)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar",
  "button.cancel": "Cancelar",
  "error.network": "Error de red"
}

Vos traductions existantes "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 quel contenu a été traité, garantissant que les traductions existantes ne sont pas régénérées.

Flux de travail :

  1. Analyse initiale — Le CLI identifie les traductions existantes dans les fichiers cibles
  2. Analyse des écarts — Compare les clés sources avec les fichiers cibles pour trouver les traductions manquantes
  3. Génération de traduction — Crée uniquement les traductions manquantes
  4. Création du fichier de verrouillage — Enregistre les empreintes digitales du contenu pour tout le contenu source

Migration depuis les systèmes de traduction existants

Lingo.dev CLI fonctionne avec des fichiers de traduction créés par n'importe quel outil, à condition qu'ils suivent des formats standards comme JSON, YAML ou d'autres types de fichiers pris en charge.

Étapes de migration :

  1. Configurez i18n.json — Définissez vos modèles de bucket pour correspondre aux emplacements de fichiers existants
  2. Exécutez la traduction initiale — L'interface CLI comble toutes les traductions manquantes
  3. Révisez et validez — Les traductions existantes sont préservées, seules les lacunes sont comblées

Exemple de migration :

// Votre structure de projet existante
locales/
  en.json    (source)
  es.json    (traductions partielles de l'outil précédent)
  fr.json    (traductions partielles de l'outil précédent)

// Configuration i18n.json
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

L'interface 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 à celles générées par les moteurs de traduction IA. Lingo.dev CLI offre des options pour actualiser les traductions si nécessaire :

Conserver les traductions existantes :

npx lingo.dev@latest i18n

# Préserve toutes les traductions existantes, comble les lacunes

Retraduire des langues spécifiques :

npx lingo.dev@latest i18n --force --locale es

# Régénère toutes les traductions en espagnol

Retraduire des clés spécifiques :

npx lingo.dev@latest i18n --force --key error.network

# Régénère uniquement la clé error.network dans toutes les langues

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 complète le contenu manquant.

Exemple :

// locales/de.json (fichier cible vide)
{}

Après l'exécution de l'interface 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 actuel. Cela empêche l'interface en ligne de commande de retraduire du contenu 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 assure un comportement cohérent entre les traductions existantes et nouvelles à l'avenir.