Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
04.04.2012, 22:49 | #1 |
Продвинутый
|
Неверное отображение в меню переключения языков
Длительное время сайт работал в двуязычном варианте: русский - по-умолчанию, английский. Потребовалось добавить третий язык - турецкий. Конфиг следующий:
Код:
# Alternative Languages [Begin] config { // Setting up the language variable "L" to be passed along with links linkVars = L uniqueLinkVars = 1 sys_language_uid = 0 sys_language_overlay = 1 language = ru locale_all = ru_RU.UTF-8 htmlTag_langKey = ru-RU baseURL = http://domain.ru/ } [globalVar = GP:L=1] config { sys_language_uid = 1 language = en locale_all = en_US.UTF-8 htmlTag_langKey = en-US baseURL = http://domain.com/ } [globalVar = GP:L=2] config { sys_language_uid = 2 sys_language_mode = content_fallback ; 2,1,0 language = tr locale_all = tr_TR.UTF-8 htmlTag_langKey = tr-TR baseURL = http://domain.com.tr/ } [global] # Alternative Languages [End] Если перевод страницы страницы на турецком существует, а элемент страницы нет, то переведенные элементы меню выводятся на турецком, не переведенные и элемент страницы - на русском. Если перевод страницы и элемент страницы на турецком не существует, то переведенные элементы меню выводятся на турецком, не переведенные - на русском, а элемент страницы на английском. А хочется простого, чтобы для турецкого языка отсутствующий контент и меню выводились на английском и только при отсутствии английского варианта на русском. Вот такой вот зоопарк! Где тут собака порылась... Может кто сталкивался?
__________________
Не ошибается тот, кто ничего не делает! Последний раз редактировалось gabdullin; 04.04.2012 в 23:20 Причина: дополнение |
06.04.2012, 13:09 | #3 | |
Продвинутый
|
Цитата:
Код:
sys_language_uid = sys_language_mode = sys_language_overlay = P.S. Кстати, хотелось бы выразить большую благодарность всем, кто приложил свои усилия к переводу документации.
__________________
Не ошибается тот, кто ничего не делает! |
|
06.04.2012, 13:41 | #4 |
Senior Member
|
Может как-то так:
PHP код:
|
06.04.2012, 16:40 | #5 |
Продвинутый
|
Как раз напротив, точка с запятой заставляют эту конструкцию работать, поэтому я склоняюсь к мысли, что ошибка в синтаксисе, как раз в документации.
И эта конструкция более или менее работает когда отсутствует перевод для языка, в этом случае меню на русском (L=0), а элемент страницы (с отсутствуещей локализацией) - на английском (L=1). Но если перевод для страницы присутствует, то меню и элемент страницы (с отсутствуещей локализацией) выводятся на русском (L=0). P.S. Здесь Дмитрий Дулепов доступно объясняет, что мои тайные желания слегка неверны и вряд ли будут реализованы и, похоже, он прав!
__________________
Не ошибается тот, кто ничего не делает! Последний раз редактировалось gabdullin; 06.04.2012 в 18:14 |
06.04.2012, 17:19 | #6 |
Senior Member
|
Честно говоря, в процессе перевода этот режим не пробовал... Поверил на слово создателю документации. Но вот в багтрекере по-моему по этой части: http://forge.typo3.org/issues/19114
|
07.04.2012, 12:24 | #7 |
Senior Member
|
Итак, подытожим, со слов Дмитрия Дулепова, чтобы языковая поддержка работала должным образом, нужно проверить следующие настройки:
- Корректная настройка content_fallback. - Установка config.sys_language_mode на hideIfNotTranslated (или что-то подобное, согласно TSRef), либо в 0 (смотря по тому, что нужно для Вашего сайта). - [ВАЖНО] убедитесь, что "альтернативная языковая запись" (alternative language record) для языка без содержимого не существует. Если же такая запись имеется, то система считает страницу переведенной на соответствующий язык и пытается вывести содержимое на этом языке, а содержимого-то и нет. Замещение содержимого другим языком (content fallback) происходить ТОЛЬКО в том случае, когда нет записи страницы для альтернативного языка (система считает, что страница не переведена). Именно так все и работает, хотя в TSRef говорится: "система всегда работает с выбранным языком, даже если страница не переведена при помощи замещающих записей (альтернативных языковых записей). Таким образом, например, меню остаются переведенными, а содержимое страницы может быть замещено записями на другом языке, определяемом значением ключевого слова". - [ВАЖНО] удостоверьтесь, что в Install tools отключен параметр hidePagesIfNotTranslatedByDefault=0. Если же он включен (= 1), то при удалении альтернативной языковой записи страницы будет получена ошибка 404, при обращении к странице на языке с удаленной альтернативной записью. |
07.04.2012, 21:34 | #8 |
Продвинутый
|
Механизм работы замещения перевода стал понятен.
Единственно осталось не понятным почему для меню это правило не работает?! Почему меню не замещается?!
__________________
Не ошибается тот, кто ничего не делает! |
07.04.2012, 21:40 | #9 |
Senior Member
|
|
07.04.2012, 21:50 | #10 |
Продвинутый
|
Настройки, как приведены выше. Все элементы меню для которых отсутствует перевод выводятся на русском, т.е. языке по-умолчанию, для которых перевод есть, естественно на турецком. Те страницы для которых нет перевода турецкого, но есть английский, выводятся на английском, меню при этом на русском, причем особенно это напрягает для страниц на которых присутствует "Меню подстраниц выбранных страниц с резюме" особенно при отсутствии перевода на турецкий.
Выглядит это так: меню на русском, часть страницы на английском, список вложенных страниц на русском. Слегка не логично. Я вообщем то изначально об этом и писал. Чуть ушел в сторону в процессе обсуждения.
__________________
Не ошибается тот, кто ничего не делает! |
Теги |
мультиязычность, мультиязычный, multidomain, multilanguage |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Двухуровневое меню в разных div | vip1321 | Общие вопросы | 5 | 03.05.2011 10:54 |
Не выводится меню переключения языков :( | Olga25 | TypoScript практикум | 2 | 22.04.2009 12:56 |
Рендеринг меню в таблицу | AleXUnder | Общие вопросы | 3 | 26.03.2009 17:55 |
Разметка каскадного вложенного меню в TemplaVoila | maaboo | Общие вопросы | 7 | 27.07.2008 17:11 |
еще раз меню языков. только текстовое. | (:) | Общие вопросы | 2 | 10.05.2006 16:31 |