ManuceTraduire un fichierTraduire une application Flutter en chinois simplifié

Traduire une application Flutter en chinois simplifié

Déposez le fichier .arb source de votre application Flutter : Manuce traduit les valeurs en chinois simplifié et vous rend le même fichier, prêt à enregistrer sous app_zh.arb. Les placeholders et les messages ICU sont vérifiés, @@locale passe à zh, et un rapport liste chaque chaîne laissée telle quelle avec sa raison.

Déposer mon fichier Voir les tarifs

Combien ça coûte

Pour les fichiers de langue d'une application Flutter totalisant environ 2 000 mots, vers le chinois :

Essentiel
19 €

Comprendre, usage interne.

Professionnel
58 €

Prêt à transmettre, par le spécialiste technique.

Premium
112 €

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.

Ce qui change dans un .arb quand la cible est le chinois

Une application Flutter localisée avec flutter gen-l10n range ses textes dans des fichiers .arb : app_fr.arb en source, app_zh.arb en cible. Le passage au chinois simplifié modifie des choses qu'une langue européenne ne touche pas.

  • La ponctuation passe en pleine chasse. "Bonjour, {name} !" devient "你好,{name}!" : virgule et point d'exclamation chinois, sans espace avant. Les deux-points deviennent :, le point final 。.
  • Il n'y a pas d'espaces entre les mots. "{count} fichiers sélectionnés" devient "已选择 {count} 个文件" : l'ordre change et un classificateur, 个, s'intercale entre le nombre et le nom.
  • Un seul cas de pluriel. Les règles CLDR du chinois ne connaissent que la catégorie other ; le nom ne varie pas avec le nombre.

Le texte compte deux à trois fois moins de caractères, mais chaque idéogramme est plus large qu'une lettre latine : la place occupée à l'écran varie peu. Un bouton trop étroit en français le restera souvent en chinois, et un libellé très court peut au contraire sembler perdu dans un bouton dimensionné pour la source.

Pluriels, select et classificateurs

Un message ICU français comme {count, plural, =0{Aucun message} =1{Un message} other{{count} messages}} se rend en chinois par {count, plural, =0{没有消息} other{{count} 条消息}}. Manuce vérifie la structure du message et s'assure que la catégorie other, la seule du chinois, est présente : c'est elle que flutter gen-l10n exige pour compiler. Les cas exacts comme =0 restent possibles quand une formulation dédiée est plus naturelle.

Le vrai piège du chinois est ailleurs : le classificateur dépend de l'objet compté. On écrit 条消息 pour des messages, 张照片 pour des photos, 个文件 pour des fichiers, 位联系人 pour des contacts. Une clé nommée itemCount sans description ne dit pas ce que l'on compte ; la description de la clé @itemCount est alors décisive.

Pour les messages select sur le genre, l'écrit chinois distingue 他 et 她, même si la prononciation est identique. La branche other reçoit une forme neutre adaptée au contexte, par exemple 对方 (« l'autre personne ») dans une messagerie.

Ce que Manuce rend, et ce qu'il ne fait pas

  • Le même fichier, dans le même format : indentation, ordre des clés, guillemets, fins de ligne, encodage et BOM conservés. Seules les valeurs changent.
  • Les clés @ (métadonnées) ne sont pas traduites ; leurs descriptions servent de contexte au traducteur. @@locale passe à la langue cible.
  • Chaque valeur traduite est comparée à la source : si un placeholder comme {count} ou {name} manque ou change malgré les reprises, la valeur source est gardée et le rapport le signale.
  • Ne sont pas traduits : clés, valeurs vides, URL, adresses email, nombres, couleurs, formats de date, identifiants, et tout ce que vous marquez comme non traduisible.
  • Le prix porte sur les mots des valeurs, clés et balises exclues ; le chinois applique un coefficient ×1.6 sur le prix au mot.

Manuce ne modifie ni votre pubspec.yaml, ni vos supportedLocales, ni vos polices, et ne teste pas l'affichage sur un appareil. Le chinois traditionnel (Taïwan, Hong Kong) est une langue distincte : il fait l'objet d'un second fichier, et la remise multilingue s'applique dès deux langues. Enfin, Manuce ne produit pas de traduction assermentée : si vos conditions d'utilisation doivent être certifiées, il faudra passer par un traducteur expert.

