diff options
Diffstat (limited to 'modules/gallery/helpers/locale.php')
| -rw-r--r-- | modules/gallery/helpers/locale.php | 119 | 
1 files changed, 119 insertions, 0 deletions
| diff --git a/modules/gallery/helpers/locale.php b/modules/gallery/helpers/locale.php new file mode 100644 index 00000000..b707637f --- /dev/null +++ b/modules/gallery/helpers/locale.php @@ -0,0 +1,119 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2009 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA. + */ + +/** + * This is the API for handling locales. + */ +class locale_Core { +  private static $locales; + +  /** +   * Return the list of available locales. +   */ +  static function available() { +    if (empty(self::$locales)) { +      self::_init_language_data(); +    } + +    return self::$locales; +  } + +  static function installed() { +    $available = self::available(); +    $default = module::get_var("core", "default_locale"); +    $codes = explode("|", module::get_var("core", "installed_locales", $default)); +    foreach ($codes as $code) { +      if (isset($available->$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 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")); +  } +}
\ No newline at end of file | 
