!---------------------- ! ! ppt (Python Project Translating) V0.0.8 ! ! Internationalisation d'un projet python. ! !---------------------- !Le script Python ppt.py prend en charge l'arborescence de l'endroit ou il est activé, recherche de façon récursive les fichiers [ *.py, *.ui, *.glade ] et dépose les résultats dans un dossier po/ : [ *.po, *.pot, *.mo ].
Il suffira de compléter les fichiers *.po pour la traduction, de relancer ppt.py -g pour produire le ou les fichiers *.mo puis de copier ces fichiers *.mo vers /usr/share/locale/XX pour obtenir un programme traduit.
Internationalisation d'un projet python.
Je débute avec la programmation en Python.
Je fais mes classes avec le projet Fricorderécrit initialement en Python-2 que j'ai décidé de porter vers Python-3 avec entre autres choses l'utilisation de gtk_builder.
Je suis arrivé au stade de l'internationalisation et là ! Point de salut si vous ne faites pas vous même toutes les opérations au clavier :/
C'est franchement chiant et rébarbatif et j'ai donc écrit un script en langage Python pour simplifier ce problème récurrant.
Principe du script: ppt.py ( Python Project Translating )
Le script s'appuie sur ces programmes pour fonctionner:Mais je vous invite à lire le contenu du script ppt.py pour les détails ...
- xgettext
Lecture des fichiers [ *.py, *.ui, *.glade ] et production d'un fichier *.pot- sed
Remplacement dans le fichier *.pot de: 'charset=CHARSET' par 'charset=UTF-8'- msgcat
Ajout des datas du fichier *.pot dans le fichier all.pot
Notez que msgcat doit être appliqué sur l'ensemble des fichiers *.pot- msgmerge
Ajout des datas du nouveau fichier all.pot vers les fichiers *.po- msgfmt
Production des fichiers *.mo correspondant aux fichiers *.po
Utilisation du script: ppt.py ( Python Project Translating )
Téléchargement$ wget http://download.tuxfamily.org/xcfaudio/Python/ppt/ppt.pyRendre le script executable$ chmox +x ./ppt.pyInstallation$ sudo ./ppt.py /usr/bin/ppt.pyPremière utilisation sans paramètre après vous être placé à la racine d'un projet$ ppt.py !---------------------- ! ! ppt (Python Project Translating) V0.0.8 ! ! Internationalisation d'un projet python. ! !---------------------- ! ! Lecture recursive des dossiers depuis l'endroit ou est active ppt.py avec ! une reconnaissance des fichiers PY et GLADE qui seront traites par xgettext, ! sed, msgcat,msgmerge et enfin msgfmt. ! Par defaut, les fichiers de langues fr, en et en_GB seront crees dans le dossier ! po/ si ils n'existent pas et les autres fichiers de langues seront conserves et ! mis a jour. ! Au final seront crees les fichiers po, pot et mo correspondants a l'application ! traitee. ! ! Claude Bulin ! http://www.xcfa.tuxfamily.org/ ! !---------------------- usage: ppt.py [-h] [-g] [-v] optional arguments: -h, --help show this help message and exit -g, --generate generate translating project -v, --version print versionUne seconde fois avec le paramètre -go$ ppt.py -g ...... permettra la création des fichiers nécessaires à la traduction de votre applicationpo/all.pot po/en_GB.mo po/en_GB.po po/en.mo po/en.po po/fr.mo po/fr.poIl suffira ensuite de traduire depuis les fichiers *.po puis de réactiver ppt.py -g pour obtenir les fichiers *.mo qu'il vous faudra copier vers le dossier /usr/bin/locale/XX pour enfin obtenir une application valide dans les langues désirées.
Adaptation de ppt.py à d'autres langages
Je pense notamment à Perl !
Très certainement pas bien compliqué ...
Avis aux courageux !
Les sources ...
... de ppt.py sont ici.
Si ...
... ppt.py vous est utile, faites le moi savoir par Mail : ça fait plaisir xD