= Exemple d'utilisation de Gettext = == Côté programmeur == Pour commencer, nous créons un petit programme Python (`essai.py`) : {{{#!python #!/usr/bin/env python # -*- coding: UTF-8 -*- print u'Hello, World.' }}} L'exécution de ce programme donne le résultat attendu : {{{ $ ./essai.py Hello, World. }}} Nous ajoutons les en-têtes utilisés par Gettext et nous instrumentons les chaînes de caractères à traduire : {{{#!python #!/usr/bin/env python # -*- coding: UTF-8 -*- import gettext gettext.bindtextdomain('essai', '.') gettext.textdomain('essai') _ = gettext.gettext # TRADUCTEURS : ce message ne doit pas # dépasser 72 caractères print _(u'Hello, World.') }}} Il ne reste plus qu'à extraire les chaînes à traduire avec l'outil xgettext : {{{ xgettext -L python -o essai.pot \ --add-comments='TRADUCTEURS :' \ essai.py }}} Le fichier produit par xgettext est le suivant : {{{ #. TRADUCTEURS : ce message ne doit pas #. dépasser 72 caractères #: essai.py:13 msgid "Hello, World." msgstr "" }}} C'est ce fichier qui sera envoyé aux traducteurs (en le renommant .po). Ceux-ci n'auront plus qu'à ajouter dans les chaînes « msgstr » la traduction des chaînes « msgid ». == Côté traducteur == Le traducteur reçoit le fichier .po et le traduit : {{{ #. TRADUCTEURS : ce message ne doit pas #. dépasser 72 caractères #: essai.py:13 msgid "Hello, World." msgstr "Bonjour, Monde." }}} Il ne reste plus au traducteur qu'à compiler le fichier .po, à l'installer : {{{ mkdir -p fr/LC_MESSAGES msgfmt -c -o fr/LC_MESSAGES/essai.mo essai.po }}} Et à l'essayer : {{{ $ ./essai.py Bonjour, Monde. }}}