Diccionarios y gettext

Francisco Javier F. Serrador serrador en tecknolabs.com
Sab Nov 18 16:29:06 CET 2006


El sáb, 18-11-2006 a las 15:48 +0100, Hernan M Foffani escribió:
> La solución dependerá mucho de tus necesidades.
> La forma mas sencilla es aplicar el _(..) en el último momento,
> justo antes de enviar el mensaje al usuario.  De esa forma te
> evitas la doble traducción (que es lo que te está pasando).  El
> problema que tiene es que no tendrás un archivo autogenerado
> en forma completa.
> 
> Una alternativa mejor es usar el ejemplo de la doc en
> "6.28.3.4 Deferred translations" (porque ¿has leído la
> documentación del gettext, no? ;-) y aplicarla a tu diccionario. 

Clrao que he leído la página que dices, lo que me pasa es que para este
ejemplo concreto produce unos efectos laterales bastante perniciosos, de
ahí mis dudas. Según el ejemplo:

def N_(message): return message

animals = [N_('mollusk'),
           N_('albatross'),
	   N_('rat'),
	   N_('penguin'),
	   N_('python'),
	   ]

# ...
for a in animals:
    print _(a)

Ahora, si lo que tengo en vez de ser una lista es un diccionario, la llamada es
 print _(a["clave"])

y en el po me va a salir un 
msgid"clave"
msgstr""

Todo funciona bien hasta que el traductor lo traduce por algo distinto al msgid, produciendo un error.
Ahora bien, pygettext es una herramienta similar a la que usamos en gnome (intltool-update) 
para actualizar los po's? Quizás el problema está en intltool que debería ignorar los accesos
a diccionario en python.

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es