Ajout de langues

La CLI Lingo.dev simplifie l'expansion de votre projet vers de nouvelles langues en ajoutant des locales cibles à votre configuration i18n.json et en exécutant une seule commande.

Lorsque vous ajoutez de nouvelles langues, la CLI génère des fichiers de traduction complets pour les nouvelles locales tout en préservant toutes les traductions existantes et en maintenant le même système d'empreintes de contenu.

Ajout de votre première nouvelle langue

Pour ajouter une nouvelle langue, mettez à jour le tableau targets dans votre configuration i18n.json :

Configuration d'origine :

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

Configuration mise à jour avec l'allemand :

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

L'exécution de npx lingo.dev@latest run crée le nouveau fichier de traduction allemand :

locales/
  en.json    (source - unchanged)
  es.json    (existing - unchanged)
  fr.json    (existing - unchanged)
  de.json    (new - fully translated)

Fonctionnement de la génération de nouvelles langues

La CLI Lingo.dev traite les nouvelles langues différemment des langues existantes :

  1. Langues existantes — Seules les traductions manquantes sont générées
  2. Nouvelles langues — Des fichiers de traduction complets sont créés à partir de zéro

Exemple avec des traductions existantes partielles :

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

// locales/es.json (existing with missing translations)
{
  "welcome": "Bienvenido"
}

Après avoir ajouté l'allemand et exécuté la CLI :

// locales/es.json (gaps filled)
{
  "welcome": "Bienvenido",
  "button.save": "Guardar",
  "error.network": "Error de red"
}

// locales/de.json (complete new file)
{
  "welcome": "Willkommen",
  "button.save": "Speichern",
  "error.network": "Netzwerkfehler"
}

Ajout de plusieurs langues

Vous pouvez ajouter plusieurs langues simultanément :

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja", "zh"]
  }
}

La CLI traite toutes les nouvelles langues, créant des fichiers de traduction complets pour chaque nouvelle locale.

Variantes régionales

La CLI Lingo.dev prend en charge les variantes linguistiques régionales en utilisant les balises de langue BCP 47 :

{
  "locale": {
    "source": "en-US",
    "targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
  }
}

Cela génère des fichiers de traduction distincts pour chaque variante régionale, en tenant compte des différences de terminologie, d'orthographe et de contexte culturel.

Impact sur la structure des fichiers

La CLI crée de nouveaux fichiers en suivant vos modèles de buckets. Pour différents formats de fichiers :

Buckets JSON :

locales/[locale].json → locales/de.json, locales/ja.json

Buckets Markdown :

content/[locale]/*.md → content/de/*.md, content/ja/*.md

Structures imbriquées :

app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json

Ajout ciblé de langue

Vous pouvez générer des traductions pour des nouvelles langues spécifiques en utilisant le flag --target-locale :

npx lingo.dev@latest run --target-locale de

Cela génère uniquement les traductions allemandes, laissant les autres nouvelles langues pour un traitement ultérieur.

Suppression de langue

Pour supprimer une langue, retirez-la simplement du tableau targets. La CLI ne supprimera pas les fichiers existants, mais elle cessera de traiter cette locale :

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  }
}

Vous pouvez supprimer manuellement les fichiers de traduction correspondants si nécessaire.