public static function getLanguages($key = 'default') { static $languages; if (empty($languages)) { // Installation uses available languages if (MFactory::getApplication()->getClientId() == 2) { $languages[$key] = array(); $knownLangs = MLanguage::getKnownLanguages(MPATH_BASE); foreach ($knownLangs as $metadata) { // Take off 3 letters iso code languages as they can't match browsers' languages and default them to en $languages[$key][] = new MObject(array('lang_code' => $metadata['tag'])); } } else { $cache = MFactory::getCache('com_languages', ''); if (!($languages = $cache->get('languages'))) { $langs = get_available_languages(); $i = 0; $lngs = array(); foreach ($langs as $lang) { $lngs[$i] = new stdClass(); $lngs[$i]->title = $lang; $i++; } $languages['default'] = $lngs; $languages['lang_code'] = array(); if (isset($languages['default'][0])) { foreach ($languages['default'] as $lang) { $languages['lang_code'][$lang->title] = $lang; } } $cache->store($languages, 'languages'); } } } return $languages[$key]; }
protected static function createLanguage() { $locale = apply_filters('plugin_locale', get_locale()); //$locale = $conf->get('language'); $debug = false; // $debug = $conf->get('debug_lang'); $locale = str_replace('en_US', 'en-GB', $locale); $locale = str_replace('_', '-', $locale); $lang = MLanguage::getInstance($locale, $debug); return $lang; }