Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Веб-разработка и фреймворки > Не работает settings.LANGUAGE_CODE по умолчанию.


Автор: JavaCraft 20.11.2009, 16:52
Код

TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'multilingual.context_processors.multilingual',
)

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.locale.LocaleMiddleware',
'multilingual.middleware.DefaultLanguageMiddleware',
)

USE_I18N = True

_ = lambda s: s
LANGUAGES = (
('en', _('English')),
('ru', _('Russian')),
)
DEFAULT_LANGUAGE = 2
LANGUAGE_CODE = 'ru'



URL для домашней страницы:
Код

(r'^$','app.views.index')


Однако, во вьюхе:

Код

def index(request):
    print request.LANGUAGE_CODE
    translation.activate(request.LANGUAGE_CODE)


получаем 'en'

При выборе языка вручную(<form name="FormSetLanguage" action="/i18n/setlang/" method="post" >) на данной странице, те же самые установки устанавливаются правильно(request.LANGUAGE_CODE равен 'ru') и держатся до перелогина.
Каждый раз при этом вызывается вьюха index c формой логина.

При перелогине, по истечении времени жизни сессии, request.LANGUAGE_CODE опять 'en', хотя в сессии был 'ru'. Естественно, при перелогине настройки языка из-за этого сбиваются.

При первом входе на домашнюю страницу язык должен быть установлен согласно settings.LANGUAGE_CODE.
Почему не воспринимаются настройки settings по умолчанию и почему они сбиваются по истечении времени жизни сессии?

Автор: Ch0bits 7.12.2009, 12:11
Надо так:
Код

LANGUAGE_CODE = 'ru-RU'


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)