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 次 |
| 最近记录: |