ManuceTraduire un fichierTraduire une application Symfony en chinois simplifié

Traduire une application Symfony en chinois simplifié

Déposez vos fichiers de traduction Symfony (XLIFF ou YAML) : Manuce traduit les valeurs en chinois simplifié et laisse les clés, les paramètres <code>%name%</code> et <code>{name}</code> et la structure tels quels. Vous recevez le même fichier, prêt à remettre dans <code>translations/</code>, avec un rapport des chaînes traduites et de celles laissées en l'état.

Déposer mon fichier Voir les tarifs

Combien ça coûte

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

Essentiel
28 €

Comprendre, usage interne.

Professionnel
87 €

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

Premium
168 €

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.

Nommer la locale chinoise dans Symfony

Symfony lit la locale dans le nom du fichier : messages.zh_CN.xlf, messages.zh.yaml ou messages.zh_Hans.xlf, selon la valeur que portent vos routes, votre paramètre _locale et votre configuration du traducteur. Si une requête arrive en zh_CN et qu'il n'existe qu'un fichier zh, Symfony y retombe, puis sur vos locales de repli. Choisissez une convention et tenez-la partout, y compris dans les préfixes d'URL (/zh/ ou /zh-cn/).

Le chinois traditionnel (zh_TW, zh_HK) n'est pas une variante qu'on déduit du simplifié : c'est une autre écriture et, chez Manuce, une autre langue. Un fichier nommé simplement zh peut, selon vos replis, être servi à un visiteur taïwanais : nommer le fichier zh_CN ou zh_Hans évite cette confusion.

Les domaines livrés par les composants Symfony, comme les messages de contraintes de Validator ou ceux de Security, existent déjà en chinois simplifié. Ne traduisez que vos propres domaines : messages, vos messages de contraintes personnalisées, vos courriels.

Le chinois dans vos chaînes : pluriels, ponctuation, ordre des mots

