我使用的bootstrap_package的本杰明诺特与TYPO3 V11.5.26和介绍包,我试图使用它的多语言,但无法找到在哪里覆盖{theme.copyright.text}
这是在fluidtemplate中使用...
我发现它曾经在constants.typoscript
中定义为page.theme.copyright.text
,但在设置中没有任何地方将常量分配给流体中使用的变量。
到目前为止,这还没有工作:在我自己的扩展中,我添加了配置常量:
page {
theme {
copyright {
# cat=bootstrap package: copyright/169/122; type=string; label=Copyright Text Danisch
da = Kører med <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> und <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-pakke</a>.
# cat=bootstrap package: copyright/169/123; type=string; label=Copyright Text German
de = Läuft mit <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> und <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-Paket</a>.
}
}
fluidtemplate {
# cat=bootstrap package: templates/100/100; type=string; label=Layout Root Path: Path to layouts
layoutRootPath = EXT:bootstrap_package_ext/Resources/Private/Layouts/Page/
# cat=bootstrap package: templates/100/110; type=string; label=Partial Root Path: Path to partials
partialRootPath = EXT:bootstrap_package_ext/Resources/Private/Partials/Page/
# cat=bootstrap package: templates/100/120; type=string; label=Template Root Path: Path to templates
templateRootPath = EXT:bootstrap_package_ext/Resources/Private/Templates/Page/
}
}
以及设置中变量的覆盖:
[siteLanguage("twoLetterIsoCode") == "da"]
page.10.dataProcessing.1.theme.copyright.text = {$page.theme.copyright.da}
[siteLanguage("twoLetterIsoCode") == "de"]
page.10.dataProcessing.1.theme.copyright.text = {$page.theme.copyright.de}
[END]
我可以尝试扩展类ConstantsProcessor
,它还没有本地化编程,它只是简单地将所有常量page
转换为fluid的变量,而没有进一步的逻辑,否则我可以使语言可用于fluidtemplate并将逻辑带到模板中(工作但不干净,Benjamin Knott以最佳实践为荣,所以我热衷于找到正确的解决方案)
1条答案
按热度按时间lxkprmvk1#
你必须在你自己的TS常量文件中(在你的提供者扩展名中)或者在后端的页面模板中的常量部分覆盖这个常量。描述如下:https://docs.typo3.org/p/bk2k/bootstrap-package/13.0/en-us/Configuration/TypoScript/Index.html#page-theme-copyright
如果你需要不同的版权为多种语言,你可以努力通过使用TS条件。描述如下:https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html#sitelanguage
您找不到分配常量的TS设置的原因是常量由ConstantProcessor处理:EXT:bootstrap_package/Classes/DataProcessing/ConstantsProcessor.php
如果你用你的调试器挂在那里,你会看到版权常量将被保存到processedData-array中。不确定这个数组是什么时候传递给流体模板的。但现在这不重要。
示例(适应您的代码)
TypoScript常量: