我正在使用带有 typo3 V11.5.26 的 benjamin knott 的 bootstrap_package 和介绍包,我正在尝试使用多语言但找不到在哪里覆盖
{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}
[END]
[siteLanguage("twoLetterIsoCode") == "de"]
page.10.dataProcessing.1.theme.copyright.text = {$page.theme.copyright.de}
[END]
我可以尝试扩展尚未编写本地化程序的类
ConstantsProcessor
,它只是直接将所有常量page
转换为流体变量而无需进一步的逻辑,否则我可以使语言可用于流体并带来逻辑到模板(工作但不干净,本杰明·诺特以最佳实践为荣,所以我渴望找到正确的解决方案)
您必须在您自己的 TS 常量文件(即在您的提供程序扩展中)或在后端页面模板的常量部分中覆盖此常量。 此处描述: https://docs.typo3.org/p/bk2k/bootstrap-package/13.0/en-us/Configuration/TypoScript/Index.html#page-theme-copyright
如果您需要多种语言的不同版权,您可以使用 TS-Conditions 来实现。此处描述: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html#sitelanguage
之所以找不到分配常量的TS设置,是因为常量是由ConstantProcessor处理的: EXT:bootstrap_package/Classes/DataProcessing/ConstantsProcessor.php
如果你用你的调试器钩住那里,你会看到版权常量有时会被保存到处理过的数据数组中。 不确定何时将此数组传递给流体模板。但这在这一点上不重要。