$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")); } }