如何使用Django Allauth设置电子邮件翻译

时间:2016-08-26 18:26:47

标签: django django-allauth django-i18n

我正在尝试使用django-allauth设置电子邮件的翻译。
我重写了我的模板,翻译了我的.po文件并编写了它们。

html翻译工作正常但出于某种原因只是电子邮件无法翻译。

我在django教程后正确配置了翻译 https://docs.djangoproject.com/en/1.10/topics/i18n/translation/#how-django-discovers-language-preference

相关问题无济于事: How does email translation work with django allauth?

包装版本:
Django的== 1.10
Django的allauth == 0.27.0

1 个答案:

答案 0 :(得分:2)

django-allauth==0.32.0Django==1.11.1遇到了同样的问题。 allauth附带的翻译过时或不完整。例如,在我的项目中,虽然用户将语言设置为捷克语,但带有重置密码链接的电子邮件始终使用英语(默认语言LANGUAGE_CODE = 'en')。

在捷克语翻译的.po文件中:https://github.com/pennersr/django-allauth/blob/master/allauth/locale/cs/LC_MESSAGES/django.po#L408此电子邮件翻译标记为fuzzy - 因此不使用翻译。这同样适用于我已检查的其他语言(dees ...)。

allauth的作者的评论中解释了原因:

  

allauth模板仅仅是一个起点   让你快速前进因此,我不会处理问题   翻译为阻止发布,可能导致翻译   落后了。随意提交拉动请求填写   的间隙。

来源: https://github.com/pennersr/django-allauth/issues/1113#issuecomment-141189606

我认为有两种方法可以解决这个问题:

  1. 修复/更新https://www.transifex.com/django-allauth/django-allauth/上的翻译,在Github上提交拉取请求并等待新版本。
  2. 我的建议:将所有模板从allauth复制到您的项目中,制作您自己的*.po文件并忽略所有默认翻译/模板。不要忘记电子邮件模板位于*.txt,因此您必须以这种方式致电makemessagespython manage.py makemessages ... --extension html,txt,py