[Python] Gettext.

Marco Giusti marco.giusti a posteo.de
Gio 21 Maggio 2015 13:56:25 CEST


On Thu, May 21 2015, Gabriele Battaglia wrote:
> 
> 
> Carlos Catucci, alle 11:03 del 21/05/2015, digitò:
> >
> >2015-05-21 11:01 GMT+02:00 Gabriele Battaglia <iz4apu a libero.it
> ><mailto:iz4apu a libero.it>>:
> >
> >    import gettext
> >    help(gettext)
> >
> >
> >Perdonami Gabriele, non riesco a capire se il problema sia nel fatto che
> >non hai cpaito a cosa serva l'istruzione help oppure se sia quanto
> >tornato dalla stessa.
> Ciao Carlos e perdonami tu, sono stato poco chiaro.
> Ho letto l'help perchè sto cercando di rendere localizzabile una specie di
> giochino che ho scritto in Python e che vorrei far provare ad amici che non
> parlano italiano.
> Le alternative sono 2: modifico tutte le prints dello script e gli mando la
> copia modificata, oppure, imparo ad usare questa gettext che mi pare
> consenta di trasferire in un file sorgente della lingua, tutti i messaggi
> che compaiono nello script.
> Così facendo puoi continuare a sviluppare una sola versione, aggiornando e
> traducendo i messaggi in un file esterno, quando serve.
> 
> Chiedevo alla lista un esempio di come funziona questa classe gettext, così
> per avere uno spunto di partenza.
> Mi chiedevo, come si scriverebbe il classico helloworld.py, usando gettext?
> Grazie per l'interesse.
> GB.

Eccola servita:

    # import locale
    # locale.setlocale(locale.LC_ALL, '')
    import gettext

    gettext.install("hellogettext", "locale", codeset="utf8",
        names=["gettext"])

    s_t = _("hello gettext")
    print s_t


In allegato trovi un paio di script per estrarre le stringe da tradurre
e compilare i relativi file. Procedi così:

    $ bash l10nextract.sh hellogettext.py

Modifica i relativi file *.po generati cambiando il CHARSET e la stringa
da tradurre:

    ...
    "Content-Type: text/plain; charset=utf-8\n"
    ...

    #: hellogettext.py:7
    msgid "hello gettext"
    msgstr "ciao gettext"

e compila i file *.po:

    $ bash l10ncompile.sh
    $ python hellogettext.py 
    ciao gettext
    $ echo $LANG
    it_IT.UTF-8
    $ LANG= python hellogettext.py 
    hello gettext
    $ LANG=fr_FR python hellogettext.py 
    salut gettext
    $ LANG=de_DE python hellogettext.py 
    hallo gettext

Eccoti anche un link che può esserti d'aiuto:
http://pymotw.com/2/gettext/index.html

Ci sono alcuni dettagli che sono un po' oscuri, come la directory dove
vengono cercati i file *.mo. Non so' se la documentazione sia chiara a
proposito.

ciao
marco
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        l10ncompile.sh
Tipo:        application/x-sh
Dimensione:  344 bytes
Descrizione: non disponibile
URL:         <http://lists.python.it/pipermail/python/attachments/20150521/11a5cade/attachment.sh>
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        l10nextract.sh
Tipo:        application/x-sh
Dimensione:  476 bytes
Descrizione: non disponibile
URL:         <http://lists.python.it/pipermail/python/attachments/20150521/11a5cade/attachment-0001.sh>


Maggiori informazioni sulla lista Python