Django电子邮件翻译仅适用于本地

时间:2016-04-18 07:15:28

标签: python django email django-rest-framework

我尝试根据user.language中设置的语言向我的用户发送已翻译的电子邮件。为了做到这一点,我从我的BaseMailerService覆盖了send_mail方法。

from django.utils.translation import override

    class BaseTranslatedMailerService(BaseMailerService):
        """
        Renders the acutal content of an email according to the users configurated
        language.
        """

        def send_mail(self, context, attachments=None):
            recipient_obj = context.get('recipient').get('user_obj')
            # Default for all language settings is 'en'
            with override(recipient_obj.language):
                return super(BaseTranslatedMailerService, self).send_mail(context=context,
                                                                          attachments=attachments)

在我的测试中,我根据user.language发送邮件的翻译版本,但在我的服务器环境中,它每次只发送英文邮件。也许它必须用我必须设置的线程语言做点什么?

1 个答案:

答案 0 :(得分:0)

出乎意料地,我不小心将所有* .mo文件添加到我的gitignore,导致我的编译语言字符串被排除在部署过程之外。从gitignore中删除* .mo解决了我的问题。