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

时间:2010-07-28 11:12:12

标签: php joomla

我只想生成一个代码,用于在joomla + php中检测我的网站的当前语言

2 个答案:

答案 0 :(得分:89)

请参阅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;
}

如果出于某种原因,您只对第一个语言环境感兴趣,则可以直接获取第一个元素。您可能需要一个数组,如下所示:

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

答案 1 :(得分:3)

在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();