我使用以下 TypoScript 生成语言切换器。它基本上是现有网站的副本,一切正常:
lib.langMenu = HMENU
lib.langMenu {
special = language
addQueryString = 1
special.value = 0,1
special.normalWhenNoLanguage = 0
1 = TMENU
1 {
noBlur = 1
NO = 1
NO {
allWrap = <li>|</li>
stdWrap2.noTrimWrap = | | |
stdWrap.override = Deutsch || English
ATagParams = class="lang-switcher-de" || class="lang-switcher-en"
}
ACT < .NO
ACT = 1
ACT.allWrap = <li class="active">|</li>
wrap = <ul class="pull-right language"><li class="hidden-xs">Language:</li>|</ul>
}
}
现在,我使用以下 RealURL 设置:
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
'_DEFAULT' => array(
'init' => array(
'enableCHashCache' => 1,
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
),
'preVars' => array (
0 => array (
'GETvar' => 'L',
'valueMap' => array (
'en' => '1',
),
'noMatch' => 'bypass',
),
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
),
)
);
问题是,假设我有以下页面,以及它们的德语和英语路径:
- 产品 / 产品
- produktuebersicht / product_overview
当我打开/produkte/produktuebersicht
时,语言切换器会生成一个链接,/en/produkte/produktuebersicht
而不是/en/products/product_overview
. 每个页面都会出现此问题。
它总是采取错误(阅读,当前)语言的路径。我检查了 ID 到路径映射,对我来说看起来不错:
编码缓存有这些条目——但即使我删除它们,问题仍然存在:
奇怪的是菜单本身是正确生成的。那么如何让它链接到语言切换器中正确的 RealURL 呢?