È possibile ottenere il codice lingua corrente (o codice) in un modello di fluido TYPO3?TYPO3 Fluid Template ottiene il codice lingua
Nel frattempo ho trovato un'altra soluzione con un aiutante PRESENTI 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();
}
}
?>
che uso nel modello fluido come segue.
<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>
Molto semplice ed elegante rispetto a quello che ho trovato - grazie. –
Vorrei sconsigliare questo tipo di incarico, porta con sé alcuni problemi. Innanzitutto, utilizza riferimenti hard-coded agli UID della lingua di sistema che potrebbero interrompersi se trasferiti su un altro sito. Secondo, se hai bisogno di tradurre etichette, dovresti usare 'f: translate'. Forse una strategia migliore è leggere il valore "nome dell'icona della bandiera" dalla lingua e utilizzarlo in un nome di un'etichetta tradotta, ad es. 'LLL: EXT: myext/Resources/Private/Language/locallang.xml: languages.de' e' .en' ecc. –