private function _languageSelect($lang) { global $CONFIG; $sel = new Select(); $sel->SetCurrentValue($lang); $known = $sel->CreateGroup('Languages with translations'); $avail = $sel->CreateGroup('Available languages'); $counts = array(); foreach ($this->ds->ExecuteSql("SELECT lang,count(*) as cnt FROM wdf_translations GROUP BY lang") as $row) { $counts[$row['lang']] = intval($row['cnt']); } $total = max($counts); foreach (Localization::get_language_names() as $code => $name) { if (isset($counts[$code])) { $name = "{$name} ({$counts[$code]})"; if ($code == $CONFIG['localization']['default_language']) { $name .= " [default]"; } else { $name .= " [" . floor($counts[$code] / $total * 100) . "%]"; } } $sel->AddOption($code, $name, false, isset($counts[$code]) && $counts[$code] > 0 ? $known : $avail); } return $sel; }
/** * @param string $culture_code Culture code (see <CultureInfo>) * @param mixed $selected_date_format The currently selected date format or false * @param mixed $selected_time_format The currently selected time format or false * @param string $timezone Timezone identifier or false */ function __initialize($culture_code, $selected_date_format = false, $selected_time_format = false, $timezone = false) { parent::__initialize(); $this->script("Locale_Settings_Init();"); $this->setData('role', 'datetimeformat'); $this->setData('controller', buildQuery($this->id)); $this->culture_code = $culture_code; if ($selected_date_format || $selected_time_format) { $this->SetCurrentValue(json_encode(array($selected_date_format ? $selected_date_format : false, $selected_time_format ? $selected_time_format : false))); } $df = array(DateTimeFormat::DF_LONGDATE, DateTimeFormat::DF_SHORTDATE, DateTimeFormat::DF_MONTHDAY, DateTimeFormat::DF_YEARMONTH); $tf = array(DateTimeFormat::DF_LONGTIME, DateTimeFormat::DF_SHORTTIME); $value = time(); $ci = Localization::getCultureInfo($culture_code); if ($timezone) { $ci->SetTimezone($timezone); $value = $ci->GetTimezoneDate($value); } $dtf = $ci->DateTimeFormat; foreach ($df as $d) { foreach ($tf as $t) { $sv = $dtf->Format($value, $d) . " " . $dtf->Format($value, $t); $this->AddOption(json_encode(array($d, $t)), $sv); } } }
/** * @param string $current_timezone Currently selected timezone */ function __initialize($current_timezone = false) { parent::__initialize(); $this->script("Locale_Settings_Init();"); $this->setData('role', 'timezone'); if (!$current_timezone) { $current_timezone = Localization::getTimeZone(); } $this->SetCurrentValue($current_timezone); foreach (Localization::GetAllTimeZones() as $tz) { $this->AddOption($tz, str_replace("_", " ", $tz)); } }
/** * @param string $currency_code A valid currency code * @param mixed $selected_format The currently selected format */ function __initialize($currency_code, $selected_format = false) { parent::__initialize(); $this->script("Locale_Settings_Init();"); $this->setData('role', 'currenyformat'); $this->setData('controller', buildQuery($this->id)); if ($selected_format) { $this->SetCurrentValue($selected_format); } $samples = $this->getCurrencySamples($currency_code, 1234.56, true); foreach ($samples as $code => $label) { $this->AddOption($code, $label); } }
/** * @param mixed $current_language_code Currently selected language * @param type $current_region_code Currently selected region */ function __initialize($current_language_code = false, $current_region_code = false) { parent::__initialize(); $this->script("Locale_Settings_Init();"); $this->setData('role', 'region'); $this->setData('controller', buildQuery($this->id)); 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(); } $regions = $lang->GetRegions(false); if (!$current_region_code) { $current_region_code = $lang->DefaultRegion()->Code; } } else { $regions = Localization::get_all_regions(false); } if ($current_region_code) { if ($current_region_code instanceof CultureInfo) { $this->SetCurrentValue($current_region_code->DefaultRegion()->Code); } else { $this->SetCurrentValue($current_region_code); } } if (count($regions) > 0) { $cc = current_controller(false); $translations_active = $cc instanceof Renderable && $cc->_translate; $sorted = array(); foreach ($regions as $reg) { if (!$reg) { continue; } $code = $reg->Code; if ($translations_active) { $sorted[$code] = array("name" => tds("TXT_COUNTRY_" . strtoupper($code), $reg->EnglishName), "code", $code); } else { $sorted[$code] = array("name" => $reg->EnglishName, "code", $code); } } uasort($sorted, __CLASS__ . "::compareCountryNames"); foreach ($sorted as $code => $item) { $this->AddOption($code, $item['name']); } } }
/** * @param string $current_currency_code Currently selected currency * @param array $supported_currencies Array of supported currencies or false */ function __initialize($current_currency_code = false, $supported_currencies = false) { parent::__initialize(); $this->script("Locale_Settings_Init();"); $this->setData('role', 'currency'); $this->current_currency_code = $current_currency_code; if ($current_currency_code) { $this->SetCurrentValue($current_currency_code); } if (!$supported_currencies) { $supported_currencies = Localization::get_currency_codes(); } foreach ($supported_currencies as $code) { $ci = Localization::get_currency_culture($code); $this->AddOption($code, "{$ci->CurrencyFormat->Code} ({$ci->CurrencyFormat->Symbol})"); } }
/** * @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})"); } }
private function CreateSelect($sel_name) { $Select = new Select($sel_name); foreach ($this->_scale as $val => $desc) { $selected = $val == $this->_value ? true : false; $Select->AddOption($val, $desc, $selected); } return $Select; }