Ist es möglich, den aktuellen Sprachenschlüssel (oder Code) in einer TYPO3 Fluid Vorlage zu erhalten?TYPO3 Fluid Template erhält Sprachcode
In der Zwischenzeit habe ich eine andere Lösung mit einem View Helfer gefunden habe gefunden 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();
}
}
?>
Was ich in der Flüssigkeit Vorlage wie folgt.
<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>
Sehr einfach und elegant im Vergleich zu dem, was ich gefunden habe - danke. –
Ich würde von dieser Art der Aufgabe abraten, es bringt damit ein paar Probleme mit sich. Erstens verwendet es fest codierte Verweise auf Systemsprachen-UIDs, die wahrscheinlich brechen, wenn sie auf eine andere Site übertragen werden. Zweitens, wenn Sie Beschriftungen übersetzen müssen, sollten Sie 'f: translate' verwenden. Eine bessere Strategie besteht vielleicht darin, den Wert des "Flaggen-Icon-Namens" aus der Sprache zu lesen und dies in einem Namen eines übersetzten Etiketts zu verwenden, z. 'LLL: EXT: myext/Ressourcen/Privat/Sprache/locallang.xml: languages.de' und' .en' usw. –