我正在安裝model_translation,rosetta,locale_url。但不起作用改變語言。Django:i18n - 更改語言
我的settings.py:
LANGUAGE_CODE = 'ru'
MODELTRANSLATION_TRANSLATION_REGISTRY = "project.translation"
TRANSLATION_REGISTRY = "project.translation"
ugettext = lambda s: s
LANGUAGES = (
('ru', ugettext(u'Russian')),
('uk', ugettext(u'Ukrainian')),
)
我的語言切換視圖:
def set_language(request):
next = request.REQUEST.get('next', None)
if not next:
next = request.META.get('HTTP_REFERER', None)
if not next:
next = '/'
response = http.HttpResponseRedirect(next)
if request.method == 'GET':
lang_code = request.GET.get('language', None)
if lang_code and check_for_language(lang_code):
if hasattr(request, 'session'):
request.session['django_language'] = lang_code
else:
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
return response
模板:
<a href="{% url set_lang %}?lang=uk&next={{request.path}}">Ukranian</a>
我中間件:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.locale.LocaleMiddleware',
'localeurl.middleware.LocaleURLMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.csrf.CsrfResponseMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
但語言切換不起作用。如果我打開鏈接http://localhost/uk/語言切換,但切換到另一頁時 - 語言恢復爲默認語言。 我該怎麼辦?
好吧,語言的變化工作,但URL始終是「儒」,並沒有更改爲「英國」 =( – Taras 2011-03-31 09:54:38
使用'translation.LANGUAGE_SESSION_KEY'的會話密鑰。 – 2017-01-19 06:17:45