Préparer le fichier source avant l'envoi

  • Décrivez les clés ambiguës. "@send": {"description": "Bouton : envoyer un message"} oriente vers 发送 plutôt que vers un verbe d'envoi postal. Pour un libellé d'une ou deux lettres comme « OK » ou « Lu », la description fait toute la différence.
  • Supprimez les concaténations côté Dart. Un code du type 'Bonjour ' + name casse en chinois, où l'ordre des éléments change. Passez par un placeholder dans le .arb : "greeting": "Bonjour, {name}".
  • Signalez les noms de marque et les termes à laisser en caractères latins, pour qu'ils soient marqués non traduisibles.
  • Laissez les dates à intl. Les formats de date ne sont pas traduits : avec la locale zh, DateFormat.yMMMd produit déjà 2024年5月3日. N'écrivez pas « 3 mai » en dur dans une valeur.
  • Enregistrez le fichier en UTF-8, l'encodage qu'attend Flutter pour les .arb ; il sera conservé tel quel.

Vérifications après livraison

  1. Enregistrez le fichier rendu sous app_zh.arb dans votre dossier de traductions, contrôlez que @@locale vaut bien zh, puis relancez flutter gen-l10n.
  2. Ajoutez Locale('zh') aux langues prises en charge et, pour iOS, déclarez zh dans les localisations du fichier Info.plist.
  3. Polices : une police latine embarquée via pubspec.yaml n'a pas les caractères chinois ; Flutter se rabat alors sur la police système. Vérifiez le rendu, et si vous embarquez une police chinoise, tenez compte de son poids.
  4. Formes des caractères : sans locale précise, certains idéogrammes peuvent s'afficher avec leurs variantes japonaises. Indiquer Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hans') évite cette confusion.
  5. Mise en page : le chinois peut se couper entre deux caractères quelconques ; contrôlez les maxLines, les ellipses et la hauteur de ligne, les idéogrammes étant plus hauts que les minuscules latines.
  6. Lisez le rapport : chaque chaîne laissée en source y figure avec sa raison.

En pratique

  1. Déposez votre fichier .arb source : le devis s'affiche aussitôt, calculé sur les mots des valeurs.
  2. Choisissez le chinois simplifié et le niveau, puis lisez l'extrait gratuit d'un paragraphe.
  3. Payez et récupérez en quelques minutes le fichier traduit et son rapport dans votre espace client.
  4. Enregistrez-le sous app_zh.arb, relancez flutter gen-l10n et vérifiez polices et mise en page sur appareil.

Questions fréquentes

Faut-il commander le chinois simplifié ou le traditionnel ?

Le simplifié vise la Chine continentale et Singapour, le traditionnel Taïwan et Hong Kong. Chez Manuce ce sont deux langues distinctes : chacune donne un fichier .arb séparé. Si vous visez les deux publics, commandez les deux langues, la remise s'applique dès deux langues.

Mes messages ICU plural compileront-ils avec flutter gen-l10n ?

Les messages ICU plural et select sont vérifiés, et la catégorie other, seule catégorie du chinois, est présente. Si un placeholder ne peut pas être conservé à l'identique, la valeur source est gardée et le rapport l'indique, ce qui évite un fichier qui ne compile pas.

Les caractères chinois s'afficheront-ils avec ma police actuelle ?

Pas si votre application embarque une police uniquement latine : les idéogrammes passeront par la police système de l'appareil. Manuce ne touche pas à vos polices ; vérifiez le rendu après intégration et précisez la locale zh avec le script Hans pour éviter des formes japonaises.

Les clés et les placeholders sont-ils comptés dans le prix ?

Non. Le prix porte sur les mots des valeurs, clés et balises exclues. Les métadonnées @ ne sont pas traduites, et le coefficient ×1.6 du chinois s'applique au prix au mot.

Comment savoir quelles chaînes n'ont pas été traduites ?

Le rapport livré avec le fichier liste les chaînes traduites et celles laissées telles quelles, avec la raison : URL, identifiant, valeur vide, élément marqué non traduisible ou écart persistant sur une variable.

Le spécialiste qui s’en charge

Ce sujet est confié à Dédale, le spécialiste technique. Voir comment il travaille.

Testez sur votre fichier, gratuitement

Un extrait de votre fichier traduit au niveau choisi, avant tout paiement. Vous jugez, puis vous décidez.

Déposer mon fichier