Traduire un fichier PO (gettext) en italien
Déposez votre fichier .po ou votre modèle .pot : Manuce traduit les msgstr en italien, pose l'en-tête Language et Plural-Forms, garde msgctxt, msgid_plural et commentaires, et vérifie chaque variable printf. Vous récupérez le même fichier, prêt à remettre dans le dépôt, avec un rapport des chaînes traduites et de celles laissées telles quelles.
Combien ça coûte
Pour un fichier PO (gettext) d'environ 2 500 mots de valeurs, vers l’italien :
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 que l'italien change dans un catalogue gettext
L'italien s'écrit en alphabet latin, de gauche à droite, avec une longueur proche du français. Les difficultés d'un fichier PO viennent donc moins de la place que de la grammaire et de la typographie.
- Accents. L'italien distingue l'accent grave et l'aigu :
è(verbe être),perché,più,città. En début de phrase, la majuscule correcte estÈ, pasE'. Le catalogue doit donc être déclaré dans un encodage qui accepte ces caractères ; l'UTF-8 est le choix courant. - Élision et articles. L'article dépend du mot qui suit : il file, lo spazio, l'utente, la cartella. Une chaîne du type
"the %s"qui reçoit un nom à l'exécution ne peut pas être traduite correctement pour tous les cas. - Accord en genre.
"%s deleted"devient %s eliminato ou %s eliminata selon le nom inséré. Sans contexte, un choix doit être fait ; avec unmsgctxtou un commentaire#., il devient sûr. - Registre. Le Lei (forme de politesse) s'applique aux phrases qui s'adressent à l'utilisateur : Inserisca la password. Les libellés courts de boutons restent brefs : Salva, Annulla, Elimina.
Pluriels : msgid_plural et Plural-Forms pour l'italien
Le CLDR définit pour l'italien les catégories one, many et other. Dans gettext, la plupart des projets italiens utilisent l'en-tête Plural-Forms: nplurals=2; plural=(n != 1);, la catégorie many ne concernant que des tournures sur les très grands nombres (un milione di utenti). Manuce produit autant de msgstr[n] que la langue cible en demande et pose l'en-tête correspondant ; vérifiez qu'il correspond à la convention de votre projet si celui-ci en impose une autre.
Exemple :
msgid "%d comment"/msgid_plural "%d comments"msgstr[0] "%d commento"msgstr[1] "%d commenti"
Deux pièges propres à l'italien. D'abord, zéro prend le pluriel : 0 commenti, alors qu'en français on écrit souvent « 0 commentaire ». Ensuite, certains mots sont invariables : 1 file, 3 file, 2 email. Les deux formes peuvent alors être identiques, ce qui est normal et ne doit pas être pris pour un oubli.
Variables, contexte et ordre des mots
Les variables printf (%s, %d, %1$s) sont vérifiées dans chaque valeur traduite : même nombre, même type. L'italien déplace parfois les compléments ; quand deux variables changent d'ordre, la forme positionnelle est nécessaire : "%1$s shared %2$s" peut devenir "%2$s condiviso da %1$s". Si votre source utilise %s %s sans position, l'ordre d'origine est gardé.
Le msgctxt sert à départager les homonymes, fréquents dans une interface : Open peut être un verbe (Apri) ou un état (Aperto, Aperta). Les commentaires extraits (#.) et les références de source (#:) guident aussi la traduction. Les indicateurs #, comme c-format ou python-format sont conservés.
Chaque valeur est comparée à la source (variables, balises). Si un écart persiste, la valeur source est gardée et le rapport l'indique : mieux vaut une chaîne en anglais visible qu'un %d perdu qui fait planter l'affichage.
Ce que vous recevez, et ce que Manuce ne fait pas
- Le même fichier : indentation, ordre des entrées, guillemets, commentaires, fins de ligne, encodage et BOM conservés ; seules les valeurs
msgstrchangent. - Un
.potrevient en.poitalien, avecLanguage: itetPlural-Formsposés. - Ne sont pas traduits : les
msgid, les valeurs vides, URL, adresses email, nombres, couleurs, formats de date, identifiants et tout ce qui est marqué non traduisible. - Un rapport : chaînes traduites, chaînes laissées telles quelles et pourquoi.
Manuce ne compile pas le .mo : vous recevez le .po, la compilation reste dans votre chaîne habituelle. Il ne reçoit ni glossaire ni mémoire de traduction ; pour un nom de produit à garder tel quel, regardez l'extrait gratuit puis la traduction. Il ne produit pas de traduction assermentée. Le prix porte sur les mots des valeurs, au tarif de base pour l'italien (coefficient ×1).
Préparer le fichier et vérifier le résultat
- Vérifiez que l'en-tête déclare un
charsetcapable d'écrireèetÈ, de préférence UTF-8. - Ajoutez un
msgctxtou un commentaire#.aux chaînes courtes ambiguës et à celles dont la variable porte un nom (genre, article). - Passez en
%1$sles chaînes à plusieurs variables. - Après livraison, lancez
msgfmt -csur le fichier : il contrôle l'en-tête et la cohérence des formats. - Relisez dans l'interface les pluriels à zéro et les boutons étroits, puis consultez le rapport pour les chaînes restées en langue source.
En pratique
- Exportez votre .po ou votre .pot depuis le projet, sans le modifier.
- Déposez-le : le devis s'affiche sur le nombre exact de mots des valeurs.
- Lisez l'extrait gratuit en italien au niveau choisi.
- Récupérez le .po italien et son rapport, puis compilez et testez.
Questions fréquentes
Combien de msgstr[n] aurai-je pour l'italien ?
Le nombre de formes correspond à l'italien et l'en-tête Plural-Forms est posé en conséquence. La convention gettext répandue est nplurals=2 avec plural=(n != 1). Si votre projet impose une autre règle, vérifiez l'en-tête avant de fusionner.
Le texte sera-t-il au Lei ou au tu ?
Le registre retenu pour l'italien est formel, au Lei, pour les phrases adressées à l'utilisateur. Les libellés courts (Salva, Annulla) restent sous leur forme brève habituelle. Si vous voulez vérifier le ton, l'extrait gratuit le montre avant paiement.
Comment sont traitées les chaînes où %s est un nom de genre inconnu ?
La traduction s'appuie sur le msgctxt et les commentaires pour choisir le masculin ou le féminin. Sans indice, un choix est fait et la variable reste intacte. Pour les cas sensibles, ajoutez un commentaire #. avant le dépôt.
Mon fichier contient des entrées marquées fuzzy, que se passe-t-il ?
Les commentaires et indicateurs #, sont conservés tels quels dans le fichier rendu. Pensez à les traiter selon votre flux habituel, car gettext ignore à la compilation les entrées fuzzy.
Recevrai-je aussi le fichier .mo ?
Non, vous recevez le même format que celui déposé, ici le .po. La compilation en .mo se fait avec msgfmt ou l'outil de votre framework.
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’italien, 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.