Как заменить данные = TSFE: sys_language_uid в TYPO3 9 аспектами - PullRequest
0 голосов
/ 15 января 2019

У нас была конфигурация опечаток, чтобы сообщить CSS, на каком языке мы находимся, добавив класс в тег body с именами классов 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

Заранее спасибо. С уважением Thomi

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Начиная с 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 для подробной документации о функциональности.

0 голосов
/ 15 января 2019

@ josef-glatz, как вы предложили, я думаю, что это тоже работает.

В случае с Томи я предлагаю использовать:

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

ВАЖНОЕ ПРИМЕЧАНИЕ: Это доступно только после TYPO3 9.5.4 , поскольку Георг Рингер только исправил проблему 28.12.2018.

0 голосов
/ 15 января 2019

Глядя на документацию:

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:

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