Traduire

Traduire les fichiers ARB de Flutter

Un fichier .arb est un JSON avec des messages ICU et un bloc de métadonnées @key à côté de chaque chaîne. KAERIS traduit les messages, conserve les métadonnées et vérifie la syntaxe ICU ensuite.

KAERIS a traduit cette page et vérifié chaque ligne en la retraduisant. Un locuteur natif ne l'a pas encore revue. Original anglais

Comment un fichier ARB est construit

JSON brut. Chaque message se trouve à côté d'une entrée @message avec sa description et les types de placeholders ; @@locale nomme la langue. Les pluriels et les sélections sont des chaînes ICU : {count, plural, =0{…} one{…} other{…}}.

Fichier sourceapp_en.arb
{
  "@@locale": "en",
  "welcome": "Welcome back, {name}!",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": { "name": { "type": "String" } }
  },
  "itemCount": "{count, plural, =0{No items} one{{count} item} other{{count} items}}",
  "@itemCount": {
    "placeholders": { "count": { "type": "int" } }
  }
}

Ce qu'il faut surveiller dans les traductions ARB

Une vraie exécution : traduite en allemand et vérifiée

Une vraie exécution, le 27 octobre 2026, rien édité à la main : kaeris translate app_en.arb --langs de avec kaeris 0.2.35, 2,7 secondes, modèle google/gemini-2.5-flash-lite, le défaut du niveau gratuit. Ci-dessous, le fichier allemand qu'il a écrit et ce que kaeris check en dit.

Résultat allemandapp_de.arb
{
  "@@locale": "de",
  "welcome": "Willkommen zurück, {name}!",
  "itemCount": "{count, plural, =0{Keine Artikel} one{{count} Artikel} other{{count} Artikel}}",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": {
      "name": {
        "type": "String"
      }
    }
  },
  "@itemCount": {
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  }
}
kaeris checkexit code 0
$ kaeris check --source app_en.arb --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

Ce que KAERIS en fait

Exécutez-le en trois étapes

  1. Installer le CLI

    Exécutez pip install kaeris.

  2. Traduire le modèle

    Exécutez kaeris translate lib/l10n/app_en.arb --langs de,ja.

  3. Vérifier le résultat

    Exécutez kaeris check avec la source et --pattern 'app_{lang}.arb' ; il se termine avec le code 1 en cas de variable ou de bloc ICU incorrect.

pip install kaeris
kaeris init --preset flutter-arb
kaeris translate lib/l10n/app_en.arb --langs de,ja --verify
kaeris check --source lib/l10n/app_en.arb --langs de,ja --pattern 'app_{lang}.arb'

Questions

Les entrées @metadata sont-elles conservées ?

Oui. Les descriptions et les types de placeholders restent à côté de chaque message ; @@locale est réécrit pour la langue cible.

Que se passe-t-il si le pluriel ICU est incorrect dans une traduction ?

La vérification compare les blocs ICU avec la source et nomme le problème, par exemple une branche =0 perdue. Dans l'exécution réelle ci-dessus, le pluriel est revenu avec les trois branches et la vérification n'a rien eu à signaler.

Est-ce gratuit ?

Oui, sans compte : 10 000 caractères par fichier et jusqu'à 8 langues par exécution. Une clé API gratuite augmente la limite de fichiers à 50 000 caractères. La licence à vie est de 79 $ une fois, sur votre propre clé OpenRouter ; les plans mensuels commencent à 19 $. Tarifs

Puis-je l'exécuter depuis le terminal ou en CI ?

Oui. pip install kaeris, puis kaeris translate lib/l10n/app_en.arb --langs de,ja. Voir aussi Flutter. Le GitHub Action exécute la même traduction dans une pull request. Docs CLI · GitHub Action

Continuer

Référence CLI · Référence Check · Traduire dans le navigateur · Vérification gratuite · Convertir les formats · Localisation fictive

Autres formats : JSON · YAML · .po · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML