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

如何为TYPO3 12.4.9模板编写语言判断条件?

TYPO3 Fluid 根据语言ID切换内容的正确实现

原代码的问题点

  • 条件表达式写法错误:Fluid中变量和常量比较时,常量不需要用大括号包裹,正确写法是{siteLanguage.languageId} == 0而非{siteLanguage.languageId}=={1}
  • 语法结构错误:Fluid的<f:if>不支持<f:if else>这种嵌套写法,正确分支结构应使用<f:else>,针对多语言ID场景,用<f:switch>会更清晰

解决方案1:使用多层<f:if>判断

<f:if condition="{siteLanguage.languageId} == 0">
    <f:then>
        <div>默认语言(ID:0)</div>
    </f:then>
    <f:else>
        <f:if condition="{siteLanguage.languageId} == 2">
            <f:then>
                <div>语言2(ID:2)</div>
            </f:then>
            <f:else>
                <f:if condition="{siteLanguage.languageId} == 3">
                    <f:then>
                        <div>语言3(ID:3)</div>
                    </f:then>
                    <f:else>
                        <div>其他语言</div>
                    </f:else>
                </f:if>
            </f:else>
        </f:if>
    </f:else>
</f:if>

解决方案2:使用<f:switch>(更简洁推荐)

针对多分支的语言判断,<f:switch>结构更清晰,是更合适的选择:

<f:switch expression="{siteLanguage.languageId}">
    <f:case value="0">
        <div>默认语言(ID:0)</div>
    </f:case>
    <f:case value="2">
        <div>语言2(ID:2)</div>
    </f:case>
    <f:case value="3">
        <div>语言3(ID:3)</div>
    </f:case>
    <f:defaultCase>
        <div>其他语言</div>
    </f:defaultCase>
</f:switch>

注意事项

  • 确保siteLanguage变量在模板中可访问:TYPO3 12.x中该变量默认在前端模板可用,若在后端模块模板中需手动传递
  • 语言ID取值要和系统配置一致,确认系统实际语言ID为0、2、3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:35:01