Я ищу разумный способ перейти к нетранслированному контенту строки ugettext_lazy
. Я нашел два пути, но я не доволен одним из них:
the_string = ugettext_lazy('the content')
the_content = the_string._proxy____args[0] # ewww!
или
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)
Первая часть кода обращается к атрибуту, который явно помечен как закрытый, поэтому не известно, как долго этот код будет работать. Второе решение слишком многословно и медленно.
Конечно, в реальном коде определение строки ugettext_lazy
и кода, который обращается к нему, находится в милях.