如何用方面替换TYPO3 9中的数据= TSFE:sys_language_uid

时间:2019-01-15 09:17:15

标签: typo3 typoscript typo3-9.x

我们已经使用了一个印刷文字配置来告诉CSS我们是哪种语言,并在类标签中添加了一个类名language-x

由于Typoscript中似乎没有关于如何执行此操作的任何文献,因此我还没有做很多尝试来解决这个问题。

为此,我们使用了以下文字:

// Language
    30 = TEXT
    30 {
        data = TSFE:sys_language_uid
        noTrimWrap = | language-||
    }

现在会引发一个E_USER_DEPRECATED

Property $TSFE->sys_language_uid is not in use anymore as this information is now stored within the language aspect

先谢谢了。 问候 托米

3 个答案:

答案 0 :(得分:4)

自TYPO3 9.5.3起,还可以使用TypoScript安装程序访问当前的站点语言配置:

page.10 = TEXT
page.10.data = siteLanguage:navigationTitle
page.10.wrap = This is the title of the current site language: |

page.10 = TEXT
page.10.dataWrap = The current site language direction is {siteLanguage:direction}

  

有关该功能的详细文档,请参见https://docs.typo3.org/typo3cms/extensions/core/latest/Changelog/9.5.x/Feature-86973-TypoScriptGetTextPropertySiteLanguage.html

答案 1 :(得分:2)

查看文档:

https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/SiteHandling/UseSiteInTypoScript.html

https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/SiteHandling/UseSiteInConditions.html#sitehandling-inconditions

我认为您可以使用以下条件:

[siteLanguage("typo3Language") == "it"]
  page.bodyTag = <body class="language-it">
[global]

请注意,TYPO3 9.5已经将当前语言放入<html>标记中,例如:<html lang="it">

因此,您可以在CSS中使用attribute selector(非常受支持):

html[lang="it"]{
/*css code here*/
}

答案 2 :(得分:0)

@ josef-glatz,正如您所建议的,我认为这也可行。

在Thomi的情况下,我建议使用:

// Language
    30 = TEXT
    30 {
        data = sitelanguage:languageId
        noTrimWrap = | language-||
    }

重要说明:仅自TYPO3 9.5.4 起可用,因为Georg Ringer仅在2018年12月28日解决了该问题。