Qu'est-ce que le format de fichier PO ?
Les fichiers .po sont des fichiers GNU gettext Portable Object - le format source modifiable par l'homme pour les traductions de logiciels. Ce format est utilisé dans un vaste éventail de projets : utilitaires GNU/Linux, applications PHP, paquets Python, thèmes et extensions WordPress, et de nombreuses autres applications open-source.
Un fichier .po est un texte brut en UTF-8 organisé en entrées appariées : msgid (la chaîne originale dans la langue source) et msgstr (l'équivalent traduit). Les lignes de commentaires préfixées par # portent des notes du traducteur, des commentaires extraits du code source, des références de fichiers et des drapeaux « fuzzy » (flous). Les entrées avec des formes plurielles utilisent msgid_plural et des variantes indexées msgstr[n] régies par une expression Plural-Forms dans l'en-tête du fichier.
Le flux de travail de traduction suit trois types de fichiers : les développeurs extraient les chaînes traduisibles dans un modèle .pot, les traducteurs le copient par langue et remplissent les valeurs msgstr, puis msgfmt compile chaque .po en un fichier binaire .mo que l'application charge au moment de l'exécution. Le .mo est uniquement lisible par la machine - vous modifiez toujours le .po, jamais le résultat compilé.
Les fichiers .po peuvent être modifiés dans un éditeur de texte brut, mais des outils dédiés comme Poedit offrent une vérification des erreurs, des suggestions de correspondances approximatives et des assistants pour les formes plurielles. Des plateformes web comme Weblate permettent la traduction collaborative. Le format est stable et rétrocompatible depuis l'introduction de GNU gettext en 1995.
Sécurité et sûreté
RISQUE : LOWUn fichier .po ne contient que du texte de traduction et des commentaires - il n'y a pas de code exécutable, le fichier lui-même est donc inoffensif. La seule précaution pratique : un fichier de traduction malveillant placé dans un thème ou une extension pourrait injecter un texte d'interface trompeur (ex: liens ou instructions modifiés), utilisez donc uniquement des fichiers de langue provenant de la source officielle du thème/extension, et non des téléchargements de « traduction » aléatoires.
Détails du format
en bref- Image disque / image de partition (rare) - Le nom hérité de la base de données « Disk image file » reflète un étiquetage rare ou incorrect ; .po n'est pas une extension standard d'image disque.
Programmes qui ouvrent les fichiers PO
Détails techniques
spécifications approfondies| Type de format | Texte brut, orienté ligne (syntaxe GNU gettext PO) |
| Encodage | UTF-8 (jeu de caractères déclaré dans le champ Content-Type de l'en-tête) ; les catalogues anciens peuvent utiliser des encodages ISO-8859-x |
| Type MIME | text/x-gettext-translation |
| Structure d'entrée | Paires msgid / msgstr ; msgctxt optionnel pour la désambiguïsation contextuelle de chaînes sources identiques |
| Entrée d'en-tête | La première entrée a un msgid vide ; son bloc msgstr contient Project-Id-Version, Content-Type, Plural-Forms et d'autres métadonnées du catalogue |
| Formes plurielles | msgid_plural avec des variantes indexées msgstr[0], msgstr[1], ... ; l'expression d'en-tête Plural-Forms contrôle quelle forme s'applique pour un nombre donné |
| Types de commentaires | # (commentaire du traducteur), #. (commentaire extrait de la source), #: (référence au fichier source), #, (drapeaux tels que fuzzy ou c-format) |
| Drapeau Fuzzy | #, fuzzy marque une traduction nécessitant une révision après modification de la chaîne source ; msgfmt exclut les entrées fuzzy de la sortie .mo compilée |
| Sortie compilée | Converti en .mo binaire (Machine Object) par msgfmt ; le .mo est ce que l'application en cours d'exécution charge via gettext() |
| Fichier modèle | .pot (Portable Object Template) - le squelette non traduit ; tous les fichiers .po de langue en sont dérivés via msginit ou msgmerge |
| Taille de fichier typique | 5 Ko - 5 Mo ; varie selon le nombre de chaînes traduisibles dans le projet |
| Chaîne d'outils | xgettext (extraire les chaînes de la source), msginit (créer un nouveau .po), msgmerge (mettre à jour un .po existant), msgfmt (compiler en .mo) |
| Plateforme | Toutes - Linux, macOS, Windows, BSD ; partout où GNU gettext ou une implémentation libintl compatible est disponible |
| Écosystème | Utilisé par WordPress, Drupal, GNOME, KDE, Python gettext, PHP gettext et de nombreux autres frameworks pour l'internationalisation (i18n) |
| Publié | 1995 (GNU gettext) |
| Dernière version | PO file syntax is stable; defined in the current GNU gettext manual |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.gnu.org |
Conversions PO
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers PO.