我只是想生成一个代码,将检测我的网站在Joomla + PHP的当前语言
xsuvu9jc1#
参见getLanguage in JFactory:
$lang = JFactory::getLanguage(); echo 'Current language is: ' . $lang->getName();
一旦你有了语言,你还可以检索语言环境/语言代码(例如en-US)。Joomla!语言可以有多个地区,所以你会得到一个数组。
en-US
$lang = JFactory::getLanguage(); foreach($lang->getLocale() as $locale) { echo 'This language supports the locale: ' . $locale; }
如果出于某种原因,您只对第一个locale感兴趣,您可以简单地获取第一个元素。你可能需要一个数组,像这样:
$lang = JFactory::getLanguage(); $locales = $lang->getLocale(); echo 'This language\'s first locale is: ' . $locales[0];
如果您只想获取所选的语言标签(例如pt-PT),可以使用getTag()
$lang = JFactory::getLanguage(); echo 'Current language is: ' . $lang->getTag();
ep6jt1vc2#
在Joomla 3.4+中,@MvanGeest的答案仍然有效。下面是语言对象上存在的有用函数的列表:
JLanguage
$currentLanguage = JFactory::getLanguage();
$currentLanguageName = $currentLanguage->get('name'); //OR $currentLanguageName = $currentLanguage->getName();
$isRTL = $currentLanguage->get('rtl'); //OR $isRTL = $currentLanguage->isRtl();
$currentTag = $currentLanguage->get('tag'); //OR $currentTag = $currentLanguage->getTag();
$arrLanguages = $currentLanguage->getKnownLanguages();
px9o7tmv3#
任何人都在寻找在Joomla 4中做同样事情的能力,这对我来说很有效。
use Joomla\CMS\Factory; ... $lang = Factory::getApplication()->getLanguage(); $currentLanguage = $lang->getTag();
3条答案
按热度按时间xsuvu9jc1#
参见getLanguage in JFactory:
一旦你有了语言,你还可以检索语言环境/语言代码(例如
en-US
)。Joomla!语言可以有多个地区,所以你会得到一个数组。如果出于某种原因,您只对第一个locale感兴趣,您可以简单地获取第一个元素。你可能需要一个数组,像这样:
如果您只想获取所选的语言标签(例如pt-PT),可以使用getTag()
ep6jt1vc2#
在Joomla 3.4+中,@MvanGeest的答案仍然有效。下面是语言对象上存在的有用函数的列表:
JLanguage
类型的对象获取当前语言的句柄px9o7tmv3#
任何人都在寻找在Joomla 4中做同样事情的能力,这对我来说很有效。