отправка сообщения на почту в зависимости от выбранного языка на сайте
Возник вопрос как можно определить с какой странице пришел пост запрос. Есть на сайте два языка. И в зависимости от того с какой страницы пришел запрос хотелось бы формировать разные сообщения. Сейчас сделал так:
if request.method == 'POST':
if 'ru' in str(request):
mes_mail = "Привет мир!"
send_mail('Регистрация', mes_mail,
settings.EMAIL_HOST_USER,
mail,
fail_silently=False)
elif 'en' in str(request):
mes_mail = "Hellow word!"
send_mail('Registers', mes_mail,
settings.EMAIL_HOST_USER,
mail,
fail_silently=False)
но это явно нехорошо. Пытался сделать через from django.utils.translation import gettext_lazy as _
Но строка f'Ваша регистрация на {session_date_visit} в {session_time_visit} подтверждена. спасибо.'
не переводится на английски.
mes = _(f'Ваша регистрация на {session_date_visit} в {session_time_visit} подтверждена. спасибо.')
в файле django.po создается
#: .\registers\views.py:127
#, python-brace-format
msgid ""
"Ваша регистрация на {session_date_visit} в {session_time_visit} "
"подтверждена. спасибо."
msgstr "Your registration for {session_date_visit} at {session_time_visit} "
"confirmed. thanks."
но в сообщении не переводится.Если использую обычную строку(mes =_('привет')) то все переводится и работает корректно. Как правильно создать перевод для f-строки ?
Ответы (1 шт):
на данный момент реализовал так
mes = str(_('Ваша регистрация на ')) + session_date_visit + str(_(' в ')) + session_date_visit + str(_(' подтверждена. спасибо.'))
но все же хотелось бы узнать как реализовать с использованием f-строки