我想点击“English”文本来获取该网站的英文版本。在我有图形菜单之前:
lib.tslangmenu = HMENU
lib.tslangmenu {
special = language
special.value = 0,1,2
addQueryString = 1
1 = GMENU
1.NO {
XY = 24,16
5 = IMAGE
5.file = fileadmin/templates/images/deutsch.jpg || fileadmin/templates/images/englisch.jpg || fileadmin/templates/images/kroatisch.jpg
}
1.ACT < 1.NO
1.ACT = 1
1.ACT.wrap = <span class="langhide"> | </span>
1.CUR < 1.ACT
1.CUR = 1
}
到目前为止,这有效。现在我应该将菜单更改为基于文本的菜单。
lib.tslangmenu {
special = language
special.value = 0,1,2
special.normalWhenNoLanguage = 0
addQueryString = 1
1 = TMENU
1.NO = 1
1.NO.stdWrap.override = Deutsch || English || Hrvatski
1.ACT < 1.NO
1.ACT = 1
1.ACT.stdWrap = <span class="langhide"> | </span>
1.CUR < 1.ACT
1.CUR = 1
}
现在,带有 span
的换行被完全忽略。菜单现在显示如下:
我的当前页面名称 英语 Hrvatski
如果我使用德语,则单词 deutsch
会被当前页面标题覆盖。这同样适用于所有其他语言。我还尝试了this blog article中给出的TS 。但目前它的作用是一样的。我该如何让它工作?
最佳答案
第一个错误出现在您的换行中:NO
未换行,因此不会生成跨度(对于 NO 项目)。显示页面标题的问题来自错误的复制。线路
1.ACT < 1.NO
应该是
1.ACT < .1.NO
以防万一,这是我正在使用的 TS-config:
lib.languageMenu = HMENU
lib.languageMenu {
special = language
special.value = 0,1
1 = TMENU
1 {
wrap = <ul class="langMenu">|</ul>
noBlur = 1
NO = 1
NO {
linkWrap = <li class="menu-item normal">|</li>
stdWrap.override = English || Deutsch
stdWrap.htmlSpecialChars = 1
}
ACT < .NO
ACT {
doNotLinkIt = 1
linkWrap = <li class="menu-item active">|</li>
}
# NO + Translation doesn't exist
USERDEF1 < .NO
USERDEF1.doNotLinkIt = 1
# ACT + Translation doesn't exist
USERDEF2 < .ACT
USERDEF2.doNotLinkIt = 1
}
}
问候,
约斯特
关于menu - 通过 Typoscript 基于文本的语言菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13917916/