php 如何检测Joomla的当前语言!网站?

n3schb8v  于 2023-09-29  发布在  PHP
关注(0)|答案(3)|浏览(152)

我只是想生成一个代码,将检测我的网站在Joomla + PHP的当前语言

xsuvu9jc

xsuvu9jc1#

参见getLanguage in JFactory

$lang = JFactory::getLanguage();
echo 'Current language is: ' . $lang->getName();

一旦你有了语言,你还可以检索语言环境/语言代码(例如en-US)。Joomla!语言可以有多个地区,所以你会得到一个数组。

$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();
ep6jt1vc

ep6jt1vc2#

在Joomla 3.4+中,@MvanGeest的答案仍然有效。下面是语言对象上存在的有用函数的列表:

  • 通过JLanguage类型的对象获取当前语言的句柄
$currentLanguage = JFactory::getLanguage();
  • 获取当前语言名称:
$currentLanguageName = $currentLanguage->get('name');

//OR

$currentLanguageName = $currentLanguage->getName();
  • 检查RTL(阿拉伯语和其他一些语言的情况)
$isRTL = $currentLanguage->get('rtl');

//OR

$isRTL = $currentLanguage->isRtl();
  • 获取当前语言标签:
$currentTag = $currentLanguage->get('tag');

//OR

$currentTag = $currentLanguage->getTag();
  • 获取所有已知语言的列表:
$arrLanguages = $currentLanguage->getKnownLanguages();
px9o7tmv

px9o7tmv3#

任何人都在寻找在Joomla 4中做同样事情的能力,这对我来说很有效。

use Joomla\CMS\Factory;
...
$lang = Factory::getApplication()->getLanguage();
$currentLanguage = $lang->getTag();

相关问题