gettext (po)

GNU Gettext est l'un des systèmes d'internationalisation les plus anciens et les plus largement utilisés, initialement développé pour les outils Unix et maintenant utilisé avec Python (Django, Flask), PHP (Symfony, WordPress), Ruby, C et de nombreuses autres plateformes. Gettext utilise deux types de fichiers : les fichiers PO (Portable Object) pour la traduction humaine et les fichiers POT (PO Template) générés à partir du code source.

Les fichiers PO contiennent des entrées de traduction composées de commentaires de contexte optionnels, d'identifiants de contexte msgctxt, de msgid (chaîne source) et de msgstr (chaîne traduite). Les entrées pluralisées utilisent msgid_plural avec msgstr[0], msgstr[1] et des formes plurielles supplémentaires selon la langue cible. Les indicateurs fuzzy marquent les entrées qui nécessitent une révision — généralement des chaînes auto-correspondues où la source a changé. Les métadonnées d'en-tête définissent la formule des formes plurielles pour la langue.

Bonne pratique : marquez les chaînes dans le code source avec la fonction de raccourci gettext underscore standard et incluez toujours des commentaires de traducteur expliquant le contexte. Exécutez xgettext ou l'outil équivalent du framework lors des builds CI pour maintenir le template POT à jour. Utilisez msgctxt pour désambiguïser les chaînes avec un texte source identique qui nécessitent des traductions différentes dans des contextes différents — par exemple, le mot File utilisé comme nom ou comme verbe. Language Monster prend en charge les fichiers Gettext PO et POT, gère correctement les définitions de formes plurielles et traite les entrées marquées fuzzy.

En savoir plus Formats de fichiers