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