$code)) { $installed->$code = $available->$code; } } return $installed; } static function update_installed($locales) { // Ensure that the default is included... $default = module::get_var("core", "default_locale"); $locales = array_merge($locales, array($default)); module::set_var("core", "installed_locales", join("|", $locales)); } // TODO(andy_st): Might want to add a localizable language name as well. private static function _init_language_data() { $l->af_ZA = "Afrikaans"; // Afrikaans $l->ar_SA = "العربية"; // Arabic $l->bg_BG = "Български"; // Bulgarian $l->ca_ES = "Catalan"; // Catalan $l->cs_CZ = "Česky"; // Czech $l->da_DK = "Dansk"; // Danish $l->de_DE = "Deutsch"; // German $l->el_GR = "Greek"; // Greek $l->en_GB = "English (UK)"; // English (UK) $l->en_US = "English (US)"; // English (US) $l->es_AR = "Español (AR)"; // Spanish (AR) $l->es_ES = "Español"; // Spanish (ES) $l->es_MX = "Español (MX)"; // Spanish (MX) $l->et_EE = "Eesti"; // Estonian $l->eu_ES = "Euskara"; // Basque $l->fa_IR = "فارسي"; // Farsi $l->fi_FI = "Suomi"; // Finnish $l->fr_FR = "Français"; // French $l->ga_IE = "Gaeilge"; // Irish $l->he_IL = "עברית"; // Hebrew $l->hu_HU = "Magyar"; // Hungarian $l->is_IS = "Icelandic"; // Icelandic $l->it_IT = "Italiano"; // Italian $l->ja_JP = "日本語"; // Japanese $l->ko_KR = "한국말"; // Korean $l->lt_LT = "Lietuvių"; // Lithuanian $l->lv_LV = "Latviešu"; // Latvian $l->nl_NL = "Nederlands"; // Dutch $l->no_NO = "Norsk bokmål"; // Norwegian $l->pl_PL = "Polski"; // Polish $l->pt_BR = "Português Brasileiro"; // Portuguese (BR) $l->pt_PT = "Português"; // Portuguese (PT) $l->ro_RO = "Română"; // Romanian $l->ru_RU = "Русский"; // Russian $l->sk_SK = "Slovenčina"; // Slovak $l->sl_SI = "Slovenščina"; // Slovenian $l->sr_CS = "Srpski"; // Serbian $l->sv_SE = "Svenska"; // Swedish $l->tr_TR = "Türkçe"; // Turkish $l->uk_UA = "Українська"; // Ukrainian $l->vi_VN = "Tiếng Việt"; // Vietnamese $l->zh_CN = "简体中文"; // Chinese (CN) $l->zh_TW = "繁體中文"; // Chinese (TW) asort($l, SORT_LOCALE_STRING); self::$locales = $l; } static function display_name($locale=null) { if (empty(self::$locales)) { self::_init_language_data(); } $locale or $locale = I18n::instance()->locale(); return self::$locales->$locale; } static function is_rtl($locale) { return in_array($locale, array("he_IL", "fa_IR", "ar_SA")); } }