Я просто хочу сгенерировать код, который будет определять текущий язык моего веб-сайта в joomla + php
См. 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\'s first locale is: ' . $locales[0];
Если вы просто хотите получить выбранный тег языка (например, pt-PT), вы можете использовать getTag ()
$lang = JFactory::getLanguage(); echo 'Current language is: ' . $lang->getTag();
В 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();