TYPO3 V12 多语言站点特定非默认语言内容显示问题求助
TYPO3 V12 实现区块仅在指定非默认语言显示的解决方案
方法一:直接创建指定语言的区块(推荐)
- 跳过从默认英语版本翻译的步骤,直接在西班牙语语境下创建新的区块记录
- 编辑该区块时,在「访问」标签页的「语言限制」选项中,只勾选「西班牙语」
- 保存后,这个区块只会在西班牙语站点加载显示,其他语言(包括英语)都不会出现它,完全避开回退规则的干扰
方法二:基于翻译调整显示逻辑(适合必须用翻译的场景)
你之前的操作导致无内容,是因为隐藏英语版本后,其他语言回退到默认语言时也拿不到内容。可以这么改:
- 不要隐藏英语版本的区块
- 完成西班牙语的翻译内容编辑后,给英语版本的区块添加显示条件:
- 打开英语区块的编辑界面,找到「显示条件」设置
- 输入条件:
[siteLanguage("languageId")] == 0(这里的0是英语的languageId,根据你的实际配置修改) - 保存后,英语版本只会在默认语言(英语)中隐藏;西班牙语站点会加载翻译后的内容;其他非西班牙语的次要语言因为没有翻译版本,回退到英语版本但被条件隐藏,所以不会显示该区块
方法三:用Typoscript控制渲染
如果区块是通过Typoscript渲染的,直接在脚本里做语言判断:
lib.specialSpanishBlock = CONTENT lib.specialSpanishBlock { table = tt_content select { uidInList = 你的区块UID # 仅选择西班牙语版本(假设西班牙语languageId为2) where = sys_language_uid = 2 } # 仅在西班牙语站点输出 stdWrap.if { value = 2 equals.data = siteLanguage:languageId } }
内容的提问来源于stack exchange,提问作者Paolo Deferre
相关产品推荐
相关产品推荐

