我需要设置用户语言2例:在语言用户登录
- 用户登录(Django的检查他的语言字段值用户配置领域,并设置适当的郎)
- 用户在“用户首选项”页面输入lang。
我试过用 “user_logged_in” 信号接收器
from django.utils import translation
from django.dispatch import receiver
from django.contrib.auth.signals import user_logged_in
@receiver(user_logged_in)
def setlang(sender, **kwargs):
translation.activate(kwargs['user'].get_profile().language)
kwargs['request'].session['django_language'] = translation.get_language()
,直到我重新启动我的Django的情况下也能正常工作。虽然会话存活(无需再次登录)网站被显示在settings.LANGUAGE指定
我认为同样的语言适用于情况#2(用户喜好保存表单())
是啊...看起来像中间件是唯一的出路..但为什么不从会话中读取语言? settings.LANGUAGE是django“搜索lang”优先级列表中的最后一个。谢谢 – Robert
修复:'django.middleware.locale.LocaleMiddleware'被禁用...现在它的工作原理没有translation.activate() – Robert