切换前端语言并不像预期的那样对我有用。到目前为止我所做的:
在根页面,我创建了两种网站语言:德语和英语:
在打字稿模板中,我添加了以下设置,我发现其中大部分分散在网络上:
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
被添加。但网站上的内容仍然是标准的(德语/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 结合使用,会产生如下所示的 url:
German: /startseite/
英语:/2/home/
- 是否可以使用类似的参数
de
and en
而不是语言的数字?
- 如何确保 url 始终包含德语或英语语言参数?
- When on
/startseite/
,对应的链接得到class="active"
,但在/2/home/
,没有链接被标记为活动。怎么解决这个问题呢?
TYPO3和多语言似乎是一个令人困惑的话题,我希望你们中的一些人能够回答我的一些问题。提前致谢!
编辑:感谢丹尼尔找到了解决方案。
这是为了防止其他人遇到同样的问题:
Setup:
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"
}
}
}
真实网址配置:
'preVars' =>
array(
0 =>
array(
'GETvar' => 'L',
'valueMap' =>
array(
'de' => '0',
'en' => '2',
),
'valueDefault' => 'de'
),
),