Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
bunyan
цитировать
Зарегистрирован: 15 Ноя 2007 14:57:37 Сообщения: 17
|
Добавлено: 16 Ноя 2007 07:31:33 Заголовок сообщения: Проблема с L10N - язык всегда определяется автоматически |
|
|
В beforeFilter (AppController) определяю язык из url, записываю в конфиг:
Configure::write('Config.language', $urlLang);
В \app\locale\ есть два файла с локализацией :
\eng\LC_MESSAGES\default.po
\rus\LC_MESSAGES\default.po
Проблема в том, что даже если в url передается язык "ru", страницы все равно отображаются с английскими строками, точнее, они на том языке, который указан в браузере, т.е. срабатывает автоопределение. Если поставить в браузере русский, то страницы будут на русском (то есть файлы с локализацией читаются), но нажатие на ссылку изменения языка (English) ни к чему не приведет.
Получается, что изменение Config.language, которое должно иметь более высокий приоритет, чем автоопределение, ничего не дает. |
|
Вернуться к началу |
|
|
SkieDr
цитировать
Зарегистрирован: 13 Ноя 2007 12:13:38 Сообщения: 16
|
Добавлено: 16 Ноя 2007 08:42:00 Заголовок сообщения: |
|
|
Вызывай из beforeFilter что то вроде
function setL10nLocale($language) {
$I18n =& I18n::getInstance();
$I18n->l10n->get($language);
$I18n->locale=$language;
} |
|
Вернуться к началу |
|
|
bunyan
цитировать
Зарегистрирован: 15 Ноя 2007 14:57:37 Сообщения: 17
|
Добавлено: 16 Ноя 2007 09:25:48 Заголовок сообщения: |
|
|
SkieDr, огромное спасибо!
Заработало, строку
$I18n->locale=$language;
заменил на
$I18n->l10n->locale=$I18n->l10n->__l10nCatalog[$language]['locale'];
Интересно, а почему только так? Везде ведь пишут, что нужно просто сохранять Config.language? _________________ Блог о CakePHP |
|
Вернуться к началу |
|
|
|