[Python] Localizzazione in python

Gollum1 gollum1.smeagol1 a gmail.com
Ven 24 Maggio 2013 16:15:02 CEST


Il 24 maggio 2013 15:16, Gollum1 <gollum1.smeagol1 a gmail.com> ha scritto:
> Tornando sull'argomento della localizzazione...
>
> se io ho un modulo che è caricato dal mio programma, e voglio che
> anche il modulo sia localizzato, devo richiamare anche in questo
> modulo la funzione che carica gettext, oppure devo mettere le
> definizioni delle traduzioni nello stesso file del programma
> principale?
>
> chiedo questo perché la funzione _( ) che è quella che mi permette di
> fare le traduzioni, vedo che viene supportata tranquillamente anche
> nel modulo, una volta importato nel programma principale (forse perché
> _( ) viene "installato" a livello globale?)
>
> per ora ho fatto un paio di prove, ma a quanto pare non riesco ancora
> a fargli fare la traduzione... ne in un modo ne nell'altro...

alla fine sono riuscito a fare un file di prova che funzionasse...
e posso confermare che basta aggiungere le traduzioni del modulo nel
file di traduzione del programma principale, e viene tradotto anche il
modulo.

oltretutto sono riuscito a tradurre "online" anche argparse, che ha
qualche stringa che non si riesce a tradurre di suo...

la soluzione è "relativamente" banale, una volta che l'ho letta in una
pagina web[1]:

import gettext

def my_gettext(s):
    return _(s)
gettext.gettext = my_gettext

import argparse


praticamente sostituisco la funzione gettext con una mia funzione, che
passa il suo argomento alla funzione _( )

non ho ancora provato con tutte le frasi generate da argparse, ma
quella dell'help, che non riuscivo a localizzare in nessun modo, con
questo viene localizzata correttamente.

[1] http://mail.python.org/pipermail/python-list/2012-August/629389.html


Spero che le info possano servire anche ad altri.

Byez
--
Gollum1
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python