电子邮件未在Celery任务中翻译

时间:2013-11-28 15:08:56

标签: django internationalization celery

我有一个芹菜任务,它以异步方式发送电子邮件

from djcelery.common import respects_language

@task(ignore_result=True)
@respects_language
def async_send_activation_email(registration_profile):
    registration_profile.send_activation_email()

发送激活电子邮件功能

from django.core import context_processors

def send_activation_email(self):

    variables = {
                    'some_variable':'something',
        }
    context = context_processors.i18n(None) # Allows to easily get all the language information into context. None is passed as the request does not matter for this context_processor.


    # Subject
    # Email subject *must not* contain newlines
    subject = render_to_string(
        'user_manager/activation/email_subject.txt',
        variables,
        context
        )
            ...

context包含正确的信息(在我的例子中是LANGUAGE ='fr',以及其他语言选项)。这是正常的,因为@respects_language装饰器正确设置了它们。

但是render_to_string仍然使用了后备语言。

有关可能发生的事情的任何想法?

1 个答案:

答案 0 :(得分:5)

尝试使用

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

修改

对问题的评论解决方案:

检查您的区域设置路径,它们在芹菜中执行时可能会有所不同。