Diccionarios y gettext

Hernan M Foffani hfoffani en gmail.com
Sab Nov 18 15:48:03 CET 2006


> > ¿Estás seguro? El _( ) es en realidad una función, no una "macro".
> > Para acceder al contenido traducido bastaría con
> > CATEGORIES["default"]["name"]
> >
> > Otro problema diferente estaría en que el diccionario ya queda
> > traducido en el momento de su creación y que no sea precisamente lo
> > que buscas.
>
> Claro que estoy seguro. Cuando aplicas _() a un string, lo que devuelve
> la función es el mismo string. Tienes que aplicarla a una variable para
> obtener la traducción, porque es una función que dependiendo del tipo de
> datos devuelve una cosa u otra,  ej:

No no no....
Python no funciona así.  Estás confundiendo Python con
la herramienta de extracción pygettext.

> La pregunta es si existe alguna manera de solucionar esto. Yo lo he
> resuelto metiendo el diccionario dentro de una clase y creando métodos
> para acceder a su contenido traducido, pero me gustaría contrastar
> opiniones con alguien que lleve más tiempo programando en python (Mi
> experiencia con este lenguaje deben ser unas 60 horas).

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.

Saludos,
-H.
------------ 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