OVH Cloud OVH Cloud

gettext sous Windows

4 réponses
Avatar
Vincent Bernat
Coucou !

Quelqu'un est-il parvenu à utiliser gettext sous Windows ? J'utilise
le code suivant :

,----
| import gettext
| gettext.bindtextdomain (APP, DIR)
| gettext.textdomain(APP)
| gettext.install(APP, DIR, unicode=1)
|
| gtk.glade.bindtextdomain (APP, DIR)
| gtk.glade.textdomain (APP)
`----

Pourtant, la fonction "_" reste non fonctionnelle. Le même code
fonctionne sans problème sous Windows. Par contre, l'interface est
effectivement traduite avec Glade alors que les chaînes se trouvent
dans le même fichier !
--
printk("Penguin %d is stuck in the bottle.\n", i);
2.0.38 /usr/src/linux/arch/sparc/kernel/smp.c

4 réponses

Avatar
Do Re Mi chel La Si Do
Bonjour !


J'avais essayé gettext. Et effectivement, j'avais réussi à faire fonctionner
tout le bourzingue (avec les fichiers .pot, compilés en .po & .mo ; des
sous-répertoires en pagaille ; etc.)

Mais, j'avais trouvé ça tellement lourd et difficile, que j'avais fini par
pondre mon petit module de traduction perso. Je n'ai gardé que le principe
d'une fonction nommée _( ) ; c'est beaucoup plus simple (pour moi), et je
peux changer de langue sans sortir d'un script. J'ai simplement collé tous
les messages dans un dictionnaire, avec, comme clef, le message d'origine.
Si un message n'est pas trouvé, c'est la clef recherchée qui est retournée.


@-salutations

Michel Claveau
Avatar
Vincent Bernat
OoO En ce début d'après-midi nuageux du mercredi 08 juin 2005, vers
14:45, "Do Re Mi chel La Si Do"
disait:

J'avais essayé gettext. Et effectivement, j'avais réussi à faire fonctionner
tout le bourzingue (avec les fichiers .pot, compilés en .po & .mo ; des
sous-répertoires en pagaille ; etc.)

Mais, j'avais trouvé ça tellement lourd et difficile, que j'avais fini par
pondre mon petit module de traduction perso.


Pour ma part, tout fonctionne impec sous Linux et je sais justement
gérer les histoires de .po et .mo. Ce qui est pratique avec ce
système, c'est la mise à jour d'une langue. Mais bon, si je n'arrive
pas à faire marcher sous Windows, je peux effectivement transformer
tout ça en un gros dictionnaire, je le fais déjà pour Mac OS X qui a
un autre système.
--
HARDFAIL("Not enough magic.");
2.4.0-test2 /usr/src/linux/drivers/block/nbd.c

Avatar
Vincent Bernat
OoO En cette matinée pluvieuse du mercredi 08 juin 2005, vers 10:04,
Vincent Bernat disait:

,----
| import gettext
| gettext.bindtextdomain (APP, DIR)
| gettext.textdomain(APP)
| gettext.install(APP, DIR, unicode=1)
|
| gtk.glade.bindtextdomain (APP, DIR)
| gtk.glade.textdomain (APP)
`----

Pourtant, la fonction "_" reste non fonctionnelle. Le même code
fonctionne sans problème sous Windows.


Euh, sous Linux.
Pour Windows, il faut rajouter :

os.environ['LC_MESSAGES'] = locale.getdefaultlocale()[0]
--
I WILL NOT FAKE RABIES
I WILL NOT FAKE RABIES
I WILL NOT FAKE RABIES
-+- Bart Simpson on chalkboard in episode 8F07

Avatar
Christophe Cavalaria
Vincent Bernat wrote:

OoO En ce début d'après-midi nuageux du mercredi 08 juin 2005, vers
14:45, "Do Re Mi chel La Si Do"
disait:

J'avais essayé gettext. Et effectivement, j'avais réussi à faire
fonctionner tout le bourzingue (avec les fichiers .pot, compilés en .po &
.mo ; des sous-répertoires en pagaille ; etc.)

Mais, j'avais trouvé ça tellement lourd et difficile, que j'avais fini
par pondre mon petit module de traduction perso.


Pour ma part, tout fonctionne impec sous Linux et je sais justement
gérer les histoires de .po et .mo. Ce qui est pratique avec ce
système, c'est la mise à jour d'une langue. Mais bon, si je n'arrive
pas à faire marcher sous Windows, je peux effectivement transformer
tout ça en un gros dictionnaire, je le fais déjà pour Mac OS X qui a
un autre système.


C'est vrai que gettext est assez lourd à mettre en place mais il y a des
avantages non négligeables à l'utiliser :
- outils de tradusction standards et connus des gens qui ont l'habitude de
faire des traductions. Exemple kbabel qui est un outils assez génial
utilisé pour la traduction de KDE
- gestion des règles tordues pour la pluralisation des textes. Ce problème
n'est pas trivial.