getLocalise(); if (!empty($forced['language'])) { $native = $forced['language']; } // If a language is already set in the session, use this instead $model = new InstallationModelSetup; $options = $model->getOptions(); if (isset($options['language'])) { $native = $options['language']; } // Get the list of available languages. $options = JLanguageHelper::createLanguageList($native); // Fix wrongly set parentheses in RTL languages if (JFactory::getLanguage()->isRtl()) { foreach ($options as &$option) { $option['text'] .= '‎'; } } if (!$options || $options instanceof Exception) { $options = array(); } // Sort languages by name else { usort($options, array($this, '_sortLanguages')); } // Set the default value from the native language. $this->value = $native; // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } /** * Method to sort languages by name. * * @param string $a The first value to determine sort * @param string $b The second value to determine sort * * @return string * * @since 3.1 */ protected function _sortLanguages($a, $b) { return strcmp($a['text'], $b['text']); } }