Форум сайта python.su
Вызываю по очереди шаблоны унаследованные от базового и имеющие одинаковые блоки. Представления разные, но там ничего с request.LANGUAGE_CODE не делается. В одном шаблоне он возвращает ‘ru’, в другом возвращает пустую строку, переключаюсь на первую, опять ‘ru’. При переключении никаких параметров или действий для изменения языка не делается.
Если же в первой странице попытаться устанавливать язык через GET запрос - /i18n/setlang/?language=en
то ничего не происходит, request.LANGUAGE_CODE не меняется с ‘ru’ на ‘en’
Урл стандартный
(r'^i18n/', include('django.conf.urls.i18n')),
…
тэкс…
1)контекст процессор добавил - ‘django.core.context_processors.request’,
2)параметр RequestContext во все render_to_response добавил
render_to_response(“index.html”, locals(),context_instance=RequestContext(request))
3), import сделал.
from django.template.context import RequestContext
Вообще ничего не изменилось. Что еще забыл?
Отредактировано (Сен. 8, 2009 18:45:38)
Офлайн
/i18n/setlang/?language=en делать надо через post запрос, смотри сорцы
'django.middleware.locale.LocaleMiddleware' подключил?
Офлайн
slav0nicВот тут http://djbook.ru/ch18s05.html пишут, что GET должен быть, опять врут. Эх через POST немного больше писать придется.
/i18n/setlang/?language=en делать надо через post запрос, смотри сорцы
'django.middleware.locale.LocaleMiddleware' подключил?
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',
)
Офлайн
slav0nicСпасибо! POST работает. Теперь на первой странице языки переключаются. Эта часть вопроса решена.
/i18n/setlang/?language=en делать надо через post запрос, смотри сорцы
Отредактировано (Сен. 8, 2009 19:38:16)
Офлайн
RequestContext передаётся в той вьюхе? в доках же написано
If you don't use the RequestContext extension, you can get those values with three tags:
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_current_language_bidi as LANGUAGE_BIDI %}
Офлайн
slav0nicЭто я читал.
RequestContext передаётся в той вьюхе? в доках же написаноIf you don't use the RequestContext extension, you can get those values with three tags:
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_current_language_bidi as LANGUAGE_BIDI %}
Отредактировано (Сен. 8, 2009 19:55:31)
Офлайн
И снова непонятки. Не воспринимаются установки settings по умолчанию.
LANGUAGES = (
('en', _('English')),
('ru', _('Russian')),
)
DEFAULT_LANGUAGE = 2
LANGUAGE_CODE = 'ru'
def index(request):
print request.LANGUAGE_CODE
translation.activate(request.LANGUAGE_CODE)
urls.py
from django.conf import settings
from django.conf.urls.defaults import *
from django.utils import translation
translation.activate(settings.LANGUAGE_CODE)
Отредактировано (Ноя. 20, 2009 15:47:01)
Офлайн
? :( Пепельницу вытряхивал, стекла протирал, ничего не помогает…
Отредактировано (Ноя. 20, 2009 14:33:25)
Офлайн
Как вы проводили отладку? Какие были результаты? Какое окружение?
Офлайн
DaevaornПо данной проблеме никак, т.к. не понятно какие ошибки и где искать. Только документацию и гугл читал. Дефолтная настройка устанавливается фреймворком на основе settings. Окружение? Что имеется в виду? Windows, свежий Django, Chery, Python 2.5
Как вы проводили отладку? Какие были результаты? Какое окружение?
Отредактировано (Ноя. 20, 2009 16:53:13)
Офлайн