Lingo.dev + .jsonc (JSON avec commentaires)
Lingo.dev CLI traduit les fichiers JSONC (JSON avec commentaires), prenant en charge toutes les fonctionnalités JSON standard ainsi que les commentaires et les virgules finales. Le CLI extrait les commentaires comme indices de traduction, préserve le formatage exact, gère intelligemment les structures imbriquées et ne traite que le contenu modifié pour une efficacité optimale.
Configuration rapide
Créez un fichier de configuration i18n.json
:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"jsonc": {
"include": ["locales/[locale].jsonc"]
}
}
}
Rappel : [locale]
est un placeholder qui doit rester littéralement dans la configuration, car il est remplacé par la locale réelle lors de l'exécution du CLI.
Traduire l'ensemble
npx lingo.dev@latest i18n
Traite automatiquement les structures imbriquées, extrait les commentaires comme indices de traduction et met à jour uniquement le contenu modifié.
Indices de traduction basés sur les commentaires
L'avantage principal du JSONC est l'utilisation des commentaires pour fournir un contexte de traduction :
{
// Ce commentaire fournit du contexte pour la salutation
"greeting": "Hello, world!",
"button": "Click me" /* Ceci explique l'objectif du bouton */,
/*
* Commentaire multi-lignes pour un contexte complexe
* expliquant les nuances culturelles
*/
"welcome": "Welcome to our app"
}
Les commentaires sont automatiquement extraits comme indices pour améliorer la qualité de traduction et fournir du contexte aux traducteurs IA.
Préservation intelligente de la structure
Maintient les hiérarchies complexes et prend en charge les virgules finales :
{
"nav": {
"home": "Home", // Élément de navigation
"about": {
"team": "Our Team" // Navigation imbriquée
},
},
"items": {
"one": "{{count}} item",
"other": "{{count}} items", // Support de pluralisation
},
}
Configuration avancée
Exclure des fichiers
"jsonc": {
"include": ["locales/[locale]/*.jsonc"],
"exclude": ["locales/[locale]/config.jsonc"]
}
Verrouiller les clés techniques
"jsonc": {
"lockedKeys": ["app/version", "settings/apiKey"]
}
Utilisez la barre oblique (/
) pour les chemins de clés imbriqués ou l'astérisque (*
) pour correspondre à plusieurs chemins de clés.