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 :
- Langues existantes — Seules les traductions manquantes sont générées
- 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.