Générateur de pluriels ICU pour fichiers ARB Flutter

Choisissez vos langues : l'outil affiche les catégories de pluriel que chacune exige, avec des nombres d'exemple, et génère le message ICU prêt à coller dans vos fichiers ARB. Tout se passe dans votre navigateur ; l'outil est gratuit et sans compte.

Générer un message plural

Langues

Vérifiez ensuite que chaque traduction garde son placeholder

LocalePilot est une application desktop qui ouvre tous vos fichiers ARB, compare les placeholders ICU de chaque traduction à ceux de la source, signale les clés manquantes et exporte avec sauvegarde. En finalisation pour macOS : laissez votre email pour être prévenu du lancement.

Pourquoi un pluriel change d'une langue à l'autre

Les catégories zero, one, two, few, many et other suivent les règles CLDR de chaque langue. En anglais, one ne désigne que 1 ; en français, il couvre 0 et 1 ; en russe ou en polonais, few et many s'ajoutent ; l'arabe en utilise six ; le japonais n'en a qu'une seule, other. Un message écrit pour l'anglais avec deux branches est donc incomplet dès qu'on le traduit.

L'outil lit ces règles dans votre navigateur (Intl.PluralRules) : les catégories et les nombres d'exemple affichés sont ceux de la langue, sans table à maintenir.

Le piège de =1 avec gen-l10n

Une branche =1 devient la catégorie one dans le code généré par flutter gen-l10n. En français, cette catégorie s'applique aussi à zéro : avec count = 0, « 1 article restant » s'afficherait. Préférez la catégorie one avec le nombre dans le texte, ou ajoutez une branche =0 : l'outil le propose en une case à cocher. Les détails sont dans le guide sur les pluriels et placeholders ICU.

Comment utiliser le résultat

  1. Copiez la ligne "clé": "{count, plural, …}" de chaque langue dans le fichier app_xx.arb correspondant.
  2. Ajoutez les métadonnées @clé une seule fois, dans le fichier modèle.
  3. Lancez flutter gen-l10n : une branche other manquante ou une accolade non fermée arrête la génération avec le nom du fichier.

Pour vérifier ensuite qu'aucune traduction n'a perdu ou renommé son placeholder, utilisez le vérificateur de clés manquantes ARB.

Limites de l'outil

L'outil génère la structure ; c'est vous qui écrivez le texte de chaque forme. Il ne gère pas les messages select ni les pluriels imbriqués, et ne double pas les apostrophes si vous avez activé use-escaping dans l10n.yaml.

Questions fréquentes

Quelles catégories de pluriel faut-il écrire pour le français ?

En pratique one (0 et 1) et other. La catégorie many du français ne concerne que les millions : l'outil la marque comme facultative.

Pourquoi la branche other est-elle obligatoire ?

flutter gen-l10n refuse un pluriel sans branche other et arrête la génération en indiquant le fichier concerné. L'outil l'ajoute toujours.

Que vaut =1 face à one ?

Dans le code généré, =1 devient la catégorie one, qui couvre aussi 0 en français. Mettez le nombre dans la branche one ou ajoutez =0.

Mes textes sont-ils envoyés à un serveur ?

Non. Les messages sont assemblés dans la page à partir des règles de pluriel de votre navigateur ; rien n'est transmis.

Le résultat fonctionne-t-il pour une langue absente de la liste ?

Oui : saisissez son code (par exemple cs ou sv) dans le champ libre. L'outil accepte tout code que reconnaît le navigateur.

Quelle différence avec LocalePilot ?

Cet outil écrit un message plural. LocalePilot est une application desktop, en finalisation pour macOS, qui ouvre tous vos ARB et contrôle les placeholders ICU de chaque traduction avant l'export.

Être prévenu du lancement

LocalePilot est en finalisation. Laissez votre e-mail pour être prévenu du lancement.

  • macOS 12 ou ultérieur · Ollama ou LM Studio en option
  • Interface de l'app en anglais, français, espagnol, italien et portugais.