我正在使用Typo3 v6.1并尝试设置多语言网站。问题是我无法更改默认语言标签。我做错了什么?
###################################################
# language handling
###################################################
mod.SHARED {
defaultLanguageFlag = de
defaultLanguageLabel = Deutsch
}
config {
sys_language_uid = 0
language = de
locale_all = de_DE.UTF-8
htmlTag_langKey = de_DE
}
[globalVar = GP:L = 1]
config {
sys_language_uid = 1
language = en
locale_all = en_GB.UTF-8
htmlTag_langKey = en_GB
}
[end]
所以语言设置有效,我可以本地化页面,但是默认语言(uid = 0)仍然显示为Default而不是Deutsch。我想也许我正在使用旧的设置,我尝试通过Typo3核心调试,看起来这些设置仍然在几个地方使用,这里是其中之一:
#/typo3/sysext/backend/Classes/Configuration/TranslationConfigurationProvider.php
$languageIconTitles[0] = array(
'uid' => 0,
'title' => strlen($modSharedTSconfig['properties']['defaultLanguageLabel']) ? $modSharedTSconfig['properties']['defaultLanguageLabel'] . ' (' . $GLOBALS['LANG']->sl('LLL:EXT:lang/locallang_mod_web_list.xlf:defaultLanguage') . ')' : $GLOBALS['LANG']->sl('LLL:EXT:lang/locallang_mod_web_list.xlf:defaultLanguage'),
'ISOcode' => 'DEF',
'flagIcon' => strlen($modSharedTSconfig['properties']['defaultLanguageFlag']) ? 'flags-' . $modSharedTSconfig['properties']['defaultLanguageFlag'] : 'empty-empty'
);
问题是Typo3似乎正在跳过我的设置(虽然我确实在对象浏览器中看到它们)。 之后我也尝试使用旧版本的Typo3 - 4.7.12并且它也没有成功((
更新:根据 biesior 的回答,我需要将该代码添加到PageTS配置中。这适用于Typo3版本(4. *和6. *),但对于了解this concepts也很重要。并且有可能代表扩展名change the default(即全局)PageTS配置:
# /ext_localconf.php of your typo3 v6.* extension:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
'mod.SHARED {
defaultLanguageFlag = de.gif
defaultLanguageLabel = Deutsch
}'
);
或
# /ext_localconf.php of your typo3 v4.* extension:
t3lib_extMgm::addPageTSConfig(
...
);
答案 0 :(得分:4)
此代码需要放在PageTS
(根页面)而不是TypoScript
模板中
mod.SHARED {
defaultLanguageFlag = de
defaultLanguageLabel = Deutsch
}
只需编辑根页面的属性,转到Resources
标签,然后将其粘贴到Page TSConfig
字段即可。保存后不要忘记清除配置缓存。
答案 1 :(得分:1)
你应该把mod.shared东西放在页面ts(编辑根页面属性)而不是设置ts。
/布赖恩