Page en cours de rédaction

1. xml2po

Jongler entre les formats XML et PO (Fortement inspiré des exemples du manuel de xml2po).

xml2po -e -o doc.pot doc.xml

Si le fichier doc.xml est lié à d'autres fichiers, comme legal.xml, la commande devient :

xml2po -e -o doc.pot doc.xml legal.xml

L'option -e permet de prendre en compte et d'évaluer les entités XML (comme &app; par exemple). Elle doit toujours être utilisée quand on travaille sur les traductions GNOME.

Après traduction de doc.pot en fr.po, on intègre les chaînes traduites dans chaque fichier XML à l'aide de l'option -p :

xml2po -e -p fr.po -o doc.fr.xml doc.xml
xml2po -e -p fr.po -o legal.fr.xml legal.xml

L'option -e est obligatoire si elle a déjà été utilisée à la création du POT.

Pour générer un fichier PO fr.po à partir d'un fichier XML doc.fr.xml déjà traduit (même partiellement), on utilise l'option -r :

xml2po -e -o fr.po -r doc.fr.xml doc.xml

C'est pratique pour ceux qui préfèrent travailler directement avec le fichier XML plutôt qu'avec le fichier fr.po.

C'est lors des modifications du fichier XML que l'utilisation d'un fichier PO prend tout son intérêt. Il y a deux manières de fusionner les nouvelles chaînes aux chaînes déjà traduites :

msgmerge -o tmp.po fr.po doc.pot
mv tmp.po fr.po

et commencer la traduction avec fr.po.

xml2po -e -u fr.po doc.xml

2. Présentation technique (pour les spécialistes)

Les applications GNOME utilisent toutes le système de traduction gettext créé par le projet GNU. Le principe de gettext est de remplacer les chaînes de la version originale en anglais par les chaînes traduites au moment de l'exécution du logiciel.
L'ensemble des chaînes à traduire pour une application sont réunies dans un fichier .POT (Portable Object Template) localisé dans un répertoire po/ dans les sources de cette application. Chaque langue utilise ce fichier comme base pour démarrer une traduction. Une fois le fichier traduit, il est enregistré sous le nom XX.po, où XX est le code de la langue, par exemple fr.po. Les fichiers .po (Portable Object) sont par la suite transformés en fichier .mo (Machine Object) lors de la compilation.
Chaque application possède ainsi un fichier PO pour chacune des langues dans lesquelles elle est traduite (es.po, de.po, etc). Les modules hébergés sur le SVN (ce lien n'existe plus) de GNOME contiennent tous un répertoire nommé po contenant ces fichiers.
Pour davantage d'informations à ce sujet, consultez le manuel gettext ou les conseils (ce lien n'existe plus) destinés aux développeurs GNOME.