Page en cours de rédaction
1. xml2po
Jongler entre les formats XML et PO (Fortement inspiré des exemples du manuel de xml2po).
Créer le fichier modèle POT : Pour créer un modèle POT doc.pot depuis une documentation XML doc.xml, exécutez la commande :
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.
Créer le fichier XML traduit (depuis un PO)
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.
Créer le fichier PO (depuis un XML traduit)
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.
Mettre à jour le fichier 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 :
- - la première est de générer un nouveau fichier POT, puis de lancer msgmerge pour fusionner les nouvelles chaînes :
msgmerge -o tmp.po fr.po doc.pot mv tmp.po fr.po
et commencer la traduction avec fr.po.
- - La seconde méthode (meilleure) est d'utiliser l'option -u de xml2po qui réalise ces deux commandes. De plus, il lance msgfmt pour donner des statistiques sur l'avancement de la traduction :
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.