Ajout de langues

Lingo.dev CLI 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, le 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'empreinte digitale du 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 i18n crée le nouveau fichier de traduction allemand :

locales/
  en.json    (source - inchangé)
  es.json    (existant - inchangé)
  fr.json    (existant - inchangé)
  de.json    (nouveau - entièrement traduit)

Comment fonctionne la génération de nouvelles langues

Lingo.dev CLI 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 (existant avec traductions manquantes)
{
  "welcome": "Bienvenido"
}

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

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

// locales/de.json (nouveau fichier complet)
{
  "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"]
  }
}

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

Variantes régionales

Lingo.dev CLI prend en charge les variantes régionales des langues 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, tenant compte des différences de terminologie, d'orthographe et de contexte culturel.

Impact sur la structure des fichiers

Le CLI crée de nouveaux fichiers selon vos modèles de bucket. 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 langues

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

npx lingo.dev@latest i18n --locale de

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

Suppression de langues

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

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

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