Có thể lấy khóa ngôn ngữ hiện tại (hoặc mã) trong mẫu chất lỏng TYPO3 không?Mẫu chất lỏng TYPO3 lấy mã ngôn ngữ
Trong khi đó tôi đã tìm thấy một giải pháp khác sử dụng một helper nhìn thấy 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();
}
}
?>
mà tôi sử dụng trong mẫu chất lỏng như sau.
<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>
Rất đơn giản và thanh lịch so với những gì tôi đã tìm thấy - cảm ơn bạn. –
Tôi khuyên bạn nên chống lại loại nhiệm vụ này, nó mang theo một vài vấn đề. Đầu tiên, nó sử dụng các tham chiếu được mã hóa cứng cho UID ngôn ngữ hệ thống có khả năng bị ngắt nếu được chuyển sang một trang web khác. Thứ hai, nếu bạn cần dịch nhãn, bạn nên sử dụng 'f: translate'. Có lẽ chiến lược tốt hơn là đọc giá trị "tên biểu tượng cờ" từ ngôn ngữ và sử dụng tên đó trong tên của nhãn được dịch, ví dụ: 'LLL: EXT: myext/Tài nguyên/Riêng/Ngôn ngữ/locallang.xml: languages.de' và' .en' vv –