Возможно ли получить текущий языковой ключ (или код) в шаблоне Fluid TYPO3?TYPO3 Fluid Template получить код языка
В то же время я нашел другое решение, используя помощник вида найдено here:
<?php
class Tx_AboUnitReservation_ViewHelpers_LanguageViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
/**
* Get the current language
*/
protected function getLanguage() {
if (TYPO3_MODE === 'FE') {
if (isset($GLOBALS['TSFE']->config['config']['language'])) {
return $GLOBALS['TSFE']->config['config']['language'];
}
} elseif (strlen($GLOBALS['BE_USER']->uc['lang']) > 0) {
return $GLOBALS['BE_USER']->uc['lang'];
}
return 'en'; //default
}
/**
* Return current language
* @return string
*/
public function render() {
return $this->getLanguage();
}
}
?>
, который я использую в шаблоне жидкости следующим образом.
<f:alias map="{isGerman: 'de'}">
<f:if condition="{aboUnitReservation:language()} == {isGerman}">
<script type="text/javascript" src="{f:uri.resource(path:'js/jquery.ui.datepicker-de-CH.js')}"></script>
</f:if>
</f:alias>
Очень простой и элегантный по сравнению с тем, что я нашел - спасибо. –
Я бы посоветовал против такого рода назначения, он несет в себе несколько проблем. Во-первых, он использует жестко закодированные ссылки на UID системного языка, которые, вероятно, будут разбиты, если они будут перенесены на другой сайт. Во-вторых, если вам нужно перевести метки, вы должны использовать 'f: translate'. Возможно, лучшей стратегией является считывание значения имени значка «флаг» с языка и использование этого имени имени переведенной метки, например. 'LLL: EXT: myext/Resources/Private/Language/locallang.xml: languages.de' и' .en' и т. Д. –