如何在django会话中显式设置django_language [英] How to explicitly set django_language in django session

查看:122
本文介绍了如何在django会话中显式设置django_language的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 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):


  1. request.path_info 中,如果 i18n_patterns 被使用;

  2. request.session [settings.LANGUAGE_SESSION_KEY] ;

  3. request.COOKIES [settings.LANGUAGE_COOKIE_NAME] ;

  4. request.META ['HTTP_ACCEPT_LANGUAGE'] 中的每种语言,直到接受一个被发现;

  5. settings.LANGUAGE_CODE

  1. in request.path_info, if i18n_patterns are used;
  2. request.session[settings.LANGUAGE_SESSION_KEY];
  3. request.COOKIES[settings.LANGUAGE_COOKIE_NAME];
  4. every language in request.META['HTTP_ACCEPT_LANGUAGE'], until accepted one is found;
  5. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