Я просто хочу сгенерировать код, который будет определять текущий язык моего веб-сайта в joomla + php
Как определить текущий язык Joomla! Веб-сайт?
Ответ 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();