Diccionarios y gettext

Chema Cortes pych3m4 en gmail.com
Sab Nov 18 04:54:46 CET 2006


El 2006/11/18, Francisco Javier F. Serrador <serrador en tecknolabs.com> escribió:

> CATEGORIES = {
>         # Special categories
>         "default"       : {
>                 "name": _("Uncategorized"),
>                 "nest": _generic_nest,
>                 "threshold": 5
>         },
>         "history" : {
>                 "name": _("History"),
>                 "nest": _generic_nest,
>                 "threshold": 5
>         },
>         "debug" : {
>                 "name": "Debug",
>                 "nest": _generic_nest,
>                 "threshold": 5
>         },
>
> El problema es que quiero sacar el contenido traducido,
> normalmente haría p = _(CATEGORIES["default"]["name"]) para guardar el
> valor  extraído con gettext, pero esta solución da problemas.
> El problema es que al procesar el fichero, "default" y "name" van a
> salir como cadenas traducibles para gettext, y si el traductor las
> traduce, tendremos una bonita excepción, ya que estaríamos haciendo un
> intento de acceso a CATEGORIES["predeterminado"]["nombre"]. Obviamente,
> se puede decir a los traductores que no traduzcan esas entradas, pero no
> no me parece una buena solución dejar expuestos datos internos de esa
> manera.

¿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.




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