Pluriel. Le chinois n'a qu'une catégorie CLDR, other : « 3 件商品 » comme « 1 件商品 ». Deux cas à surveiller dans Symfony :

  • Format ICU (messages+intl-icu.zh_CN.xlf) : dans {count, plural, one {…} other {# 件商品}}, la branche one n'est jamais choisie en chinois ; c'est other qui doit être complète. Les cas explicites comme =0 restent utilisés.
  • Ancienne syntaxe à barre verticale : avec la forme courte Un article|%count% articles, Symfony ne retient pour le chinois que le premier segment. Traduit littéralement, « 一件商品 » s'afficherait pour cinq articles. Passez à la forme à intervalles {0}…|{1}…|]1,Inf[… ou au format ICU avant l'envoi.

Ponctuation pleine chasse. « Adresse e-mail : » devient 电子邮箱:, sans espace. Si le deux-points est écrit dans le gabarit Twig après {{ label|trans }}, il restera latin et précédé d'une espace : déplacez-le dans la valeur.

Ordre des mots. Une phrase assemblée en Twig à partir de trois fragments (« Vous avez », %count%, « messages ») ne se remet pas dans l'ordre chinois. Une chaîne entière avec paramètre, Vous avez %count% messages, devient 您有 %count% 条消息.

Registre. Pour une interface destinée à des clients, le vouvoiement 您 est d'usage ; 你 convient à un public jeune ou à un ton familier. Vérifiez-le sur l'extrait gratuit.

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

  • Les fichiers .xlf et .yaml sont pris en charge. Le fichier rendu est le même : indentation, ordre des clés, guillemets, commentaires, fins de ligne, encodage et BOM conservés ; seules les valeurs changent.
  • Chaque valeur traduite est comparée à la source : paramètres %name% et {name}, balises. En cas d'écart persistant, la valeur source est gardée et le rapport le signale.
  • Ne sont pas traduits : les clés, les valeurs vides, les URL, les adresses email, les nombres, les couleurs, les formats de date, les identifiants et tout ce que vous marquez non traduisible.
  • Le prix porte sur les mots des valeurs, clés et balises exclues ; le chinois est une langue à supplément (coefficient ×1,6).

Manuce ne modifie ni vos gabarits Twig, ni votre CSS, ni votre configuration, et ne convertit pas une syntaxe de pluriel en une autre. Les textes écrits en dur dans un contrôleur ou un gabarit ne sont pas vus : seuls les fichiers déposés sont traduits. Enfin, Manuce ne produit pas de traduction assermentée ; pour des conditions générales destinées à une procédure officielle en Chine, adressez-vous à un traducteur habilité.

Twig, polices et mise en page : ce qui reste de votre côté

  • Police. Une police web latine ne contient pas les hanzi : le navigateur prend alors une police système au hasard. Ajoutez un repli explicite, par exemple font-family: 'Inter', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif;.
  • Attribut de langue. Faites produire lang=zh-CN (ou zh-Hans) sur la balise html à partir de app.request.locale : le navigateur choisit mieux ses glyphes et la césure.
  • Largeur. Le texte compte deux à trois fois moins de caractères, mais chaque caractère est plus large : la place occupée varie peu. Les boutons tiennent en général ; regardez plutôt l'interligne, souvent trop serré pour les hanzi.
  • Styles sans effet. text-transform: uppercase ne fait rien sur du chinois, et l'italique synthétique est peu lisible : prévoyez le gras pour l'emphase.
  • Dates. Les formats de date ne sont pas traduits. Un |date('d/m/Y') restera tel quel ; avec format_date de Twig Intl et la locale zh_CN, vous obtenez 2024年5月3日.

Préparer le fichier et vérifier au retour

  1. Mettez vos fichiers source à jour avec php bin/console translation:extract (anciennement translation:update) pour ne rien oublier.
  2. Convertissez les pluriels à la forme courte, déplacez la ponctuation des gabarits vers les valeurs et remplacez les phrases assemblées par des chaînes entières.
  3. Marquez comme non traduisibles les noms de produit ou de marque qui doivent rester en latin.
  4. Demandez l'extrait gratuit pour contrôler le registre et la ponctuation.
  5. Au retour, nommez le fichier selon votre locale (messages.zh_CN.xlf), videz le cache, lancez php bin/console debug:translation zh_CN et lisez le rapport : chaque chaîne laissée en source y est expliquée.

En pratique

  1. Extraire et mettre à jour les fichiers de traduction source de l'application.
  2. Corriger pluriels courts, ponctuation dans Twig et phrases fragmentées.
  3. Déposer le .xlf ou le .yaml, vérifier l'extrait gratuit puis valider le devis.
  4. Nommer le fichier rendu en zh_CN, vider le cache et lancer debug:translation.
  5. Ajouter une police chinoise de repli et vérifier les écrans.

Questions fréquentes

Faut-il nommer le fichier zh, zh_CN ou zh_Hans ?

Les trois fonctionnent si la locale de vos routes correspond. zh_CN ou zh_Hans évitent qu'un visiteur en chinois traditionnel retombe sur le simplifié. L'essentiel est d'utiliser la même valeur partout.

Mes paramètres %count% et {name} peuvent-ils être cassés ?

Chaque valeur traduite est comparée à la source, paramètres et balises compris. Si un écart persiste, la valeur source est conservée et le rapport l'indique, pour que vous la repreniez à la main.

Dois-je faire traduire les messages de validation ?

Les messages des contraintes fournies par Symfony existent déjà en chinois simplifié. Seuls vos messages personnalisés sont à traduire, dans votre propre fichier de domaine.

Et pour Taïwan ou Hong Kong ?

Le chinois traditionnel est une langue distincte chez Manuce, à commander séparément. Vous obtenez alors un second fichier, par exemple messages.zh_TW.xlf. Commander plusieurs langues ensemble ouvre droit à la remise sur toute la commande.

Pourquoi le chinois coûte-t-il plus cher par mot ?

Le chinois est une langue à supplément, avec un coefficient ×1,6 sur le prix au mot. Le compte se fait sur les mots des valeurs source, sans les clés ni les balises.

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