简体   繁体   English

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

[英]TYPO3 typoscript if condition based on site language

My typo3 version is 11.5.10.我的 typo3 版本是 11.5.10。 I have two footer images, one for German and one for English.我有两张页脚图片,一张用于德语,一张用于英语。 I want to render different image for different language.我想为不同的语言渲染不同的图像。 I tried this way for German language.我用这种方式尝试了德语。

[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]

And for English language.而对于英语。

[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]

In both language FE i get English-footer.在两种语言 FE 中,我都会得到英文页脚。 I also tried Different function of siteLanguage like我还尝试了不同的 function 之类的 siteLanguage

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

What i am doing wrong?我做错了什么? Thanks in advance!提前致谢!

I get the following error in Typoscript Object Browser我在 Typoscript Object 浏览器中收到以下错误

Errors and warnings Warning: Line 5696: Object Name String, "[siteLanguage" contains invalid character "[".错误和警告警告:第 5696 行:Object 名称字符串,“[siteLanguage”包含无效字符“[”。 Must be alphanumeric or one of: "_:-/."必须是字母数字或以下之一:“_:-/.” Show details显示详细资料

Warning: Line 5718: Object Name String, "[END]" contains invalid character "[".警告:第 5718 行:Object 名称字符串,“[END]”包含无效字符“[”。 Must be alphanumeric or one of: "_:-/."必须是字母数字或以下之一:“_:-/.” Show details显示详细资料

Warning: Line 5719: Object Name String, "[siteLanguage" contains invalid character "[".警告:第 5719 行:Object 名称字符串,“[siteLanguage”包含无效字符“[”。 Must be alphanumeric or one of: "_:-/."必须是字母数字或以下之一:“_:-/.” Show details显示详细资料

Warning: Line 5741: Object Name String, "[END]" contains invalid character "[".警告:第 5741 行:Object 名称字符串,“[END]”包含无效字符“[”。 Must be alphanumeric or one of: "_:-/."必须是字母数字或以下之一:“_:-/.” Show details显示详细资料

In general, you should avoid conditions whenever possible.一般来说,您应该尽可能避免条件。 Conditions are evil!条件恶劣!

Conditions are checked for each and every page request - before any cached content is touched.检查每个页面请求的条件 - 在触及任何缓存内容之前。 extensive use of conditions will be a performance killer.大量使用条件将成为性能杀手。

For more details, search for "typo3 condition performance"更多详情,请搜索“typo3 条件性能”

Using TypoScript if使用 TypoScript if

A better way would be using the if -function, which is cachable, in combination with getText siteLanguage .更好的方法是结合使用可缓存的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