如何在django会话中显式设置django_language [英] How to explicitly set django_language in django session
问题描述
如何在 Django
会话中显式设置 django_language
How to explicitly set django_language
in Django
session?
非常感谢...
推荐答案
如果您希望用户能够指定语言,请确保 LocaleMiddleware
已启用:
If you want your users to be able to specify language, make sure that LocaleMiddleware
is enabled:
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
...
)
然后,Django将按照该顺序查找用户的语言偏好(请参阅 get_language_from_request /blob/master/django/utils/translation/trans_real.pyrel =noreferrertitle =django / utils / translation / trans_real.py> trans_real.py ):
Then Django will look for the user's language preference in that order (see get_language_from_request
in trans_real.py):
- 在
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
。
- in
request.path_info
, if i18n_patterns are used; request.session[settings.LANGUAGE_SESSION_KEY]
;request.COOKIES[settings.LANGUAGE_COOKIE_NAME]
;- every language in
request.META['HTTP_ACCEPT_LANGUAGE']
, until accepted one is found; settings.LANGUAGE_CODE
.
所以在Django会话中明确设置语言的最简单的方法是重写 request.session [settings.LANGUAGE_SESSION_KEY]
:
So the most straightforward way to set language explicitly in Django session is to rewrite request.session[settings.LANGUAGE_SESSION_KEY]
:
def someview (request):
...
request.session[settings.LANGUAGE_SESSION_KEY] = 'en'
...
这篇关于如何在django会话中显式设置django_language的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!