在 TYPO3 中获取后端用户当前选择的语言

Get currently selected language of backend user in TYPO3

在后端上下文中的PHP函数中,我想确定 BE 用户当前selected 的语言。

在我的用例中,编辑器从值列表中选择(由 itemsProcFunc) in a Flexform 生成。这些值已本地化。

示例

这是 flexform 输出:

显示在 multi-select 框中的标签是在 itemsProcFunc 中动态创建的,如果用户在后端的首选语言是英语,则应以英语显示。

$lang = $GLOBALS['BE_USER']->uc['lang'] ?? '';
if ($lang === '') {
    $lang = 'en';
}
  • Backend user settings可以检索,使用后端用户对象中的uc数组。
  • 如果当前选择的语言是“en”,则返回一个空字符串。

注意:由于应该使用 TYPO3 9 context and aspects 而不是查询全局变量(例如 $GLOBALS['BE_USER']),但是我不知道做这件事的方法(从首选项中获取 lang ) 没有 $GLOBALS['BE_USER'].