Estoy buscando una forma sensata de acceder al contenido no traducido de una cadena de caracteres ugettext_lazy
. He encontrado dos maneras, pero no estoy feliz con cualquiera de los dos:Acceda al contenido no traducido de ugettext_lazy de Django
the_string = ugettext_lazy('the content')
the_content = the_string._proxy____args[0] # ewww!
o
from django.utils.translation import activate, get_language
from django.utils.encoding import force_unicode
the_string = ugettext_lazy('the content')
current_lang = get_language()
activate('en')
the_content = force_unicode(the_string)
activate(current_lang)
La primera pieza de código de acceso a un atributo que se ha marcado explícitamente como privada, así que no hay diciendo cuánto tiempo funcionará este código. La segunda solución es demasiado prolija y lenta.
Por supuesto, en el código real, la definición de la cadena ied ugettext_lazy
y el código que accede a ella son millas appart.
Es el mejor cuando la traducción de langauage está activa (francés) y queremos texto 'en' del texto traducido. Gracias. –