язык набора в рамках представления django

фон: представление называют, когда платежный сервис проверяет с помощью ping-запросов назад платежный результат негласно - afterwhich я должен послать электронное письмо на правильном языке для подтверждения оплаты и так далее. Я могу вернуть код языка в запросе с платежного сервера и хотел бы использовать это наряду с i18n системами Django для определения который язык послать мое электронное письмо в.

Таким образом, я должен установить язык своего django приложения из представления. И затем сделайте мой шаблонный рендеринг и пользование электронной почтой все в одном идут.

установка request.session['django_language'] = lang только производит следующее представление, когда я тестирую.

Там какой-либо другой путь состоит в том, чтобы сделать это?

С наилучшими пожеланиями,

Парень

49
задан Guy Bowden 25 February 2010 в 09:03
поделиться

1 ответ

Цитирую части из Locale Middleware Django (django. middleware.locale.LocaleMiddleware):

from django.utils import translation

class LocaleMiddleware(object):
    """
    This is a very simple middleware that parses a request
    and decides what translation object to install in the current
    thread context. This allows pages to be dynamically
    translated to the language the user desires (if the language
    is available, of course).
    """

    def process_request(self, request):
        language = translation.get_language_from_request(request)
        translation.activate(language)
        request.LANGUAGE_CODE = translation.get_language()

Важным является translation.activate(language).

79
ответ дан 7 November 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: