
Traduisez vos fichiers ARB Flutter en quelques secondes
Métadonnées intactes. Espaces réservés préservés. Formes de pluriel correctes selon CLDR. Vos fichiers ARB traduits sans casser flutter gen-l10n.
La traduction ARB casse les builds Flutter
Les fichiers ARB ressemblent à du JSON, mais n'en sont pas. Ils contiennent des entrées de métadonnées préfixées par @, des définitions d'espaces réservés avec annotations de type, et des formes de pluriel ICU qui doivent suivre exactement les règles CLDR. Les outils de traduction génériques corrompent tout cela, et flutter gen-l10n échoue silencieusement ou renvoie des erreurs cryptiques.
Les entrées de métadonnées préfixées par @ sont traduites ou supprimées, ce qui casse les définitions d'espaces réservés et les descriptions
Les noms d'espaces réservés entre accolades sont traduits, renommés ou supprimés, ce qui provoque des plantages à l'exécution
Les formes de pluriel ICU nécessitent les catégories CLDR exactes pour chaque langue, mais les outils génériques les ignorent ou génèrent des structures invalides
L'en-tête @@locale est corrompu ou mal associé, ce qui amène flutter gen-l10n à attribuer les traductions à la mauvaise langue
{
"@@locale": "en",
"appTitle": "My Flutter App",
"@appTitle": {
"description": "The title of the application"
},
"greeting": "Hello, {name}!",
"@greeting": {
"description": "A greeting with the user's name",
"placeholders": {
"name": {
"type": "String",
"example": "John"
}
}
},
"itemCount": "{count, plural, =0{No items} =1{1 item} other{{count} items}}",
"@itemCount": {
"description": "Number of items in the cart",
"placeholders": {
"count": {
"type": "int"
}
}
},
"lastLogin": "Last login: {date}",
"@lastLogin": {
"placeholders": {
"date": {
"type": "DateTime",
"format": "yMMMd"
}
}
}
}{
"@@locale": "de",
"appTitle": "Meine Flutter-App",
"@appTitle": {
"description": "The title of the application"
},
"greeting": "Hallo, {name}!",
"@greeting": {
"description": "A greeting with the user's name",
"placeholders": {
"name": {
"type": "String",
"example": "John"
}
}
},
"itemCount": "{count, plural, =0{Keine Artikel} =1{1 Artikel} other{{count} Artikel}}",
"@itemCount": {
"description": "Number of items in the cart",
"placeholders": {
"count": {
"type": "int"
}
}
},
"lastLogin": "Letzte Anmeldung: {date}",
"@lastLogin": {
"placeholders": {
"date": {
"type": "DateTime",
"format": "yMMMd"
}
}
}
}Ce que i18n Agent préserve
Entrées de métadonnées @
Toutes les métadonnées préfixées par @, à savoir les descriptions, les espaces réservés et les annotations de type, sont préservées exactement telles que définies
Sécurité des espaces réservés
Les espaces réservés nommés comme {userName}, {count} et {price} sont détectés et laissés intacts dans toutes les traductions
Formes de pluriel CLDR
Les catégories de pluriel ICU (zero, one, two, few, many, other) sont générées correctement pour chaque langue cible, selon les règles CLDR
Structure JSON
L'ordre des clés, l'imbrication et la mise en forme spécifique à ARB correspondent à votre fichier source pour des diffs propres
Compatible avec votre pile Flutter
Fonctionnement

Aucun copier-coller manuel. Aucune extraction de chaînes. Juste des fichiers traduits.
Essayez i18n Agent maintenant
Déposez votre fichier de traduction ici
JSON, YAML, PO, XML, CSV, Markdown, Properties
ou cliquez pour parcourir
Langues cibles
Questions fréquentes
Développeur ?
Installez l'outil CLI et traduisez votre premier fichier en 2 minutes.
Installer l'outil CLIUne équipe en entreprise ?
Encore sous contrat avec un TMS ? Parlons de votre migration.