如何在TYPO3 8 LTS中移除内容/页面的「Translate to」标识
解决TYPO3 8 LTS移除翻译内容「[Translate to XY]」字符串的问题
嘿,我刚好踩过这个坑!TYPO3 8 LTS的TCA配置逻辑和旧版本不一样,直接沿用ext_tables.php里的老写法肯定行不通,我给你整理了靠谱的解决步骤:
1. 用官方推荐的TCA覆盖方式
TYPO3 8开始不再建议直接在ext_tables.php里修改$TCA,而是通过自定义扩展的TCA Override文件来调整配置。你需要先做这些准备:
- 打开你的自定义扩展目录,创建(如果没有的话)
Configuration/TCA/Overrides/文件夹 - 针对内容元素(tt_content表)创建
tt_content.php文件,针对页面(pages表)创建pages.php文件
2. 编写具体的覆盖代码
针对内容元素(tt_content)的字段:
在tt_content.php里写入以下代码:
<?php defined('TYPO3_MODE') || die(); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::overrideTca( 'tt_content', [ 'columns' => [ 'header' => [ 'l10n_mode' => '', ], 'bodytext' => [ 'l10n_mode' => '', ], // 如果你还有其他需要移除提示的字段(比如subheader、header_link等),都可以在这里添加 ], ] );
针对页面(pages)的字段:
在pages.php里写入以下代码:
<?php defined('TYPO3_MODE') || die(); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::overrideTca( 'pages', [ 'columns' => [ 'title' => [ 'l10n_mode' => '', ], 'subtitle' => [ 'l10n_mode' => '', ], // 按需添加其他页面字段 ], ] );
3. 必做步骤:清除全部缓存
修改完TCA配置后,一定要去TYPO3后端的「清除缓存」菜单里选择清除全部缓存(包括配置缓存),否则新的配置根本不会生效!
原理说明
旧版本直接赋值$TCA的方式,在TYPO3 8的TCA加载机制里已经失效了。我们用ExtensionManagementUtility::overrideTca()方法,能正确把自定义配置合并到系统默认TCA中——把l10n_mode设为空字符串,就会关闭系统默认的「[Translate to XY]」前缀提示行为。
内容的提问来源于stack exchange,提问作者tah
相关产品推荐
相关产品推荐

