繁体   English   中英

TYPO3 排版如果基于站点语言的条件

[英]TYPO3 typoscript if condition based on site language

我的 typo3 版本是 11.5.10。 我有两张页脚图片,一张用于德语,一张用于英语。 我想为不同的语言渲染不同的图像。 我用这种方式尝试了德语。

[siteLanguage("locale") == "de_DE"]
   50 = COA
      50 {
        wrap = <div class="footer__item col-sm-6 col-md-3 img-custom">|</div>  
        stdWrap {
          typolink {
            parameter = {$myconstant.footer-logo-link-4}
            parameter.noTrimWrap = || _blank|
          }
        }

        50 = IMAGE
        50 {
          file = user_uploads/german-footer.png

          layoutKey = srcset
          layout.srcset {
            element = <img WIDTH###" SOURCECOLLECTION###" ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###>              }
        }
      }
[end]

而对于英语。

[siteLanguage("locale") == "en_US"]
   50 = COA
      50 {
            wrap = <div class="footer__item col-sm-6 col-md-3 img-custom">|</div>  
            stdWrap {
              typolink {
                parameter = {$myconstant.footer-logo-link-5}
                parameter.noTrimWrap = || _blank|
              }
            }

            50 = IMAGE
            50 {
              file = user_uploads/english-footer.png

              layoutKey = srcset
              layout.srcset {
                element = <img WIDTH###" SOURCECOLLECTION###" ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###>              }
            }
          }
    [end]

在两种语言 FE 中,我都会得到英文页脚。 我还尝试了不同的 function 之类的 siteLanguage

  1. 站点语言(“导航标题”)
  2. 站点语言(“语言环境”)
  3. siteLanguage("hreflang") 等。

我做错了什么? 提前致谢!

我在 Typoscript Object 浏览器中收到以下错误

错误和警告警告:第 5696 行:Object 名称字符串,“[siteLanguage”包含无效字符“[”。 必须是字母数字或以下之一:“_:-/.” 显示详细资料

警告:第 5718 行:Object 名称字符串,“[END]”包含无效字符“[”。 必须是字母数字或以下之一:“_:-/.” 显示详细资料

警告:第 5719 行:Object 名称字符串,“[siteLanguage”包含无效字符“[”。 必须是字母数字或以下之一:“_:-/.” 显示详细资料

警告:第 5741 行:Object 名称字符串,“[END]”包含无效字符“[”。 必须是字母数字或以下之一:“_:-/.” 显示详细资料

一般来说,您应该尽可能避免条件。 条件恶劣!

检查每个页面请求的条件 - 在触及任何缓存内容之前。 大量使用条件将成为性能杀手。

更多详情,请搜索“typo3 条件性能”

使用 TypoScript if

更好的方法是结合使用可缓存的if函数和getText siteLanguage

page.10 = TEXT
page.10.data = siteLanguage:languageId
page.10.stdWrap.wrap = <p>siteLanguage:languageId=|</p>

page.20 = IMAGE
page.20 {
  if.value = 1
  if.equals.data = siteLanguage:languageId
  file = EXT:example/Resources/Public/typo3_package_de.png
}

page.30 = IMAGE
page.30 {
  if.value = 0
  if.equals.data = siteLanguage:languageId
  file = EXT:example/Resources/Public/typo3_package_en.png
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM