我正在尝试使用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
答案 0 :(得分:2)
django-allauth==0.32.0
和Django==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
- 因此不使用翻译。这同样适用于我已检查的其他语言(de
,es
...)。
allauth
的作者的评论中解释了原因:
allauth模板仅仅是一个起点 让你快速前进因此,我不会处理问题 翻译为阻止发布,可能导致翻译 落后了。随意提交拉动请求填写 的间隙。
来源: https://github.com/pennersr/django-allauth/issues/1113#issuecomment-141189606
我认为有两种方法可以解决这个问题:
allauth
复制到您的项目中,制作您自己的*.po
文件并忽略所有默认翻译/模板。不要忘记电子邮件模板位于*.txt
,因此您必须以这种方式致电makemessages
:python manage.py makemessages ... --extension html,txt,py
。