Lingo.dev + .arb (Flutter)
Lingo.dev CLI traduit les fichiers Application Resource Bundle (ARB) de Flutter tout en préservant les métadonnées, les définitions de placeholders et les conventions l10n de Flutter. Le CLI fonctionne parfaitement avec flutter gen-l10n
, maintient les définitions de type de placeholder pour l'autocomplétion de l'IDE, conserve le contexte et la documentation des développeurs, et respecte rigoureusement les normes de spécification ARB.
Configuration rapide
Configuration pour la structure standard des fichiers ARB de Flutter :
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"flutter": {
"include": ["lib/l10n/app_[locale].arb"]
}
}
}
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 les fichiers ARB
npx lingo.dev@latest i18n
Préserve les métadonnées ARB, les définitions de placeholders et le formatage spécifique à Flutter tout en traduisant le contenu.
Fonctionnalités ARB de Flutter
Placeholders avec types
{
"welcomeMessage": "Hello {name}, you have {count} messages",
"@welcomeMessage": {
"description": "Welcome message with user name and count",
"placeholders": {
"name": {
"type": "String"
},
"count": {
"type": "int"
}
}
}
}
Formes plurielles
{
"itemCount": "{count, plural, =0{no items} =1{one item} other{{count} items}}",
"@itemCount": {
"description": "Number of items",
"placeholders": {
"count": {
"type": "int"
}
}
}
}
Préservation des métadonnées
Les métadonnées ARB (entrées @key
) restent non traduites :
- Descriptions : contexte développeur préservé
- Placeholders : définitions de type maintenues
- Exemples : exemples d'utilisation conservés intacts
- Attributs personnalisés : toutes les métadonnées supplémentaires préservées
Configuration avancée
Fichiers ARB multiples
"flutter": {
"include": [
"lib/l10n/app_[locale].arb",
"lib/l10n/errors_[locale].arb"
]
}
Verrouiller les clés de métadonnées
"flutter": {
"include": ["lib/l10n/app_[locale].arb"],
"lockedKeys": ["@@locale", "@@last_modified"]
}