You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 V11.5.26 Bootstrap_package多语言版权文本配置问题

问题分析

你当前的配置未生效,核心原因是修改了错误的TS路径:你试图直接修改dataProcessing里的theme变量,但Bootstrap Package的ConstantsProcessor是从page.theme这个TS分支读取配置并传递给Fluid的,而非直接在dataProcessing里定义theme变量。

正确解决方案(符合最佳实践)

步骤1:保留自定义扩展的常量配置

你已定义的多语言版权常量配置无需修改:

page {
    theme {
        copyright {
            # cat=bootstrap package: copyright/169/122; type=string; label=Copyright Text Danish
            da = Kører med <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> og <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-pakken</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/
    }
}

步骤2:修改Setup配置,正确覆盖版权文本

替换你之前的Setup代码,直接针对page.theme.copyright.text进行语言分支覆盖:

# 丹麦语站点覆盖版权文本
[siteLanguage("twoLetterIsoCode") == "da"]
    page.theme.copyright.text = {$page.theme.copyright.da}
[END]

# 德语站点覆盖版权文本
[siteLanguage("twoLetterIsoCode") == "de"]
    page.theme.copyright.text = {$page.theme.copyright.de}
[END]

原理说明

Bootstrap Package的ConstantsProcessor会自动读取page.theme下的所有配置,并将其注入到Fluid模板的{theme}变量中。通过在Setup中根据当前站点语言动态设置page.theme.copyright.text的值,就能让{theme.copyright.text}在不同语言站点下显示对应内容,完全符合TYPO3和Bootstrap Package的最佳实践规范。

进阶方案(推荐:语言文件管理文本)

如果希望更贴合TYPO3本地化最佳实践,建议将版权文本放入语言文件,而非直接写在TS常量里:

  1. 在自定义扩展的Resources/Private/Language目录下创建对应语言文件(如locallang.da.xlf、locallang.de.xlf)
  2. 在语言文件中定义版权文本:
    <!-- locallang.da.xlf -->
    <trans-unit id="theme.copyright.text">
        <source>Kører med <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> og <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-pakken</a>.</source>
    </trans-unit>
    
  3. 在Setup中直接引用语言标签:
    page.theme.copyright.text = LLL:EXT:bootstrap_package_ext/Resources/Private/Language/locallang.xlf:theme.copyright.text
    

这种方式无需额外语言条件判断,TYPO3会自动根据当前站点语言加载对应翻译,维护性更强。

内容的提问来源于stack exchange,提问作者webman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 23:03:27