Lingo.dev + .json5 (JSON5)
Lingo.dev CLI traduit les fichiers de localisation JSON5 avec une prise en charge complète de la syntaxe JSON5, y compris les commentaires, les clés non citées, les virgules finales et les guillemets simples. Le CLI préserve le formatage JSON5 et la syntaxe conviviale pour les développeurs tout en maintenant la compatibilité avec les frameworks et en ne traitant que le contenu modifié pour une efficacité des coûts.
Configuration rapide
Créez un fichier de configuration i18n.json
:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json5": {
"include": ["locales/[locale].json5"]
}
}
}
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.
Tout traduire
npx lingo.dev@latest i18n
Traite automatiquement les fonctionnalités de syntaxe JSON5, préserve les commentaires et le formatage, et met à jour uniquement le contenu modifié.
Prise en charge de la syntaxe JSON5
JSON5 étend JSON avec une syntaxe conviviale pour les développeurs :
{
// Les commentaires sont pris en charge
title: "Hello, world!", // Les commentaires de ligne fonctionnent
description: 'Les guillemets simples sont autorisés',
unquoted: 'les clés fonctionnent sans guillemets',
trailing: 'la virgule finale est acceptable',
/* Les commentaires en bloc
sont également pris en charge */
multiline: "Ceci est une \
chaîne longue qui \
s'étend sur plusieurs lignes",
// Nombres hexadécimaux
hex_value: 0xDEADBEEF,
positive: +123,
nested: {
key: 'value',
}, // Virgule finale autorisée
}
Préservation intelligente de la structure
Maintient la syntaxe JSON5 et les conventions des frameworks :
{
nav: {
home: "Accueil",
about: {
team: "Notre équipe"
}
},
items: {
one: "{{count}} élément",
other: "{{count}} éléments"
},
// La configuration reste intacte
version: 0x010203
}
Configuration avancée
Exclure des fichiers
"json5": {
"include": ["locales/[locale]/*.json5"],
"exclude": ["locales/[locale]/config.json5"]
}
Verrouiller les clés techniques
"json5": {
"lockedKeys": ["app/version", "settings/apiKey"]
}
Utilisez la barre oblique (/
) pour les chemins de clés imbriqués ou l'astérisque (*
) pour faire correspondre plusieurs chemins de clés.
JSON5 vs JSON
JSON5 offre une expérience développeur améliorée tout en maintenant une compatibilité totale avec JSON :
- Commentaires : Documentez vos traductions avec des commentaires en ligne et en bloc
- Clés non citées : Syntaxe plus propre sans guillemets autour des noms de propriétés
- Virgules finales : Facilite l'édition et les différences de contrôle de version
- Guillemets simples : Flexibilité dans la citation des chaînes
- Chaînes multiligne : Meilleure lisibilité pour les textes longs
- Formats numériques : Hexadécimal, signes positifs, et plus encore
Tous les fichiers JSON sont valides en JSON5, rendant la migration transparente.