Traduire un fichier PO (gettext) en chinois simplifié
Déposez votre .po ou votre .pot : Manuce rend le même fichier avec des msgstr en chinois simplifié, une seule forme plurielle et l'en-tête Plural-Forms posé. Les variables printf, les msgctxt et les commentaires sont conservés, et un rapport liste ce qui n'a pas été traduit et pourquoi.
Combien ça coûte
Pour un fichier PO (gettext) d'environ 2 500 mots de valeurs, vers le chinois :
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.
Ce qui change dans un .po quand la cible est le chinois
La règle CLDR du chinois ne connaît qu'une catégorie de pluriel, other. Une entrée qui porte msgstr[0] et msgstr[1] dans un fichier anglais ou français n'en garde donc qu'une, msgstr[0], et l'en-tête devient Plural-Forms: nplurals=1; plural=0;. Quand vous déposez un .pot, Manuce le rend en .po pour le chinois avec les lignes Language et Plural-Forms posées, et le nombre de formes msgstr[n] correspond à la langue cible.
Exemple : la paire msgid "%d file" / msgid_plural "%d files" donne une seule chaîne, msgstr[0] "%d 个文件". Le chinois ne marque pas le nombre sur le nom ; il place un classificateur (ici 个) entre le chiffre et le nom. Le msgid_plural reste dans le fichier : c'est lui qui permet à ngettext de fonctionner.
Le contexte pèse plus lourd qu'avec une langue européenne, parce qu'un même mot anglais se rend par des caractères différents selon sa fonction. « Open » sur un bouton se traduit 打开 ; comme état d'un ticket, ce sera plutôt 已打开 ou 开放. Un msgctxt "button" ou un commentaire #. destiné au traducteur est lu et guide la traduction.
Ponctuation, ordre des mots et variables
Le chinois emploie une ponctuation pleine chasse, sans espace avant : , 。 : ? !. « Nom du fichier : » devient 文件名: et « Supprimer %s ? » devient 删除 %s?. En Chine continentale, les guillemets sont “ ” et les titres d'œuvres se mettent entre 《 》. Si votre code ajoute lui-même un deux-points après une chaîne, vous obtiendrez un mélange 文件名: : mieux vaut laisser la ponctuation dans la chaîne.
L'ordre des mots change souvent. « Deleted %d items from %s » se dit naturellement 已从 %2$s 删除 %1$d 个项目 : le lieu passe avant le verbe. Cette inversion n'est possible que si la source utilise des variables positionnelles (%1$d, %2$s) ; avec de simples %d et %s, la phrase chinoise doit garder l'ordre de la source, au prix d'une tournure moins naturelle.
Chaque variable printf (%s, %d, %1$s) est vérifiée dans la traduction. Si une valeur traduite perd ou altère une variable et que l'écart persiste, Manuce garde la valeur source pour cette entrée et le rapport le dit : vous retrouvez la chaîne non traduite plutôt qu'un printf qui plante.
Point d'usage à surveiller : beaucoup d'interfaces chinoises mettent une espace entre un caractère et un chiffre ou un mot latin (%d 个文件, 使用 Google 登录), d'autres non. Vérifiez sur l'extrait que le parti pris vous convient.
Ce que Manuce rend, et ce qu'il ne fait pas
Vous recevez le même fichier, dans le même format, prêt à remettre dans le dossier locale de votre projet :
- indentation, ordre des entrées, guillemets, fins de ligne, encodage et BOM conservés ; seules les valeurs
msgstrchangent ; msgctxt,msgid_pluralet commentaires#.,#:,#,conservés, y compris le drapeauc-format;- non traduits : les
msgid, les valeurs vides, URL, adresses email, nombres, couleurs, formats de date (%Y-%m-%dreste tel quel), identifiants et tout ce qui est marqué non traduisible ; - un rapport : chaînes traduites, chaînes laissées telles quelles et la raison.
Ce que Manuce ne fait pas : il ne compile pas le .mo, ne règle ni les polices ni la mise en page de votre interface, et ne produit pas de version en chinois traditionnel dans la même commande (c'est une langue distincte). Si vous voulez un format de date chinois comme %Y年%m月%d日, c'est un choix à faire dans votre code ou dans une chaîne dédiée. Manuce ne reçoit pas de glossaire : pour un nom de produit à garder en latin, vérifiez l'extrait gratuit puis la traduction. Enfin, Manuce ne fournit pas de traduction assermentée, ce qui n'est de toute façon pas l'usage pour des chaînes d'interface.
Préparer le fichier et vérifier le résultat
- Encodage. L'encodage étant conservé, un .po déclaré en
charset=ISO-8859-1ne peut pas contenir de caractères chinois. Vérifiez que l'en-tête indiqueContent-Type: text/plain; charset=UTF-8et que le fichier est réellement en UTF-8 avant le dépôt. - Variables positionnelles. Pour les phrases à plusieurs variables, passez à
%1$s,%2$sdans la source : la traduction chinoise pourra remettre les éléments dans l'ordre naturel. - Chaînes courtes ambiguës. « Back », « Clear », « Post » : ajoutez un
msgctxtou un commentaire#., sans quoi le moteur choisit le sens le plus courant. - Contrôle technique. Après livraison, lancez
msgfmt -csur le fichier : il contrôle les formatsc-formatet la cohérence avecPlural-Forms, puis compilez. - Affichage. Une police latine n'a pas les caractères chinois : prévoyez une police ou une cascade qui les contient (Noto Sans CJK SC, PingFang SC, Microsoft YaHei). Le texte est deux à trois fois plus court en caractères, mais chaque caractère est plus large, si bien que la place occupée varie peu : testez les boutons à largeur fixe. Sans espaces entre les mots, le retour à la ligne se fait entre caractères, ce qui peut couper un terme de deux caractères en fin de ligne.
En pratique
- Vérifiez que le .po ou le .pot est en UTF-8 et que les chaînes ambiguës ont un msgctxt.
- Déposez le fichier, choisissez le chinois simplifié et lisez le devis et l'extrait gratuit.
- Téléchargez le .po traduit et le rapport des chaînes laissées telles quelles.
- Lancez msgfmt -c, compilez le .mo et testez l'interface avec une police chinoise.
Questions fréquentes
Pourquoi mon fichier chinois n'a-t-il plus qu'un msgstr[0] ?
Le chinois n'a qu'une catégorie de pluriel, other. L'en-tête est donc Plural-Forms: nplurals=1; plural=0; et chaque entrée plurielle n'a qu'une forme. Le msgid_plural est conservé, ngettext continue de fonctionner.
J'ai seulement un fichier .pot, est-ce suffisant ?
Oui. Le .pot revient sous forme de .po pour le chinois, avec les en-têtes Language et Plural-Forms posés et le bon nombre de formes msgstr[n]. Il ne reste qu'à le placer dans votre arborescence de traductions.
Le chinois traditionnel est-il compris ?
Non. Chez Manuce, le chinois traditionnel (Taïwan, Hong Kong) est une langue distincte du simplifié. Vous pouvez commander les deux ensemble : la remise de −20 % s'applique alors à toute la commande dès deux langues.
Pourquoi le chinois est-il plus cher qu'une langue européenne ?
Le chinois est une langue à supplément, avec un coefficient ×1,6 sur le prix au mot. Le calcul porte sur les mots des valeurs de votre fichier, les msgid et les balises étant exclus. Le devis exact s'affiche dès le dépôt.
Mon nom de produit va-t-il être traduit en caractères chinois ?
Ce qui est marqué non traduisible n'est pas traduit, de même que les URL, adresses email et identifiants. Pour un nom de marque écrit dans une phrase, vérifiez l'extrait gratuit, puis la traduction livrée.
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 le chinois, 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.