Если вы хотите, чтобы ваши пользователи могли указывать язык, убедитесь, что LocaleMiddleware
включено:
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
...
)
Затем Django будет искать языковые предпочтения пользователя в этом порядке (см. get_language_from_request
в trans_real.py ):
- in
request.path_info
, если используются i18n_patterns ;
request.session[settings.LANGUAGE_SESSION_KEY]
;
request.COOKIES[settings.LANGUAGE_COOKIE_NAME]
;
- каждый язык в
request.META['HTTP_ACCEPT_LANGUAGE']
, пока не будет найден принятый;
settings.LANGUAGE_CODE
.
Итак, самый простой способ явно установить язык в сеансе Django - это переписать request.session[settings.LANGUAGE_SESSION_KEY]
:
def someview (request):
...
request.session[settings.LANGUAGE_SESSION_KEY] = 'en'
...