Traduire une application Flutter en anglais
Déposez le fichier .arb de votre application Flutter : Manuce traduit les valeurs en anglais et vous rend le même fichier, prêt à placer à côté de votre modèle. Les placeholders et les messages ICU sont vérifiés, et les catégories de pluriel de l'anglais sont ajoutées si elles manquent. Un rapport indique chaque chaîne laissée telle quelle et pourquoi.
Combien ça coûte
Pour les fichiers de langue d'une application Flutter totalisant environ 2 000 mots, vers l’anglais :
Comprendre, usage interne.
Prêt à transmettre, par le spécialiste technique.
Relecture croisée. Pour ce qui engage.
Prix pour une langue, mise en page d'origine comprise. TVA non applicable, article 293 B du CGI. Le devis exact, calculé sur le nombre de mots de votre fichier, s'affiche avant paiement.
Du fichier app_fr.arb au fichier app_en.arb
Une application Flutter internationalisée avec flutter gen-l10n garde ses textes dans des fichiers .arb, un par langue. app_fr.arb sert souvent de modèle, et l'anglais attend un app_en.arb de même structure. C'est ce fichier que Manuce produit à partir du vôtre.
Dans un .arb, seules les valeurs se traduisent. Par exemple :
"@@locale": "fr"devient"@@locale": "en"."cartTitle": "Votre panier"devient"cartTitle": "Your basket"(cart en anglais américain) ; la clé ne bouge pas."@cartTitle": {"description": "Titre de l'écran panier"}n'est pas traduit : c'est une métadonnée. Sa description sert en revanche de contexte, ce qui aide à choisir entre Save et Record pour « Enregistrer », ou entre Confirm et Submit pour « Valider ».
Les placeholders restent identiques, mais leur place change avec la syntaxe anglaise : "{userName} a partagé {count} photos avec vous" devient "{userName} shared {count} photos with you". Un placeholder renommé ou oublié ferait échouer la génération du code Dart ; c'est pourquoi chaque valeur traduite est comparée à la source, variables et balises comprises.
Ce qui change en anglais : pluriels, typographie, variante
Les pluriels. L'anglais a deux catégories CLDR, one et other, comme le français, mais elles ne couvrent pas les mêmes nombres : en français, 0 relève de one (« 0 article ») ; en anglais, il relève de other (« 0 items »). Le message {count, plural, one{{count} article} other{{count} articles}} devient {count, plural, one{{count} item} other{{count} items}}, et le zéro s'affiche correctement sans rien ajouter. Une branche explicite =0{Aucun article} est conservée et traduite (No items). Manuce vérifie les messages ICU plural et select et ajoute les catégories de l'anglais lorsqu'elles manquent.
Les messages select. Les clés de branche (male, female, other) restent en l'état ; seul le texte de chaque branche est traduit. L'anglais accorde peu les adjectifs et participes : « Il est connecté » et « Elle est connectée » peuvent donner deux branches presque identiques, ce qui est normal.
La typographie. Les espaces avant les deux-points et les points d'interrogation disparaissent : "Supprimer ce fichier ?" devient "Delete this file?". Les guillemets « » deviennent “ ” ou ‘ ’. Si votre l10n.yaml active use-escaping, l'apostrophe simple sert de caractère d'échappement : les contractions comme don't ou you've sont à contrôler après génération.
La variante. Choisissez entre anglais britannique et américain : colour/color, cancelled/canceled, postcode/ZIP code. Les formats de date déclarés dans les placeholders ("format": "yMd") ne sont pas traduits : c'est la locale qui fixe l'ordre. Avec en, yMd met le mois en premier ; pour le jour en premier, il faut la locale en_GB.
La longueur. Le texte anglais est en général 10 à 15 % plus court que le français : les boutons dimensionnés pour le français débordent rarement. Fixez en revanche une convention de casse pour les libellés (Save changes ou Save Changes) et tenez-vous-y.
Ce que Manuce rend, et ce qu'il ne fait pas
Vous recevez le même fichier .arb, dans le même format, prêt à remettre dans le dossier déclaré par votre configuration (souvent lib/l10n) : indentation, ordre des clés, guillemets, commentaires, fins de ligne, encodage et BOM conservés. Seules les valeurs changent, si bien que le diff dans votre outil de versionnement se lit ligne à ligne.
Le rapport joint liste les chaînes traduites et celles laissées telles quelles, avec la raison. Ne sont pas traduits : les clés, les valeurs vides, les URL, les adresses email, les nombres, les couleurs (#1E88E5), les formats de date, les identifiants et tout ce qui est marqué non traduisible. Si une valeur traduite perd un placeholder ou une balise de façon persistante, la valeur source est gardée et le rapport le dit : vous savez exactement quelle chaîne reprendre.
Limites à connaître :
- seul le contenu du fichier déposé est traduit ; les chaînes écrites en dur dans le code Dart, hors des .arb, ne le sont pas ;
- les images et captures d'écran de l'application ne sont pas traitées ;
- Manuce ne produit pas de traduction assermentée, au cas où un texte juridique de l'application en exigerait une.
Le prix porte uniquement sur les mots des valeurs, clés et balises exclues, et l'anglais est au tarif de base (coefficient ×1).
Préparer le fichier et vérifier après livraison
Avant l'envoi :
- Ajoutez une
descriptionaux clés ambiguës :"@validate": {"description": "Bouton final du formulaire de paiement"}oriente vers Pay now ou Confirm plutôt que Validate. - Déposez le fichier modèle complet, pas un fichier anglais à moitié rempli.
- Vérifiez que les pluriels sont écrits en ICU dans le .arb et non construits dans le Dart (
count > 1 ? 'articles' : 'article') : ces chaînes-là échappent au fichier. - Repérez les noms de marque ou de fonctionnalité à ne pas traduire et signalez-les comme non traduisibles.
Après livraison :
- Placez
app_en.arbà côté du modèle et lancezflutter gen-l10n: une erreur de syntaxe ICU apparaîtrait à cette étape. - Pour iOS, vérifiez que l'anglais figure dans les langues déclarées de
Info.plist(CFBundleLocalizations). - Testez chaque message pluriel avec 0, 1 et 2, et affichez une date pour contrôler l'ordre jour/mois.
- Lisez le rapport et reprenez les chaînes laissées en français.
En pratique
- Déposez votre fichier .arb modèle (par exemple app_fr.arb) : le devis s'affiche aussitôt, calculé sur les mots des valeurs.
- Lisez l'extrait gratuit au niveau choisi, puis payez pour lancer la traduction.
- Récupérez app_en.arb et le rapport dans votre espace client.
- Placez le fichier dans le projet, lancez flutter gen-l10n et testez pluriels et dates.
Questions fréquentes
Les clés @ et leurs descriptions sont-elles traduites ?
Non. Les clés @ sont des métadonnées et sont ignorées ; leurs descriptions servent seulement de contexte pour choisir le bon terme. Seul @@locale change, de fr à en.
Mes placeholders {count} ou {userName} risquent-ils d'être modifiés ?
Chaque valeur traduite est comparée à la source, variables et balises comprises. Si un écart persiste, la valeur française est conservée et le rapport l'indique, pour que la génération du code Dart ne soit pas cassée.
Anglais britannique ou américain : comment gérer les deux ?
Les différences portent surtout sur l'orthographe (colour/color) et l'ordre des dates, qui dépend de la locale (en ou en_GB). Relisez les mots concernés selon le marché visé. Si vous visez les deux, Flutter accepte un app_en.arb général et un app_en_GB.arb limité aux chaînes qui diffèrent.
Que deviennent mes messages pluriels quand le français n'a pas de branche pour zéro ?
En anglais, 0 relève de la catégorie other : « 0 items » s'affiche correctement sans branche spéciale. Les messages ICU sont vérifiés et les catégories one et other ajoutées si elles manquent.
Puis-je traduire le même fichier vers plusieurs langues ?
Oui, et une remise s'applique à toute la commande dès deux langues : −20 % pour 2, −30 % pour 3, −40 % pour 4, −50 % à partir de 5. Vous obtenez un fichier .arb par langue, chacun avec son @@locale.
Le spécialiste qui s’en charge
Ce sujet est confié à Dédale, le spécialiste technique. Voir comment il travaille.
Le même fichier, vers une autre langue
Vers l’anglais, d’autres fichiers
À lire aussi
Testez sur votre fichier, gratuitement
Un extrait de votre fichier traduit au niveau choisi, avant tout paiement. Vous jugez, puis vous décidez.