我需要設置用戶語言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