我是 TYPO3 的初学者 :) 我想在外部 php 文件中获取当前语言。
我怎样才能做到这一点?
非常感谢。
如果你有一个 TSFE 的实例,你可以访问sys_language_uid
via$GLOBALS['TSFE']->sys_language_uid
对于 V9,$GLOBALS['TSFE']->sys_language_uid
已弃用,建议使用 Language Aspect。
例子 :
$languageAspect = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Context\Context::class)->getAspect('language');
$sys_language_uid = $languageAspect->getId();
TYPO3 9+
$context = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Context\Context::class);
// The requested language of the current page as integer (uid)
$currentLanguageUid = $context->getPropertyFromAspect('language', 'id');
获取当前语言始终是最好的方法:
$GLOBALS['TSFE']->sys_language_uid
或者
$GLOBALS['TSFE']->sys_language_content
基于此,您将获得当前的语言 ID,您可以为此提供条件。
在 Typo3 10.x 版本中获取当前语言。
$context = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Context\Context::class);
$langId = $context->getPropertyFromAspect('language', 'id');
通常 L 总是用作typo3 中的语言参数。$_GET['L']
如果您需要详细的语言属性
$request = $GLOBALS['TYPO3_REQUEST'];
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(
$request->getAttribute('language')
);
进一步获取属性,例如语言路径
$path = $request->getAttribute('language')->getBase()->getPath();