TYPO3 Bootstrap_package 翻译常量

问题描述 投票:0回答:1

我正在使用带有 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
转换为流体变量而无需进一步的逻辑,否则我可以使语言可用于流体并带来逻辑到模板(工作但不干净,本杰明·诺特以最佳实践为荣,所以我渴望找到正确的解决方案)

twitter-bootstrap typo3 typoscript
1个回答
0
投票

您必须在您自己的 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

如果你用你的调试器钩住那里,你会看到版权常量有时会被保存到处理过的数据数组中。 不确定何时将此数组传递给流体模板。但这在这一点上不重要。

© www.soinside.com 2019 - 2024. All rights reserved.