Quantcast
Channel: Développement sous GNU/Linux
Viewing all articles
Browse latest Browse all 25

Python Project Translating

$
0
0
!----------------------
! 
! 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:
  • 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
Mais je vous invite à lire le contenu du script ppt.py pour les détails ...

Utilisation du script: ppt.py ( Python Project Translating )


Téléchargement
$ wget http://download.tuxfamily.org/xcfaudio/Python/ppt/ppt.py
Rendre le script executable
$ chmox +x ./ppt.py
Installation
$ sudo ./ppt.py /usr/bin/ppt.py
Premiè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 version

Une seconde fois avec le paramètre -go
$ ppt.py -g
...
... permettra la création des fichiers nécessaires à la traduction de votre application
po/all.pot
po/en_GB.mo
po/en_GB.po
po/en.mo
po/en.po
po/fr.mo
po/fr.po
Il 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

Viewing all articles
Browse latest Browse all 25

Trending Articles