Ответ 1
ugettext
используется для загрузки перевода строки прямо сейчас. ugettext_lazy
возвращает объект, который в конечном итоге может быть превращен в строку. Вам нужно, чтобы вызов ugettext_lazy
был оценен до того, как был установлен правильный языковой стандарт.
ugettext_lazy
можно использовать, когда вы используете объект Unicode. Дважды проверьте свой вывод HTML, он может выглядеть так:
<django.utils.functional...>
и браузер игнорирует все это как непризнанный тег.
В этом случае вам не нужен ленивый перевод, потому что вы немедленно используете строку. Если вы действительно хотите продолжить работу с ugettext_lazy по какой-либо причине, попробуйте следующее:
return HttpResponse(ugettext_lazy("Hello").encode('utf-8'))
Подробнее см. docs.