Ana*_* Rr 34
如果您希望用户能够指定语言,请确保LocaleMiddleware
已启用:
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
...
)
Run Code Online (Sandbox Code Playgroud)
然后Django会寻找的顺序(见用户的语言偏好get_language_from_request
在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
.因此,在Django会话中显式设置语言的最简单方法是重写request.session[settings.LANGUAGE_SESSION_KEY]
:
def someview (request):
...
request.session[settings.LANGUAGE_SESSION_KEY] = 'en'
...
Run Code Online (Sandbox Code Playgroud)
Vla*_*ruz 20
如果你将使用一个版本>= Django 1.8
.这是我们如何使用它:
from django.utils.translation import LANGUAGE_SESSION_KEY
def someview (request):
...
request.session[LANGUAGE_SESSION_KEY] = 'en'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11532 次 |
最近记录: |