ManuceTraduire un fichierTraduire un fichier PO (gettext) en allemand

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.

Déposer mon fichier Voir les tarifs

Combien ça coûte

Pour un fichier PO (gettext) d'environ 2 500 mots de valeurs, vers l’allemand :

Essentiel
15 €

Comprendre, usage interne.

Professionnel
45 €

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

Premium
88 €

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" donne msgstr[0] "%d Datei" et msgstr[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 .pot revient en .po allemand, avec les en-têtes Language: de et Plural-Forms posés.
  • Le nombre de msgstr[n] correspond à l'allemand, soit deux.
  • msgctxt, msgid_plural et 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-8 dans l'en-tête, pour les umlauts, le ß et les guillemets allemands.
  • Ajoutez un msgctxt aux 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 :

  1. Lancez msgfmt --check -o de.mo de.po : il contrôle l'en-tête et la cohérence des formats printf.
  2. Repérez les entrées encore marquées #, fuzzy : msgfmt les ignore par défaut, elles s'afficheraient dans la langue source.
  3. Ouvrez l'interface en allemand et cherchez les boutons tronqués ; une règle CSS hyphens: auto avec lang="de" aide pour les mots composés.

En pratique

  1. Enregistrez votre .po ou .pot en UTF-8, avec msgctxt et commentaires #. sur les chaînes ambiguës.
  2. Déposez le fichier : le devis s'affiche aussitôt, calculé sur les mots des valeurs.
  3. Lisez l'extrait gratuit pour vérifier le registre Sie et les termes à garder tels quels.
  4. 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.

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