[Python] class-based gettext

Alessandro Dentella sandro a e-den.it
Gio 8 Gen 2009 23:38:05 CET


Ciao,

  sto guardando per la prima volta gettext. Leggendo la documentazione del
  modulo ho seguito il suggerimento di usare la versione class-based ("It is
  the recommended way of localizing your Python applications and modules"),
  princialmente perché contempla un fallback (altra mail...).

  Ho aggiunto la localizzazione senza grandi problemi al mio modulo... tutto
  bene finché ho cambiato la variabile LANG. Quindi sono tornato all'esempio...

  Il codice della documentazione che riporto nel mio esempio è::

     sandro a bluff:/tmp$ cat test.py 
     import gettext
     t = gettext.translation('example', 'locale')
     _ = t.lgettext

     print _('Hello World')

  eseguo (senza cartella locale e senza file .po/.mo)::

     sandro a bluff:/tmp$ LANG='it_IT' python test.py
     Hello World

     sandro a bluff:/tmp$ LANG='fr_FR' python test.py
     Traceback (most recent call last):
       File "test.py", line 2, in <module>
	 t = gettext.translation('example', 'locale')
       File "/usr/lib/python2.5/gettext.py", line 484, in translation
	 raise IOError(ENOENT, 'No translation file found for domain', domain)
     IOError: [Errno 2] No translation file found for domain: 'example'


  La versione con 'bindtextdomain' invece funziona anche cambiando LANG.

  Cosa sbaglio?
  La traduzione non c'è neanche per it_IT...  

  suggerimenti?

  sandro
  *:-)


  
-- 
Sandro Dentella  *:-)
http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy


Maggiori informazioni sulla lista Python