2016-09-04 3 views
1

У меня есть HTML-шаблон, который я отправляю по электронной почте с помощью установки Django. Я пытаюсь перевести содержимое шаблона (я загрузил i18n, и все строки находятся в файлах po), но я продолжаю получать электронную почту, представленную на английском языке.Перевод почтовых шаблонов в Django

У меня есть следующий код:

htmly = get_template(self.html_content) 
self.values_dict['LANGUAGE_CODE'] = 'es' 
d = Context(self.values_dict) 
html_content = htmly.render(d) 
process_mail.delay(subject=self.subject, message=self.message, 
        from_email=self.from_email, 
        recipient_list=self.recipient_list, 
        html_content=html_content, 
        html_type=self.html_type, 
        attaches=self.attaches, mass=mass) 

Для отладки причины, я также поставить это на шаблон:

{% get_language_info for LANGUAGE_CODE as lang %} 
Language code: {{ lang.code }}<br /> 
Name of language: {{ lang.name_local }}<br /> 
Name in English: {{ lang.name }}<br /> 
Bi-directional: {{ lang.bidi }} 
Name in the active language: {{ lang.name_translated }} 

Какие выходы

Language code: es 
Name of language: español 
Name in English: Spanish 
Bi-directional: False Name in the active language: 

Вы знаете Что я делаю не так?

+0

Не могли бы вы опубликовать свой шаблон электронной почты, где для отображения его содержимого – sr3z

ответ

1

Вы, кажется, фактически не активируете перевод нигде; все, что вы сделали, это отправить строку «es» в качестве переменной LANGUAGE_CODE. Для того, чтобы действительно сделать вещи в переводе, вы должны make that language the active one:

from django.utils import translation 
translation.activate('es')