Traduire un fichier PO (gettext) en polonais
Déposez votre fichier .po ou .pot : Manuce traduit les msgstr en polonais, pose les en-têtes Language et Plural-Forms et remplit autant de formes plurielles que le polonais en demande. Vous récupérez le même fichier, prêt à compiler, avec un rapport qui indique chaque chaîne laissée telle quelle et pourquoi.
Combien ça coûte
Pour un fichier PO (gettext) d'environ 2 500 mots de valeurs, vers le polonais :
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.
Le pluriel polonais dans un PO : plus de deux msgstr
C'est la première chose qui casse quand un PO passe au polonais. Le polonais distingue le singulier, un pluriel pour les nombres terminés par 2, 3 ou 4 (sauf 12 à 14), et un autre pluriel pour le reste. Une entrée plurielle ne peut donc pas se contenter de deux msgstr :
msgstr[0] "%d plik"pour 1msgstr[1] "%d pliki"pour 2, 3, 4, 22, 23, 104…msgstr[2] "%d plików"pour 0, 5, 11, 12, 13, 25…
Le CLDR liste quatre catégories (one, few, many, other) ; la quatrième sert aux nombres décimaux (« 1,5 pliku »). Comme ngettext reçoit un entier, la convention gettext pour le polonais est nplurals=3, avec l'expression habituelle plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);. Manuce remplit le nombre de msgstr[n] qui correspond au polonais ; si votre application affiche des quantités décimales, formulez plutôt ces chaînes sans pluriel, par exemple Rozmiar: %s.
Déclinaisons, genre et variables : les pièges propres au polonais
Le polonais décline les noms. Un nom inséré par %s reste au nominatif, alors que la phrase en exige parfois un autre cas :
Paramètres de %sdonneraitUstawienia dla %s, qui exige le génitif : « dla Jan » est fautif, il faudrait « dla Jana ». Une tournure commeUstawienia: %souUstawienia projektu %sévite le problème.- Le passé s'accorde au genre :
%s a rejoint le projetdevientdołączyłoudołączyła. Sans connaître la personne, on écrit souventUżytkownik %s dołączył do projektu.
Les chaînes reconstituées par morceaux dans le code (un verbe dans une entrée, un nom dans une autre) ne peuvent pas être correctement déclinées : si vous pouvez, remplacez-les par des phrases complètes avant traduction. Le msgctxt compte aussi : Ouvrir en contexte « bouton » donne Otwórz, l'état « Ouvert » d'un ticket (zgłoszenie, neutre) donne Otwarte. Manuce s'appuie sur ce contexte et sur vos commentaires #. pour choisir.
Typographie et conventions polonaises
Venant du français, plusieurs habitudes s'inversent :
- Pas d'espace avant
:,;,?,!:Fichier :devientPlik:. - Les guillemets s'écrivent „ ” :
Cliquez sur « Enregistrer »devientKliknij „Zapisz”. - Les noms de mois et de jours prennent une minuscule, et un titre de menu n'a de majuscule qu'au premier mot.
- La date courte s'écrit généralement
31.12.2025. Les formats de date ne sont pas traduits : une chaîne comme%d/%m/%Yprésente dans le PO reste telle quelle, à vous de l'adapter.
Le texte polonais est souvent plus long que la source : vérifiez les boutons et les colonnes étroites. La police de l'interface doit contenir ą, ć, ę, ł, ń, ó, ś, ź, ż.
Ce que Manuce rend, et ce qu'il ne fait pas
Vous récupérez le même fichier : indentation, ordre des entrées, guillemets, commentaires #. #: #,, fins de ligne, encodage et BOM conservés ; seuls les msgstr changent. Un .pot revient en .po polonais, en-têtes Language: pl et Plural-Forms posés.
- Les variables
%s,%d,%1$set les balises sont comparées à la source pour chaque chaîne ; en cas d'écart persistant, la valeur source est gardée et le rapport le signale. - Ne sont pas traduits : identifiants, valeurs vides, URL, adresses email, nombres, couleurs, formats de date, et ce qui est marqué non traduisible.
Manuce ne compile pas le .mo, ne devine pas le genre de la personne derrière un %s, ne reçoit ni glossaire ni mémoire de traduction, et ne produit pas de traduction assermentée. Pour un nom de produit à garder tel quel, regardez l'extrait gratuit puis la traduction.
Préparer le fichier et vérifier le résultat
- Vérifiez l'encodage : comme il est conservé, un PO en ISO-8859-1 ne pourra pas contenir ł ou ę. Convertissez-le en UTF-8 et déclarez
charset=UTF-8dans l'en-tête avant de le déposer. - Ajoutez un
msgctxtou un commentaire#.sur les mots courts ambigus (« Open », « Post », « Archive »). - Après livraison, lancez
msgfmt --check -o pl.mo pl.po: il contrôle l'en-tête, le nombre de formes plurielles et la cohérence des formats sur les entréesc-format. - Les entrées marquées
#, fuzzydans votre fichier le restent et sont ignorées à la compilation : relisez-les et retirez le drapeau. - Testez les pluriels avec 1, 2, 5, 12 et 22 dans l'application.
En pratique
- Convertir le fichier .po ou .pot en UTF-8 et ajouter du contexte sur les chaînes ambiguës.
- Déposer le fichier, choisir le polonais et lire le devis calculé sur les mots des valeurs.
- Contrôler l'extrait gratuit, en particulier une chaîne plurielle ou avec variable.
- Récupérer le .po et le rapport, puis compiler avec msgfmt --check.
- Tester l'interface avec 1, 2, 5, 12 et 22 éléments.
Questions fréquentes
Pourquoi trois msgstr alors que le polonais a quatre catégories de pluriel ?
La quatrième catégorie du CLDR concerne les nombres décimaux, que ngettext ne reçoit pas. La convention gettext pour le polonais est donc nplurals=3. Vérifiez simplement que l'en-tête Plural-Forms correspond à ce qu'attend votre outillage.
Puis-je envoyer un fichier .pot plutôt qu'un .po ?
Oui. Le modèle revient sous forme de .po pour le polonais, avec les en-têtes Language et Plural-Forms posés et les msgstr remplis. Les msgctxt, msgid_plural et commentaires sont conservés.
Les variables %s et %1$s risquent-elles d'être cassées ?
Chaque valeur traduite est comparée à la source pour les variables et les balises. Si un écart persiste, la chaîne source est gardée et le rapport l'indique, pour que vous la traitiez à la main. Les variables positionnelles comme %1$s permettent de réordonner la phrase polonaise sans risque.
Comment gérer une phrase où le nom inséré devrait être décliné ?
Manuce ne peut pas décliner une valeur qui n'existe qu'à l'exécution. La solution tient à la formulation : placer la variable après un deux-points ou derrière un nom qui la porte, par exemple « Ustawienia projektu %s ». Le mieux est d'adapter ces chaînes dans le code source si elles sont nombreuses.
Le polonais coûte-t-il plus cher ?
Oui, le polonais est une langue à supplément, avec un coefficient ×1,25 sur le prix au mot. Le devis, immédiat, porte sur les mots des valeurs, identifiants et balises exclus.
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 polonais, 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.