切换前端语言对我不起作用。到目前为止我做了什么:
在根页面,我创建了两种网站语言,德语和英语:
在typoscript模板中,我添加了以下设置,我发现大部分内容散布在网络上:
config {
tx_realurl_enable = 1
simulateStaticDocuments = 0
sys_language_uid = 0
language = de
locale_all = de_DE
htmlTag_langKey = de
linkVars := addToList(L)
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = 1
}
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
config.htmlTag_langKey = de
[global]
[globalVar = GP:L = 2]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
config.htmlTag_langKey = en
[global]
在一个页面上,我为该页面创建了一个新的翻译并添加了一些内容。
左边是标准语言(在这种情况下是德语),里面装满了lorem ipsum。在右边是新语言(英语),其中包含一些不同的内容,只是为了看到一些效果。
现在,当我点击英文专栏上方的小预览图标时,我需要index.php?id=3&L=2
,表示已添加L=2
。但网站上的内容仍然是标准(german / lorem ipsum)内容。我哪里做错了?
另外:我在前端添加了一个菜单,让用户在语言之间切换:
languageMenu = HMENU
languageMenu {
special = language
special.value = 0,2
1 = TMENU
1 {
wrap = <ul id="language"> | </ul>
NO = 1
NO {
wrapItemAndSub = <li> | </li>
stdWrap.override = deutsch || english
}
ACT < .NO
ACT {
ATagParams = class="active"
}
}
}
结合realurl,这会产生如下网址:
德语:/startseite/
英语:/2/home/
de
和en
之类的参数代替语言的数字?/startseite/
时,相应的链接会获得class="active"
,但在/2/home/
上,没有任何链接被标记为有效。怎么能修好?TYPO3和多语言似乎是一个令人困惑的话题,我希望你们中的一些人可以回答我的一些问题。提前谢谢!
以防万一其他人有同样的问题:
设定:
config {
tx_realurl_enable = 1
simulateStaticDocuments = 0
sys_language_uid = 0
language = de
locale_all = de_DE
htmlTag_langKey = de
linkVars := addToList(L)
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = 1
}
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
config.htmlTag_langKey = de
[global]
[globalVar = GP:L = 2]
config.sys_language_uid = 2
config.language = en
config.locale_all = en_EN
config.htmlTag_langKey = en
[global]
[...]
languageMenu = HMENU
languageMenu {
special = language
special.value = 0,2
1 = TMENU
1 {
wrap = <ul id="language"> | </ul>
NO = 1
NO {
wrapItemAndSub = <li> | </li>
stdWrap.override = deutsch || english
}
ACT < .NO
ACT {
ATagParams = class="active"
}
}
}
RealUrl conf:
'preVars' =>
array(
0 =>
array(
'GETvar' => 'L',
'valueMap' =>
array(
'de' => '0',
'en' => '2',
),
'valueDefault' => 'de'
),
),
答案 0 :(得分:3)
1)+ 2) 在realURL配置中使用valueMap:
'preVars' =>
array(
0 =>
array(
'GETvar' => 'L',
'valueMap' =>
array(
'de' => '0',
'en' => '2'
),
)
)
3)尽量让你的L param与sys_language_uid保持同步。 所以对于englisch使用:
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
config.htmlTag_langKey = en
[global]