Подтвердить что ты не робот

Как определить текущий язык Joomla! Веб-сайт?

Я просто хочу сгенерировать код, который будет определять текущий язык моего веб-сайта в joomla + php

4b9b3361

Ответ 1

Смотрите getLanguage в 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\ first locale is: ' . $locales[0];

Если вы просто хотите получить выбранный тег языка (например, pt-PT), вы можете использовать getTag()

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

Ответ 2

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