Переключатель языка Typo3

Я пытаюсь создать переключатель языка с личными изображениями, который позволяет изменить язык веб-сайта во внешнем интерфейсе (я уже определил языки и страницы с альтернативным языком). Я использую отрывок из Typo3 Core Documentation, но он не работает для меня, поэтому я, должно быть, делаю что-то не так... Я добавил в свой шаблон маркер под названием LANGUAGE, который соответствует DIV в верхнем правом углу Основной контейнер, где будут отображаться некоторые представительные флаги языков, доступных для этой страницы.

Вот мой код TS в шаблоне:

config.linkVars = L , type
config.sys_language_uid = 0
config.language = en
config.locale_all = en_EN

[globalVar = GP:L =0]
config.sys_language_uid = 0
config.language = en
config.locale_all = en_EN
config.htmlTag_langKey = en
[global]

[globalVar = GP:L =1]
config.sys_language_uid = 1
config.language = pt
config.locale_all = pt_PT
config.htmlTag_langKey = pt
[global]

[globalVar = GP:L =2]
config.sys_language_uid = 2
config.language = fr
config.locale_all = fr_FR
config.htmlTag_langKey = fr
[global]

[globalVar = GP:L =3]
config.sys_language_uid = 3
config.language = de
config.locale_all = de_DE
config.htmlTag_langKey = de
[global]

page.10.marks.LANGUAGE {

  lib.langMenu = HMENU
  lib.langMenu {
  special = language
  special.value = 0,1,2,3
  special.normalWhenNoLanguage = 0
    1 = GMENU
    1.NO {
     XY = [5.w]+4, [5.h]+4
     backColor = white
     5 = IMAGE
     5.file = fileadmin/Template/images/english.png  || fileadmin/Template/images/portuguese.png  || fileadmin/Template/images/french.png || fileadmin/Template/images/german.png
     5.offset = 2,2
}

}
}

1 ответ

Да, это не может работать, потому что вы определяете элемент lib внутри метки. Вы должны вложить свой код по-другому:

lib.langMenu = HMENU
lib.langMenu {
  [all your stuff from the lang menu]
}

а потом

page.10.marks.LANGUAGE < lib.langMenu

Кстати, если вы также определяете состояния USERDEF1 и USERDEF2 и используете doNotShowLink = 1, то ссылка на язык не отображается, если страница недоступна на этом языке. Это может быть очень полезно, когда не весь ваш контент переведен и вы не хотите использовать запасной вариант:

USERDEF1 = 1
USERDEF1.doNotShowLink = 1

USERDEF2 < .USERDEF1
Другие вопросы по тегам