/** * @param mixed $current_language_code Currently selected language */ function __initialize($current_language_code = false) { parent::__initialize(); $this->script("Locale_Settings_Init();"); $this->setData('role', 'language'); if ($current_language_code) { if ($current_language_code instanceof CultureInfo) { $lang = $current_language_code->ResolveToLanguage(); } else { $lang = Localization::getLanguageCulture($current_language_code); } if (!$lang) { $lang = Localization::detectCulture()->ResolveToLanguage(); } $this->SetCurrentValue($lang->Code); } foreach (getAvailableLanguages() as $code) { $lang = Localization::getLanguageCulture($code); $this->AddOption($code, "{$lang->NativeName} ({$lang->EnglishName})"); } }
/** * Returns a list of option elements. * * Called via AJAX to dynamically update the control. * @attribute[RequestParam('language','string')] * @param string $language Language code * @return <AjaxResponse::Text> Html string with options */ public function ListOptions($language) { $lang = Localization::getLanguageCulture($language); if (!$lang) { $lang = Localization::getLanguageCulture('en'); } $regions = $lang->GetRegions(true); $sorted = array(); foreach ($regions as $code) { $sorted[$code] = array("name" => getString("TXT_COUNTRY_" . strtoupper($code)), "code", $code); } uasort($sorted, "RegionSelect::compareCountryNames"); $res = array(); foreach ($sorted as $code => $item) { $res[] = "<option value='{$code}'>{$item['name']}</option>"; } return implode("\n", $res); }