Изменение языка в пользовательском промежуточном ПО
Я хочу изменить язык в моем пользовательском промежуточном ПО. По какой-то причине приведенный ниже код не работает.
class LanguageMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print('set language to spanish...')
translation.activate("es")
request.LANGUAGE_CODE = "es"
response = self.get_response(request)
translation.deactivate()
return response
settings.py
LANGUAGES = (
("en", "English"),
("es", "Spanish"),
)
LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),)
USE_I18N = True
USE_L10N = True
LANGUAGE_CODE = "en"
если я изменю LANGUAGE_CODE в настройках на "es", я получу испаноязычные ответы API, но я хотел бы иметь возможность изменять его программно в моем промежуточном ПО.
Это работает для меня:
def set_lang_middleware(get_response):
def middleware(request):
translation.activate("es")
response = get_response(request)
return response
return middleware
Не забудьте добавить ваше промежуточное ПО в settings.MIDDLEWARE.