Traduire un fichier PO (gettext) en allemand
Déposez votre fichier .po ou .pot : Manuce traduit les msgstr en allemand, pose deux formes plurielles et vérifie chaque variable printf. Vous récupérez le même fichier, prêt à compiler, 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’allemand :
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'allemand change dans un fichier .po
L'allemand a deux catégories de pluriel, one et other, donc deux entrées msgstr[0] et msgstr[1]. L'en-tête attendu est Plural-Forms: nplurals=2; plural=(n != 1);. Le piège vient d'une source française : en français, zéro est au singulier (« 0 fichier »), en allemand il est au pluriel (« 0 Dateien »). Si votre code teste lui-même n > 1 au lieu de passer par ngettext(), l'allemand affichera une faute pour zéro.
msgid "%d file"/msgid_plural "%d files"donnemsgstr[0] "%d Datei"etmsgstr[1] "%d Dateien".- Tous les noms prennent une majuscule, mais il n'y a pas de majuscule de titre à l'anglaise : « Save As » devient
Speichern unter. - Les mots composés allongent les libellés : « Paramètres du compte » devient
Kontoeinstellungen, un seul mot impossible à couper sans césure. Comptez un texte 20 à 35 % plus long que l'anglais. - En contexte professionnel, l'usage est le vouvoiement Sie, avec majuscule au possessif :
Speichern Sie Ihre Änderungen.
Variables, ordre des mots et contexte
En allemand, le verbe à l'infinitif se place en fin de libellé : "Delete %s?" devient "%s löschen?". Avec une seule variable, le déplacement ne pose aucun problème. Avec deux, l'ordre de la phrase allemande peut s'inverser : une chaîne écrite avec des arguments positionnels, %1$s et %2$s, laisse la traduction réordonner les valeurs sans casser l'affichage, par exemple "%1$s hat %2$s eingeladen".
Manuce vérifie que chaque variable de la source (%s, %d, %1$s) se retrouve dans la valeur allemande. Le msgctxt sert à lever les ambiguïtés que l'allemand distingue et que l'anglais confond : « Open » avec le contexte status donne Offen, avec le contexte action donne Öffnen. Les commentaires extraits #. et les références #: sont lus et conservés.
Côté typographie, l'allemand utilise les guillemets „…“. Ils n'ont pas besoin d'être échappés dans un .po, contrairement au guillemet droit \". En revanche, ils n'existent pas en ISO-8859-1 : un fichier en UTF-8 est la seule option sûre.
Ce que Manuce rend, et ce qu'il ne fait pas
Vous recevez le même fichier, dans le même format :
- Un
.potrevient en.poallemand, avec les en-têtesLanguage: deetPlural-Formsposés. - Le nombre de
msgstr[n]correspond à l'allemand, soit deux. msgctxt,msgid_pluralet commentaires#.,#:,#,sont conservés, tout comme l'ordre des entrées, les guillemets, les fins de ligne, l'encodage et le BOM. Seules les valeurs changent.- Chaque valeur traduite est comparée à la source (variables, balises). En cas d'écart persistant, la valeur source est gardée et le rapport le signale.
- Le rapport 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, les formats de date, les identifiants et tout ce qui est marqué non traduisible. Concrètement, un msgid "m/d/Y" reste tel quel : si vous voulez le format allemand d.m.Y, posez-le vous-même. Manuce ne compile pas le .mo, n'ajuste pas votre interface aux libellés plus longs et ne reçoit ni glossaire ni consignes de terminologie. La cible est l'allemand (de) : pour la Suisse, où ß s'écrit ss, relisez vous-même.
Préparer le fichier et vérifier le résultat
Avant le dépôt :
- Enregistrez le fichier en UTF-8 et déclarez
charset=UTF-8dans l'en-tête, pour les umlauts, leßet les guillemets allemands. - Ajoutez un
msgctxtaux mots courts ambigus (« Open », « Post », « Share ») et des commentaires#.pour indiquer où apparaît la chaîne. - Passez en arguments positionnels les chaînes à plusieurs variables.
Le devis porte sur les mots des valeurs, clés et balises exclues. L'extrait gratuit, un paragraphe traduit au niveau choisi, permet de contrôler le registre Sie et le sort de vos noms de produit avant de payer ; pour une interface publiée, le niveau Professionnel est le plus adapté.
Après livraison :
- Lancez
msgfmt --check -o de.mo de.po: il contrôle l'en-tête et la cohérence des formats printf. - Repérez les entrées encore marquées
#, fuzzy: msgfmt les ignore par défaut, elles s'afficheraient dans la langue source. - Ouvrez l'interface en allemand et cherchez les boutons tronqués ; une règle CSS
hyphens: autoaveclang="de"aide pour les mots composés.
En pratique
- Enregistrez votre .po ou .pot en UTF-8, avec msgctxt et commentaires #. sur les chaînes ambiguës.
- Déposez le fichier : le devis s'affiche aussitôt, calculé sur les mots des valeurs.
- Lisez l'extrait gratuit pour vérifier le registre Sie et les termes à garder tels quels.
- Récupérez le de.po et le rapport, puis lancez msgfmt --check avant de tester l'interface.
Questions fréquentes
Mon fichier .pot devient-il un de.po utilisable ?
Oui. Le modèle revient en .po pour l'allemand, avec les en-têtes Language et Plural-Forms posés. Il reste à le compiler en .mo avec vos outils habituels.
Combien de formes plurielles aura le fichier allemand ?
Deux : msgstr[0] pour le singulier et msgstr[1] pour le pluriel, avec la règle plural=(n != 1). Zéro y est donc au pluriel, contrairement au français.
La traduction utilise-t-elle Sie ou du ?
Le vouvoiement Sie est l'usage en contexte professionnel. Manuce ne reçoit pas de consignes de registre : vérifiez l'extrait gratuit, puis la traduction, si votre produit tutoie ses utilisateurs.
Que deviennent les entrées marquées fuzzy ?
Les commentaires et drapeaux #, sont conservés tels quels. Relisez ces entrées et retirez le drapeau fuzzy, sinon msgfmt les écarte par défaut à la compilation.
Mon nom de produit risque-t-il d'être traduit ?
Les identifiants, URL, nombres et éléments marqués non traduisibles ne sont pas touchés. Pour un nom de produit écrit en clair dans une phrase, contrôlez 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 l’allemand, 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.