是否可以在TYPO3 Fluid模板中獲取當前語言鍵(或代碼)?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'等 –