Как настроить перевод электронной почты с помощью Django Allauth

Я пытаюсь настроить переводы для электронных писем с помощью django-allauth.
Я переписал свои шаблоны, перевел файлы .po и выполнил их.

HTML-переводы работают нормально, но по какой-то причине только электронные письма не переводятся.

Я правильно настроил переводы в соответствии с руководством по django
https://docs.djangoproject.com/en/1.10/topics/i18n/translation/#how-django-discovers-language-preference

Связанный с этим вопрос не помогает: Как работает перевод электронной почты с django allauth ?

Версии пакетов:
Django==1.10
django-allauth==0.27.0


person arosa    schedule 26.08.2016    source источник


Ответы (1)


У меня была такая же проблема с 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

Я думаю, что есть два пути решения этой проблемы:

  1. Исправить/обновить переводы на https://www.transifex.com/django-allauth/django-allauth/, отправьте запрос на включение на Github и дождитесь новой версии.
  2. Моя рекомендация: скопируйте все шаблоны из allauth в свой проект, создайте свои собственные файлы *.po и игнорируйте все переводы/шаблоны по умолчанию. Не забывайте, что шаблоны электронной почты находятся в *.txt, поэтому вы должны вызывать makemessages таким образом: python manage.py makemessages ... --extension html,txt,py.
person illagrenan    schedule 16.05.2017
comment
Хороший ответ, просто чтобы проиллюстрировать его, я размещаю связанную ссылку Django-переводы сторонних приложений - person dani herrera; 24.08.2018