Czy jest możliwe pobranie aktualnego klucza językowego (lub kodu) w szablonie płynu TYPO3?Szablon płynu TYPO3 uzyska kod języka
W międzyczasie mam znaleźć inne rozwiązanie przy użyciu widoku pomocnika znaleźć 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();
}
}
?>
którego używam w szablonie płynu w następujący sposób.
<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>
Bardzo prosty i elegancki w porównaniu do tego, co znalazłem - dziękuję. –
Odradzam tego typu zadania, niesie to ze sobą kilka problemów. Po pierwsze, używa on mocno zakodowanych odniesień do UIDów w języku UID, które prawdopodobnie ulegną zniszczeniu w przypadku przeniesienia do innej witryny. Po drugie, jeśli musisz tłumaczyć etykiety, powinieneś używać 'f: translate'. Być może lepszą strategią jest odczytanie wartości "flag icon name" z języka i użycie jej w nazwie przetłumaczonej etykiety, np. 'LLL: EXT: myext/Resources/Private/Language/locallang.xml: languages.de' i' .en' itd. –