web/lib/Zend/Locale.php
changeset 1230 68c69c656a2c
parent 807 877f952ae2bd
--- a/web/lib/Zend/Locale.php	Thu May 07 15:10:09 2015 +0200
+++ b/web/lib/Zend/Locale.php	Thu May 07 15:16:02 2015 +0200
@@ -14,9 +14,9 @@
  *
  * @category  Zend
  * @package   Zend_Locale
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  * @license   http://framework.zend.com/license/new-bsd     New BSD License
- * @version   $Id: Locale.php 24593 2012-01-05 20:35:02Z matthew $
+ * @version   $Id$
  */
 
 /**
@@ -24,98 +24,767 @@
  *
  * @category  Zend
  * @package   Zend_Locale
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  * @license   http://framework.zend.com/license/new-bsd     New BSD License
  */
 class Zend_Locale
 {
     /**
+     * List of locales that are no longer part of CLDR along with a
+     * mapping to an appropriate alternative.
+     *
+     * @var array
+     */
+    private static $_localeAliases = array(
+        'az_AZ'  => 'az_Latn_AZ',
+        'bs_BA'  => 'bs_Latn_BA',
+        'ha_GH'  => 'ha_Latn_GH',
+        'ha_NE'  => 'ha_Latn_NE',
+        'ha_NG'  => 'ha_Latn_NG',
+        'kk_KZ'  => 'kk_Cyrl_KZ',
+        'ks_IN'  => 'ks_Arab_IN',
+        'mn_MN'  => 'mn_Cyrl_MN',
+        'ms_BN'  => 'ms_Latn_BN',
+        'ms_MY'  => 'ms_Latn_MY',
+        'ms_SG'  => 'ms_Latn_SG',
+        'pa_IN'  => 'pa_Guru_IN',
+        'pa_PK'  => 'pa_Arab_PK',
+        'shi_MA' => 'shi_Latn_MA',
+        'sr_BA'  => 'sr_Latn_BA',
+        'sr_ME'  => 'sr_Latn_ME',
+        'sr_RS'  => 'sr_Latn_RS',
+        'sr_XK'  => 'sr_Latn_XK',
+        'tg_TJ'  => 'tg_Cyrl_TJ',
+        'tzm_MA' => 'tzm_Latn_MA',
+        'uz_AF'  => 'uz_Arab_AF',
+        'uz_UZ'  => 'uz_Latn_UZ',
+        'vai_LR' => 'vai_Latn_LR',
+        'zh_CN' => 'zh_Hans_CN',
+        'zh_HK' => 'zh_Hant_HK',
+        'zh_MO' => 'zh_Hans_MO',
+        'zh_SG' => 'zh_Hans_SG',
+        'zh_TW' => 'zh_Hant_TW',
+    );
+
+    /**
      * Class wide Locale Constants
      *
      * @var array $_localeData
      */
     private static $_localeData = array(
-        'root'  => true, 'aa_DJ' => true, 'aa_ER' => true, 'aa_ET' => true, 'aa'    => true,
-        'af_NA' => true, 'af_ZA' => true, 'af'    => true, 'ak_GH' => true, 'ak'    => true,
-        'am_ET' => true, 'am'    => true, 'ar_AE' => true, 'ar_BH' => true, 'ar_DZ' => true,
-        'ar_EG' => true, 'ar_IQ' => true, 'ar_JO' => true, 'ar_KW' => true, 'ar_LB' => true,
-        'ar_LY' => true, 'ar_MA' => true, 'ar_OM' => true, 'ar_QA' => true, 'ar_SA' => true,
-        'ar_SD' => true, 'ar_SY' => true, 'ar_TN' => true, 'ar_YE' => true, 'ar'    => true,
-        'as_IN' => true, 'as'    => true, 'az_AZ' => true, 'az'    => true, 'be_BY' => true,
-        'be'    => true, 'bg_BG' => true, 'bg'    => true, 'bn_BD' => true, 'bn_IN' => true,
-        'bn'    => true, 'bo_CN' => true, 'bo_IN' => true, 'bo'    => true, 'bs_BA' => true,
-        'bs'    => true, 'byn_ER'=> true, 'byn'   => true, 'ca_ES' => true, 'ca'    => true,
-        'cch_NG'=> true, 'cch'   => true, 'cop'   => true, 'cs_CZ' => true, 'cs'    => true,
-        'cy_GB' => true, 'cy'    => true, 'da_DK' => true, 'da'    => true, 'de_AT' => true,
-        'de_BE' => true, 'de_CH' => true, 'de_DE' => true, 'de_LI' => true, 'de_LU' => true,
-        'de'    => true, 'dv_MV' => true, 'dv'    => true, 'dz_BT' => true, 'dz'    => true,
-        'ee_GH' => true, 'ee_TG' => true, 'ee'    => true, 'el_CY' => true, 'el_GR' => true,
-        'el'    => true, 'en_AS' => true, 'en_AU' => true, 'en_BE' => true, 'en_BW' => true,
-        'en_BZ' => true, 'en_CA' => true, 'en_GB' => true, 'en_GU' => true, 'en_HK' => true,
-        'en_IE' => true, 'en_IN' => true, 'en_JM' => true, 'en_MH' => true, 'en_MP' => true,
-        'en_MT' => true, 'en_NA' => true, 'en_NZ' => true, 'en_PH' => true, 'en_PK' => true,
-        'en_SG' => true, 'en_TT' => true, 'en_UM' => true, 'en_US' => true, 'en_VI' => true,
-        'en_ZA' => true, 'en_ZW' => true, 'en'    => true, 'eo'    => true, 'es_AR' => true,
-        'es_BO' => true, 'es_CL' => true, 'es_CO' => true, 'es_CR' => true, 'es_DO' => true,
-        'es_EC' => true, 'es_ES' => true, 'es_GT' => true, 'es_HN' => true, 'es_MX' => true,
-        'es_NI' => true, 'es_PA' => true, 'es_PE' => true, 'es_PR' => true, 'es_PY' => true,
-        'es_SV' => true, 'es_US' => true, 'es_UY' => true, 'es_VE' => true, 'es'    => true,
-        'et_EE' => true, 'et'    => true, 'eu_ES' => true, 'eu'    => true, 'fa_AF' => true,
-        'fa_IR' => true, 'fa'    => true, 'fi_FI' => true, 'fi'    => true, 'fil_PH'=> true,
-        'fil'   => true, 'fo_FO' => true, 'fo'    => true, 'fr_BE' => true, 'fr_CA' => true,
-        'fr_CH' => true, 'fr_FR' => true, 'fr_LU' => true, 'fr_MC' => true, 'fr_SN' => true,
-        'fr'    => true, 'fur_IT'=> true, 'fur'   => true, 'ga_IE' => true, 'ga'    => true,
-        'gaa_GH'=> true, 'gaa'   => true, 'gez_ER'=> true, 'gez_ET'=> true, 'gez'   => true,
-        'gl_ES' => true, 'gl'    => true, 'gsw_CH'=> true, 'gsw'   => true, 'gu_IN' => true,
-        'gu'    => true, 'gv_GB' => true, 'gv'    => true, 'ha_GH' => true, 'ha_NE' => true,
-        'ha_NG' => true, 'ha_SD' => true, 'ha'    => true, 'haw_US'=> true, 'haw'   => true,
-        'he_IL' => true, 'he'    => true, 'hi_IN' => true, 'hi'    => true, 'hr_HR' => true,
-        'hr'    => true, 'hu_HU' => true, 'hu'    => true, 'hy_AM' => true, 'hy'    => true,
-        'ia'    => true, 'id_ID' => true, 'id'    => true, 'ig_NG' => true, 'ig'    => true,
-        'ii_CN' => true, 'ii'    => true, 'in'    => true, 'is_IS' => true, 'is'    => true,
-        'it_CH' => true, 'it_IT' => true, 'it'    => true, 'iu'    => true, 'iw'    => true,
-        'ja_JP' => true, 'ja'    => true, 'ka_GE' => true, 'ka'    => true, 'kaj_NG'=> true,
-        'kaj'   => true, 'kam_KE'=> true, 'kam'   => true, 'kcg_NG'=> true, 'kcg'   => true,
-        'kfo_CI'=> true, 'kfo'   => true, 'kk_KZ' => true, 'kk'    => true, 'kl_GL' => true,
-        'kl'    => true, 'km_KH' => true, 'km'    => true, 'kn_IN' => true, 'kn'    => true,
-        'ko_KR' => true, 'ko'    => true, 'kok_IN'=> true, 'kok'   => true, 'kpe_GN'=> true,
-        'kpe_LR'=> true, 'kpe'   => true, 'ku_IQ' => true, 'ku_IR' => true, 'ku_SY' => true,
-        'ku_TR' => true, 'ku'    => true, 'kw_GB' => true, 'kw'    => true, 'ky_KG' => true,
-        'ky'    => true, 'ln_CD' => true, 'ln_CG' => true, 'ln'    => true, 'lo_LA' => true,
-        'lo'    => true, 'lt_LT' => true, 'lt'    => true, 'lv_LV' => true, 'lv'    => true,
-        'mk_MK' => true, 'mk'    => true, 'ml_IN' => true, 'ml'    => true, 'mn_CN' => true,
-        'mn_MN' => true, 'mn'    => true, 'mo'    => true, 'mr_IN' => true, 'mr'    => true,
-        'ms_BN' => true, 'ms_MY' => true, 'ms'    => true, 'mt_MT' => true, 'mt'    => true,
-        'my_MM' => true, 'my'    => true, 'nb_NO' => true, 'nb'    => true, 'nds_DE'=> true,
-        'nds'   => true, 'ne_IN' => true, 'ne_NP' => true, 'ne'    => true, 'nl_BE' => true,
-        'nl_NL' => true, 'nl'    => true, 'nn_NO' => true, 'nn'    => true, 'no'    => true,
-        'nr_ZA' => true, 'nr'    => true, 'nso_ZA'=> true, 'nso'   => true, 'ny_MW' => true,
-        'ny'    => true, 'oc_FR' => true, 'oc'    => true, 'om_ET' => true, 'om_KE' => true,
-        'om'    => true, 'or_IN' => true, 'or'    => true, 'pa_IN' => true, 'pa_PK' => true,
-        'pa'    => true, 'pl_PL' => true, 'pl'    => true, 'ps_AF' => true, 'ps'    => true,
-        'pt_BR' => true, 'pt_PT' => true, 'pt'    => true, 'ro_MD' => true, 'ro_RO' => true,
-        'ro'    => true, 'ru_RU' => true, 'ru_UA' => true, 'ru'    => true, 'rw_RW' => true,
-        'rw'    => true, 'sa_IN' => true, 'sa'    => true, 'se_FI' => true, 'se_NO' => true,
-        'se'    => true, 'sh_BA' => true, 'sh_CS' => true, 'sh_YU' => true, 'sh'    => true,
-        'si_LK' => true, 'si'    => true, 'sid_ET'=> true, 'sid'   => true, 'sk_SK' => true,
-        'sk'    => true, 'sl_SI' => true, 'sl'    => true, 'so_DJ' => true, 'so_ET' => true,
-        'so_KE' => true, 'so_SO' => true, 'so'    => true, 'sq_AL' => true, 'sq'    => true,
-        'sr_BA' => true, 'sr_CS' => true, 'sr_ME' => true, 'sr_RS' => true, 'sr_YU' => true,
-        'sr'    => true, 'ss_SZ' => true, 'ss_ZA' => true, 'ss'    => true, 'st_LS' => true,
-        'st_ZA' => true, 'st'    => true, 'sv_FI' => true, 'sv_SE' => true, 'sv'    => true,
-        'sw_KE' => true, 'sw_TZ' => true, 'sw'    => true, 'syr_SY'=> true, 'syr'   => true,
-        'ta_IN' => true, 'ta'    => true, 'te_IN' => true, 'te'    => true, 'tg_TJ' => true,
-        'tg'    => true, 'th_TH' => true, 'th'    => true, 'ti_ER' => true, 'ti_ET' => true,
-        'ti'    => true, 'tig_ER'=> true, 'tig'   => true, 'tl'    => true, 'tn_ZA' => true,
-        'tn'    => true, 'to_TO' => true, 'to'    => true, 'tr_TR' => true, 'tr'    => true,
-        'trv_TW'=> true, 'trv'   => true, 'ts_ZA' => true, 'ts'    => true, 'tt_RU' => true,
-        'tt'    => true, 'ug_CN' => true, 'ug'    => true, 'uk_UA' => true, 'uk'    => true,
-        'ur_IN' => true, 'ur_PK' => true, 'ur'    => true, 'uz_AF' => true, 'uz_UZ' => true,
-        'uz'    => true, 've_ZA' => true, 've'    => true, 'vi_VN' => true, 'vi'    => true,
-        'wal_ET'=> true, 'wal'   => true, 'wo_SN' => true, 'wo'    => true, 'xh_ZA' => true,
-        'xh'    => true, 'yo_NG' => true, 'yo'    => true, 'zh_CN' => true, 'zh_HK' => true,
-        'zh_MO' => true, 'zh_SG' => true, 'zh_TW' => true, 'zh'    => true, 'zu_ZA' => true,
-        'zu'    => true
+        'root'        => true,
+        'aa'          => true,
+        'aa_DJ'       => true,
+        'aa_ER'       => true,
+        'aa_ET'       => true,
+        'af'          => true,
+        'af_NA'       => true,
+        'af_ZA'       => true,
+        'agq'         => true,
+        'agq_CM'      => true,
+        'ak'          => true,
+        'ak_GH'       => true,
+        'am'          => true,
+        'am_ET'       => true,
+        'ar'          => true,
+        'ar_001'      => true,
+        'ar_AE'       => true,
+        'ar_BH'       => true,
+        'ar_DJ'       => true,
+        'ar_DZ'       => true,
+        'ar_EG'       => true,
+        'ar_EH'       => true,
+        'ar_ER'       => true,
+        'ar_IL'       => true,
+        'ar_IQ'       => true,
+        'ar_JO'       => true,
+        'ar_KM'       => true,
+        'ar_KW'       => true,
+        'ar_LB'       => true,
+        'ar_LY'       => true,
+        'ar_MA'       => true,
+        'ar_MR'       => true,
+        'ar_OM'       => true,
+        'ar_PS'       => true,
+        'ar_QA'       => true,
+        'ar_SA'       => true,
+        'ar_SD'       => true,
+        'ar_SO'       => true,
+        'ar_SS'       => true,
+        'ar_SY'       => true,
+        'ar_TD'       => true,
+        'ar_TN'       => true,
+        'ar_YE'       => true,
+        'as'          => true,
+        'as_IN'       => true,
+        'asa'         => true,
+        'asa_TZ'      => true,
+        'ast'         => true,
+        'ast_ES'      => true,
+        'az'          => true,
+        'az_Cyrl'     => true,
+        'az_Cyrl_AZ'  => true,
+        'az_Latn'     => true,
+        'az_Latn_AZ'  => true,
+        'bas'         => true,
+        'bas_CM'      => true,
+        'be'          => true,
+        'be_BY'       => true,
+        'bem'         => true,
+        'bem_ZM'      => true,
+        'bez'         => true,
+        'bez_TZ'      => true,
+        'bg'          => true,
+        'bg_BG'       => true,
+        'bm'          => true,
+        'bm_ML'       => true,
+        'bn'          => true,
+        'bn_BD'       => true,
+        'bn_IN'       => true,
+        'bo'          => true,
+        'bo_CN'       => true,
+        'bo_IN'       => true,
+        'br'          => true,
+        'br_FR'       => true,
+        'brx'         => true,
+        'brx_IN'      => true,
+        'bs'          => true,
+        'bs_Cyrl'     => true,
+        'bs_Cyrl_BA'  => true,
+        'bs_Latn'     => true,
+        'bs_Latn_BA'  => true,
+        'byn'         => true,
+        'byn_ER'      => true,
+        'ca'          => true,
+        'ca_AD'       => true,
+        'ca_ES'       => true,
+        'ca_ES_VALENCIA' => true,
+        'ca_FR'       => true,
+        'ca_IT'       => true,
+        'cgg'         => true,
+        'cgg_UG'      => true,
+        'chr'         => true,
+        'chr_US'      => true,
+        'cs'          => true,
+        'cs_CZ'       => true,
+        'cy'          => true,
+        'cy_GB'       => true,
+        'da'          => true,
+        'da_DK'       => true,
+        'da_GL'       => true,
+        'dav'         => true,
+        'dav_KE'      => true,
+        'de'          => true,
+        'de_AT'       => true,
+        'de_BE'       => true,
+        'de_CH'       => true,
+        'de_DE'       => true,
+        'de_LI'       => true,
+        'de_LU'       => true,
+        'dje'         => true,
+        'dje_NE'      => true,
+        'dua'         => true,
+        'dua_CM'      => true,
+        'dyo'         => true,
+        'dyo_SN'      => true,
+        'dz'          => true,
+        'dz_BT'       => true,
+        'ebu'         => true,
+        'ebu_KE'      => true,
+        'ee'          => true,
+        'ee_GH'       => true,
+        'ee_TG'       => true,
+        'el'          => true,
+        'el_CY'       => true,
+        'el_GR'       => true,
+        'en'          => true,
+        'en_001'      => true,
+        'en_150'      => true,
+        'en_AG'       => true,
+        'en_AI'       => true,
+        'en_AS'       => true,
+        'en_AU'       => true,
+        'en_BB'       => true,
+        'en_BE'       => true,
+        'en_BM'       => true,
+        'en_BS'       => true,
+        'en_BW'       => true,
+        'en_BZ'       => true,
+        'en_CA'       => true,
+        'en_CC'       => true,
+        'en_CK'       => true,
+        'en_CM'       => true,
+        'en_CX'       => true,
+        'en_DG'       => true,
+        'en_DM'       => true,
+        'en_Dsrt'     => true,
+        'en_Dsrt_US'  => true,
+        'en_ER'       => true,
+        'en_FJ'       => true,
+        'en_FK'       => true,
+        'en_FM'       => true,
+        'en_GB'       => true,
+        'en_GD'       => true,
+        'en_GG'       => true,
+        'en_GH'       => true,
+        'en_GI'       => true,
+        'en_GM'       => true,
+        'en_GU'       => true,
+        'en_GY'       => true,
+        'en_HK'       => true,
+        'en_IE'       => true,
+        'en_IM'       => true,
+        'en_IN'       => true,
+        'en_IO'       => true,
+        'en_JE'       => true,
+        'en_JM'       => true,
+        'en_KE'       => true,
+        'en_KI'       => true,
+        'en_KN'       => true,
+        'en_KY'       => true,
+        'en_LC'       => true,
+        'en_LR'       => true,
+        'en_LS'       => true,
+        'en_MG'       => true,
+        'en_MH'       => true,
+        'en_MO'       => true,
+        'en_MP'       => true,
+        'en_MS'       => true,
+        'en_MT'       => true,
+        'en_MU'       => true,
+        'en_MW'       => true,
+        'en_NA'       => true,
+        'en_NF'       => true,
+        'en_NG'       => true,
+        'en_NR'       => true,
+        'en_NU'       => true,
+        'en_NZ'       => true,
+        'en_PG'       => true,
+        'en_PH'       => true,
+        'en_PK'       => true,
+        'en_PN'       => true,
+        'en_PR'       => true,
+        'en_PW'       => true,
+        'en_RW'       => true,
+        'en_SB'       => true,
+        'en_SC'       => true,
+        'en_SD'       => true,
+        'en_SG'       => true,
+        'en_SH'       => true,
+        'en_SL'       => true,
+        'en_SS'       => true,
+        'en_SX'       => true,
+        'en_SZ'       => true,
+        'en_TC'       => true,
+        'en_TK'       => true,
+        'en_TO'       => true,
+        'en_TT'       => true,
+        'en_TV'       => true,
+        'en_TZ'       => true,
+        'en_UG'       => true,
+        'en_UM'       => true,
+        'en_US'       => true,
+        'en_US_POSIX' => true,
+        'en_VC'       => true,
+        'en_VG'       => true,
+        'en_VI'       => true,
+        'en_VU'       => true,
+        'en_WS'       => true,
+        'en_ZA'       => true,
+        'en_ZM'       => true,
+        'en_ZW'       => true,
+        'eo'          => true,
+        'eo_001'      => true,
+        'es'          => true,
+        'es_419'      => true,
+        'es_AR'       => true,
+        'es_BO'       => true,
+        'es_CL'       => true,
+        'es_CO'       => true,
+        'es_CR'       => true,
+        'es_CU'       => true,
+        'es_DO'       => true,
+        'es_EA'       => true,
+        'es_EC'       => true,
+        'es_ES'       => true,
+        'es_GQ'       => true,
+        'es_GT'       => true,
+        'es_HN'       => true,
+        'es_IC'       => true,
+        'es_MX'       => true,
+        'es_NI'       => true,
+        'es_PA'       => true,
+        'es_PE'       => true,
+        'es_PH'       => true,
+        'es_PR'       => true,
+        'es_PY'       => true,
+        'es_SV'       => true,
+        'es_US'       => true,
+        'es_UY'       => true,
+        'es_VE'       => true,
+        'et'          => true,
+        'et_EE'       => true,
+        'eu'          => true,
+        'eu_ES'       => true,
+        'ewo'         => true,
+        'ewo_CM'      => true,
+        'fa'          => true,
+        'fa_AF'       => true,
+        'fa_IR'       => true,
+        'ff'          => true,
+        'ff_CM'       => true,
+        'ff_GN'       => true,
+        'ff_MR'       => true,
+        'fr_PM'       => true,
+        'ff_SN'       => true,
+        'fr_WF'       => true,
+        'fi'          => true,
+        'fi_FI'       => true,
+        'fil'         => true,
+        'fil_PH'      => true,
+        'fo'          => true,
+        'fo_FO'       => true,
+        'fr'          => true,
+        'fr_BE'       => true,
+        'fr_BF'       => true,
+        'fr_BI'       => true,
+        'fr_BJ'       => true,
+        'fr_BL'       => true,
+        'fr_CA'       => true,
+        'fr_CD'       => true,
+        'fr_CF'       => true,
+        'fr_CG'       => true,
+        'fr_CH'       => true,
+        'fr_CI'       => true,
+        'fr_CM'       => true,
+        'fr_DJ'       => true,
+        'fr_DZ'       => true,
+        'fr_FR'       => true,
+        'fr_GA'       => true,
+        'fr_GF'       => true,
+        'fr_GN'       => true,
+        'fr_GP'       => true,
+        'fr_GQ'       => true,
+        'fr_HT'       => true,
+        'fr_KM'       => true,
+        'fr_LU'       => true,
+        'fr_MA'       => true,
+        'fr_MC'       => true,
+        'fr_MF'       => true,
+        'fr_MG'       => true,
+        'fr_ML'       => true,
+        'fr_MQ'       => true,
+        'fr_MR'       => true,
+        'fr_MU'       => true,
+        'fr_NC'       => true,
+        'fr_NE'       => true,
+        'fr_PF'       => true,
+        'fr_RE'       => true,
+        'fr_RW'       => true,
+        'fr_SC'       => true,
+        'fr_SN'       => true,
+        'fr_SY'       => true,
+        'fr_TD'       => true,
+        'fr_TG'       => true,
+        'fr_TN'       => true,
+        'fr_VU'       => true,
+        'fr_YT'       => true,
+        'fur'         => true,
+        'fur_IT'      => true,
+        'fy'          => true,
+        'fy_NL'       => true,
+        'ga'          => true,
+        'ga_IE'       => true,
+        'gd'          => true,
+        'gd_GB'       => true,
+        'gl'          => true,
+        'gl_ES'       => true,
+        'gsw'         => true,
+        'gsw_CH'      => true,
+        'gsw_LI'      => true,
+        'gu'          => true,
+        'gu_IN'       => true,
+        'guz'         => true,
+        'guz_KE'      => true,
+        'gv'          => true,
+        'gv_IM'       => true,
+        'ha'          => true,
+        'ha_Latn'     => true,
+        'ha_Latn_GH'  => true,
+        'ha_Latn_NE'  => true,
+        'ha_Latn_NG'  => true,
+        'haw'         => true,
+        'haw_US'      => true,
+        'he'          => true,
+        'he_IL'       => true,
+        'hi'          => true,
+        'hi_IN'       => true,
+        'hr'          => true,
+        'hr_BA'       => true,
+        'hr_HR'       => true,
+        'hu'          => true,
+        'hu_HU'       => true,
+        'hy'          => true,
+        'hy_AM'       => true,
+        'ia'          => true,
+        'ia_FR'       => true,
+        'id'          => true,
+        'id_ID'       => true,
+        'ig'          => true,
+        'ig_NG'       => true,
+        'ii'          => true,
+        'ii_CN'       => true,
+        'is'          => true,
+        'is_IS'       => true,
+        'it'          => true,
+        'it_CH'       => true,
+        'it_IT'       => true,
+        'it_SM'       => true,
+        'ja'          => true,
+        'ja_JP'       => true,
+        'jgo'         => true,
+        'jgo_CM'      => true,
+        'jmc'         => true,
+        'jmc_TZ'      => true,
+        'ka'          => true,
+        'ka_GE'       => true,
+        'kab'         => true,
+        'kab_DZ'      => true,
+        'kam'         => true,
+        'kam_KE'      => true,
+        'kde'         => true,
+        'kde_TZ'      => true,
+        'kea'         => true,
+        'kea_CV'      => true,
+        'khq'         => true,
+        'khq_ML'      => true,
+        'ki'          => true,
+        'ki_KE'       => true,
+        'kk'          => true,
+        'kk_Cyrl'     => true,
+        'kk_Cyrl_KZ'  => true,
+        'kkj'         => true,
+        'kkj_CM'      => true,
+        'kl'          => true,
+        'kl_GL'       => true,
+        'kln'         => true,
+        'kln_KE'      => true,
+        'km'          => true,
+        'km_KH'       => true,
+        'kn'          => true,
+        'kn_IN'       => true,
+        'ko'          => true,
+        'ko_KP'       => true,
+        'ko_KR'       => true,
+        'kok'         => true,
+        'kok_IN'      => true,
+        'ks'          => true,
+        'ks_Arab'     => true,
+        'ks_Arab_IN'  => true,
+        'ksb'         => true,
+        'ksb_TZ'      => true,
+        'ksf'         => true,
+        'ksf_CM'      => true,
+        'ksh'         => true,
+        'ksh_DE'      => true,
+        'kw'          => true,
+        'kw_GB'       => true,
+        'ky'          => true,
+        'ky_Cyrl'     => true,
+        'ky_Cyrl_KG'  => true,
+        'lag'         => true,
+        'lag_TZ'      => true,
+        'lg'          => true,
+        'lg_UG'       => true,
+        'lkt'         => true,
+        'lkt_US'      => true,
+        'ln'          => true,
+        'ln_AO'       => true,
+        'ln_CD'       => true,
+        'ln_CF'       => true,
+        'ln_CG'       => true,
+        'lo'          => true,
+        'lo_LA'       => true,
+        'lt'          => true,
+        'lt_LT'       => true,
+        'lu'          => true,
+        'lu_CD'       => true,
+        'luo'         => true,
+        'luo_KE'      => true,
+        'luy'         => true,
+        'luy_KE'      => true,
+        'lv'          => true,
+        'lv_LV'       => true,
+        'mas'         => true,
+        'mas_KE'      => true,
+        'mas_TZ'      => true,
+        'mer'         => true,
+        'mer_KE'      => true,
+        'mfe'         => true,
+        'mfe_MU'      => true,
+        'mg'          => true,
+        'mg_MG'       => true,
+        'mgh'         => true,
+        'mgh_MZ'      => true,
+        'mgo'         => true,
+        'mgo_CM'      => true,
+        'mk'          => true,
+        'mk_MK'       => true,
+        'ml'          => true,
+        'ml_IN'       => true,
+        'mn'          => true,
+        'mn_Cyrl'     => true,
+        'mn_Cyrl_MN'  => true,
+        'mr'          => true,
+        'mr_IN'       => true,
+        'ms'          => true,
+        'ms_Latn'     => true,
+        'ms_Latn_BN'  => true,
+        'ms_Latn_MY'  => true,
+        'ms_Latn_SG'  => true,
+        'mt'          => true,
+        'mt_MT'       => true,
+        'mua'         => true,
+        'mua_CM'      => true,
+        'my'          => true,
+        'my_MM'       => true,
+        'naq'         => true,
+        'naq_NA'      => true,
+        'nb'          => true,
+        'nb_NO'       => true,
+        'nb_SJ'       => true,
+        'nd'          => true,
+        'nd_ZW'       => true,
+        'ne'          => true,
+        'ne_IN'       => true,
+        'ne_NP'       => true,
+        'nl'          => true,
+        'nl_AW'       => true,
+        'nl_BE'       => true,
+        'nl_BQ'       => true,
+        'nl_CW'       => true,
+        'nl_NL'       => true,
+        'nl_SR'       => true,
+        'nl_SX'       => true,
+        'nmg'         => true,
+        'nmg_CM'      => true,
+        'nn'          => true,
+        'nn_NO'       => true,
+        'nnh'         => true,
+        'nnh_CM'      => true,
+        'nr'          => true,
+        'nr_ZA'       => true,
+        'nso'         => true,
+        'nso_ZA'      => true,
+        'nus'         => true,
+        'nus_SD'      => true,
+        'nyn'         => true,
+        'nyn_UG'      => true,
+        'om'          => true,
+        'om_ET'       => true,
+        'om_KE'       => true,
+        'or'          => true,
+        'or_IN'       => true,
+        'ordinals'    => true,
+        'os'          => true,
+        'os_GE'       => true,
+        'os_RU'       => true,
+        'pa'          => true,
+        'pa_Arab'     => true,
+        'pa_Arab_PK'  => true,
+        'pa_Guru'     => true,
+        'pa_Guru_IN'  => true,
+        'pl'          => true,
+        'pl_PL'       => true,
+        'plurals'     => true,
+        'ps'          => true,
+        'ps_AF'       => true,
+        'pt'          => true,
+        'pt_AO'       => true,
+        'pt_BR'       => true,
+        'pt_CV'       => true,
+        'pt_GW'       => true,
+        'pt_MO'       => true,
+        'pt_MZ'       => true,
+        'pt_PT'       => true,
+        'pt_ST'       => true,
+        'pt_TL'       => true,
+        'rm'          => true,
+        'rm_CH'       => true,
+        'rn'          => true,
+        'rn_BI'       => true,
+        'ro'          => true,
+        'ro_MD'       => true,
+        'ro_RO'       => true,
+        'rof'         => true,
+        'rof_TZ'      => true,
+        'ru'          => true,
+        'ru_BY'       => true,
+        'ru_KG'       => true,
+        'ru_KZ'       => true,
+        'ru_MD'       => true,
+        'ru_RU'       => true,
+        'ru_UA'       => true,
+        'rw'          => true,
+        'rw_RW'       => true,
+        'rwk'         => true,
+        'rwk_TZ'      => true,
+        'sah'         => true,
+        'sah_RU'      => true,
+        'saq'         => true,
+        'saq_KE'      => true,
+        'sbp'         => true,
+        'sbp_TZ'      => true,
+        'se'          => true,
+        'se_FI'       => true,
+        'se_NO'       => true,
+        'seh'         => true,
+        'seh_MZ'      => true,
+        'ses'         => true,
+        'ses_ML'      => true,
+        'sg'          => true,
+        'sg_CF'       => true,
+        'shi'         => true,
+        'shi_Latn'    => true,
+        'shi_Latn_MA' => true,
+        'shi_Tfng'    => true,
+        'shi_Tfng_MA' => true,
+        'si'          => true,
+        'si_LK'       => true,
+        'sk'          => true,
+        'sk_SK'       => true,
+        'sl'          => true,
+        'sl_SI'       => true,
+        'sn'          => true,
+        'sn_ZW'       => true,
+        'so'          => true,
+        'so_DJ'       => true,
+        'so_ET'       => true,
+        'so_KE'       => true,
+        'so_SO'       => true,
+        'sq'          => true,
+        'sq_AL'       => true,
+        'sq_MK'       => true,
+        'sq_XK'       => true,
+        'sr'          => true,
+        'sr_Cyrl'     => true,
+        'sr_Cyrl_BA'  => true,
+        'sr_Cyrl_ME'  => true,
+        'sr_Cyrl_RS'  => true,
+        'sr_Cyrl_XK'  => true,
+        'sr_Latn'     => true,
+        'sr_Latn_BA'  => true,
+        'sr_Latn_ME'  => true,
+        'sr_Latn_RS'  => true,
+        'sr_Latn_XK'  => true,
+        'ss'          => true,
+        'ss_SZ'       => true,
+        'ss_ZA'       => true,
+        'ssy'         => true,
+        'ssy_ER'      => true,
+        'st'          => true,
+        'st_LS'       => true,
+        'st_ZA'       => true,
+        'sv'          => true,
+        'sv_AX'       => true,
+        'sv_FI'       => true,
+        'sv_SE'       => true,
+        'sw'          => true,
+        'sw_KE'       => true,
+        'sw_TZ'       => true,
+        'sw_UG'       => true,
+        'swc'         => true,
+        'swc_CD'      => true,
+        'ta'          => true,
+        'ta_IN'       => true,
+        'ta_LK'       => true,
+        'ta_MY'       => true,
+        'ta_SG'       => true,
+        'te'          => true,
+        'te_IN'       => true,
+        'teo'         => true,
+        'teo_KE'      => true,
+        'teo_UG'      => true,
+        'tg'          => true,
+        'tg_Cyrl'     => true,
+        'tg_Cyrl_TJ'  => true,
+        'th'          => true,
+        'th_TH'       => true,
+        'ti'          => true,
+        'ti_ER'       => true,
+        'ti_ET'       => true,
+        'tig'         => true,
+        'tig_ER'      => true,
+        'tn'          => true,
+        'tn_BW'       => true,
+        'tn_ZA'       => true,
+        'to'          => true,
+        'to_TO'       => true,
+        'tr'          => true,
+        'tr_CY'       => true,
+        'tr_TR'       => true,
+        'ts'          => true,
+        'ts_ZA'       => true,
+        'twq'         => true,
+        'twq_NE'      => true,
+        'tzm'         => true,
+        'tzm_Latn'    => true,
+        'tzm_Latn_MA' => true,
+        'ug'          => true,
+        'ug_Arab'     => true,
+        'ug_Arab_CN'  => true,
+        'uk'          => true,
+        'uk_UA'       => true,
+        'ur'          => true,
+        'ur_IN'       => true,
+        'ur_PK'       => true,
+        'uz'          => true,
+        'uz_Arab'     => true,
+        'uz_Arab_AF'  => true,
+        'uz_Cyrl'     => true,
+        'uz_Cyrl_UZ'  => true,
+        'uz_Latn'     => true,
+        'uz_Latn_UZ'  => true,
+        'vai'         => true,
+        'vai_Latn'    => true,
+        'vai_Latn_LR' => true,
+        'vai_Vaii'    => true,
+        'vai_Vaii_LR' => true,
+        've'          => true,
+        've_ZA'       => true,
+        'vi'          => true,
+        'vi_VN'       => true,
+        'vo'          => true,
+        'vo_001'      => true,
+        'vun'         => true,
+        'vun_TZ'      => true,
+        'wae'         => true,
+        'wae_CH'      => true,
+        'wal'         => true,
+        'wal_ET'      => true,
+        'xh'          => true,
+        'xh_ZA'       => true,
+        'xog'         => true,
+        'xog_UG'      => true,
+        'yav'         => true,
+        'yav_CM'      => true,
+        'yo'          => true,
+        'yo_BJ'       => true,
+        'yo_NG'       => true,
+        'zgh'         => true,
+        'zgh_MA'      => true,
+        'zh'          => true,
+        'zh_Hans'     => true,
+        'zh_Hans_CN'  => true,
+        'zh_Hans_HK'  => true,
+        'zh_Hans_MO'  => true,
+        'zh_Hans_SG'  => true,
+        'zh_Hant'     => true,
+        'zh_Hant_HK'  => true,
+        'zh_Hant_MO'  => true,
+        'zh_Hant_TW'  => true,
+        'zu'          => true,
+        'zu_ZA'       => true,
     );
 
     /**
@@ -124,55 +793,252 @@
      * @var array $_territoryData
      */
     private static $_territoryData = array(
-        'AD' => 'ca_AD', 'AE' => 'ar_AE', 'AF' => 'fa_AF', 'AG' => 'en_AG', 'AI' => 'en_AI',
-        'AL' => 'sq_AL', 'AM' => 'hy_AM', 'AN' => 'pap_AN', 'AO' => 'pt_AO', 'AQ' => 'und_AQ',
-        'AR' => 'es_AR', 'AS' => 'sm_AS', 'AT' => 'de_AT', 'AU' => 'en_AU', 'AW' => 'nl_AW',
-        'AX' => 'sv_AX', 'AZ' => 'az_Latn_AZ', 'BA' => 'bs_BA', 'BB' => 'en_BB', 'BD' => 'bn_BD',
-        'BE' => 'nl_BE', 'BF' => 'mos_BF', 'BG' => 'bg_BG', 'BH' => 'ar_BH', 'BI' => 'rn_BI',
-        'BJ' => 'fr_BJ', 'BL' => 'fr_BL', 'BM' => 'en_BM', 'BN' => 'ms_BN', 'BO' => 'es_BO',
-        'BR' => 'pt_BR', 'BS' => 'en_BS', 'BT' => 'dz_BT', 'BV' => 'und_BV', 'BW' => 'en_BW',
-        'BY' => 'be_BY', 'BZ' => 'en_BZ', 'CA' => 'en_CA', 'CC' => 'ms_CC', 'CD' => 'sw_CD',
-        'CF' => 'fr_CF', 'CG' => 'fr_CG', 'CH' => 'de_CH', 'CI' => 'fr_CI', 'CK' => 'en_CK',
-        'CL' => 'es_CL', 'CM' => 'fr_CM', 'CN' => 'zh_Hans_CN', 'CO' => 'es_CO', 'CR' => 'es_CR',
-        'CU' => 'es_CU', 'CV' => 'kea_CV', 'CX' => 'en_CX', 'CY' => 'el_CY', 'CZ' => 'cs_CZ',
-        'DE' => 'de_DE', 'DJ' => 'aa_DJ', 'DK' => 'da_DK', 'DM' => 'en_DM', 'DO' => 'es_DO',
-        'DZ' => 'ar_DZ', 'EC' => 'es_EC', 'EE' => 'et_EE', 'EG' => 'ar_EG', 'EH' => 'ar_EH',
-        'ER' => 'ti_ER', 'ES' => 'es_ES', 'ET' => 'en_ET', 'FI' => 'fi_FI', 'FJ' => 'hi_FJ',
-        'FK' => 'en_FK', 'FM' => 'chk_FM', 'FO' => 'fo_FO', 'FR' => 'fr_FR', 'GA' => 'fr_GA',
-        'GB' => 'en_GB', 'GD' => 'en_GD', 'GE' => 'ka_GE', 'GF' => 'fr_GF', 'GG' => 'en_GG',
-        'GH' => 'ak_GH', 'GI' => 'en_GI', 'GL' => 'iu_GL', 'GM' => 'en_GM', 'GN' => 'fr_GN',
-        'GP' => 'fr_GP', 'GQ' => 'fan_GQ', 'GR' => 'el_GR', 'GS' => 'und_GS', 'GT' => 'es_GT',
-        'GU' => 'en_GU', 'GW' => 'pt_GW', 'GY' => 'en_GY', 'HK' => 'zh_Hant_HK', 'HM' => 'und_HM',
-        'HN' => 'es_HN', 'HR' => 'hr_HR', 'HT' => 'ht_HT', 'HU' => 'hu_HU', 'ID' => 'id_ID',
-        'IE' => 'en_IE', 'IL' => 'he_IL', 'IM' => 'en_IM', 'IN' => 'hi_IN', 'IO' => 'und_IO',
-        'IQ' => 'ar_IQ', 'IR' => 'fa_IR', 'IS' => 'is_IS', 'IT' => 'it_IT', 'JE' => 'en_JE',
-        'JM' => 'en_JM', 'JO' => 'ar_JO', 'JP' => 'ja_JP', 'KE' => 'en_KE', 'KG' => 'ky_Cyrl_KG',
-        'KH' => 'km_KH', 'KI' => 'en_KI', 'KM' => 'ar_KM', 'KN' => 'en_KN', 'KP' => 'ko_KP',
-        'KR' => 'ko_KR', 'KW' => 'ar_KW', 'KY' => 'en_KY', 'KZ' => 'ru_KZ', 'LA' => 'lo_LA',
-        'LB' => 'ar_LB', 'LC' => 'en_LC', 'LI' => 'de_LI', 'LK' => 'si_LK', 'LR' => 'en_LR',
-        'LS' => 'st_LS', 'LT' => 'lt_LT', 'LU' => 'fr_LU', 'LV' => 'lv_LV', 'LY' => 'ar_LY',
-        'MA' => 'ar_MA', 'MC' => 'fr_MC', 'MD' => 'ro_MD', 'ME' => 'sr_Latn_ME', 'MF' => 'fr_MF',
-        'MG' => 'mg_MG', 'MH' => 'mh_MH', 'MK' => 'mk_MK', 'ML' => 'bm_ML', 'MM' => 'my_MM',
-        'MN' => 'mn_Cyrl_MN', 'MO' => 'zh_Hant_MO', 'MP' => 'en_MP', 'MQ' => 'fr_MQ', 'MR' => 'ar_MR',
-        'MS' => 'en_MS', 'MT' => 'mt_MT', 'MU' => 'mfe_MU', 'MV' => 'dv_MV', 'MW' => 'ny_MW',
-        'MX' => 'es_MX', 'MY' => 'ms_MY', 'MZ' => 'pt_MZ', 'NA' => 'kj_NA', 'NC' => 'fr_NC',
-        'NE' => 'ha_Latn_NE', 'NF' => 'en_NF', 'NG' => 'en_NG', 'NI' => 'es_NI', 'NL' => 'nl_NL',
-        'NO' => 'nb_NO', 'NP' => 'ne_NP', 'NR' => 'en_NR', 'NU' => 'niu_NU', 'NZ' => 'en_NZ',
-        'OM' => 'ar_OM', 'PA' => 'es_PA', 'PE' => 'es_PE', 'PF' => 'fr_PF', 'PG' => 'tpi_PG',
-        'PH' => 'fil_PH', 'PK' => 'ur_PK', 'PL' => 'pl_PL', 'PM' => 'fr_PM', 'PN' => 'en_PN',
-        'PR' => 'es_PR', 'PS' => 'ar_PS', 'PT' => 'pt_PT', 'PW' => 'pau_PW', 'PY' => 'gn_PY',
-        'QA' => 'ar_QA', 'RE' => 'fr_RE', 'RO' => 'ro_RO', 'RS' => 'sr_Cyrl_RS', 'RU' => 'ru_RU',
-        'RW' => 'rw_RW', 'SA' => 'ar_SA', 'SB' => 'en_SB', 'SC' => 'crs_SC', 'SD' => 'ar_SD',
-        'SE' => 'sv_SE', 'SG' => 'en_SG', 'SH' => 'en_SH', 'SI' => 'sl_SI', 'SJ' => 'nb_SJ',
-        'SK' => 'sk_SK', 'SL' => 'kri_SL', 'SM' => 'it_SM', 'SN' => 'fr_SN', 'SO' => 'sw_SO',
-        'SR' => 'srn_SR', 'ST' => 'pt_ST', 'SV' => 'es_SV', 'SY' => 'ar_SY', 'SZ' => 'en_SZ',
-        'TC' => 'en_TC', 'TD' => 'fr_TD', 'TF' => 'und_TF', 'TG' => 'fr_TG', 'TH' => 'th_TH',
-        'TJ' => 'tg_Cyrl_TJ', 'TK' => 'tkl_TK', 'TL' => 'pt_TL', 'TM' => 'tk_TM', 'TN' => 'ar_TN',
-        'TO' => 'to_TO', 'TR' => 'tr_TR', 'TT' => 'en_TT', 'TV' => 'tvl_TV', 'TW' => 'zh_Hant_TW',
-        'TZ' => 'sw_TZ', 'UA' => 'uk_UA', 'UG' => 'sw_UG', 'UM' => 'en_UM', 'US' => 'en_US',
-        'UY' => 'es_UY', 'UZ' => 'uz_Cyrl_UZ', 'VA' => 'it_VA', 'VC' => 'en_VC', 'VE' => 'es_VE',
-        'VG' => 'en_VG', 'VI' => 'en_VI', 'VU' => 'bi_VU', 'WF' => 'wls_WF', 'WS' => 'sm_WS',
-        'YE' => 'ar_YE', 'YT' => 'swb_YT', 'ZA' => 'en_ZA', 'ZM' => 'en_ZM', 'ZW' => 'sn_ZW'
+        'AD' => 'ca_AD',
+        'AE' => 'ar_AE',
+        'AF' => 'fa_AF',
+        'AG' => 'en_AG',
+        'AI' => 'en_AI',
+        'AL' => 'sq_AL',
+        'AM' => 'hy_AM',
+        'AN' => 'pap_AN',
+        'AO' => 'pt_AO',
+        'AQ' => 'und_AQ',
+        'AR' => 'es_AR',
+        'AS' => 'sm_AS',
+        'AT' => 'de_AT',
+        'AU' => 'en_AU',
+        'AW' => 'nl_AW',
+        'AX' => 'sv_AX',
+        'AZ' => 'az_Latn_AZ',
+        'BA' => 'bs_BA',
+        'BB' => 'en_BB',
+        'BD' => 'bn_BD',
+        'BE' => 'nl_BE',
+        'BF' => 'mos_BF',
+        'BG' => 'bg_BG',
+        'BH' => 'ar_BH',
+        'BI' => 'rn_BI',
+        'BJ' => 'fr_BJ',
+        'BL' => 'fr_BL',
+        'BM' => 'en_BM',
+        'BN' => 'ms_BN',
+        'BO' => 'es_BO',
+        'BR' => 'pt_BR',
+        'BS' => 'en_BS',
+        'BT' => 'dz_BT',
+        'BV' => 'und_BV',
+        'BW' => 'en_BW',
+        'BY' => 'be_BY',
+        'BZ' => 'en_BZ',
+        'CA' => 'en_CA',
+        'CC' => 'ms_CC',
+        'CD' => 'sw_CD',
+        'CF' => 'fr_CF',
+        'CG' => 'fr_CG',
+        'CH' => 'de_CH',
+        'CI' => 'fr_CI',
+        'CK' => 'en_CK',
+        'CL' => 'es_CL',
+        'CM' => 'fr_CM',
+        'CN' => 'zh_Hans_CN',
+        'CO' => 'es_CO',
+        'CR' => 'es_CR',
+        'CU' => 'es_CU',
+        'CV' => 'kea_CV',
+        'CX' => 'en_CX',
+        'CY' => 'el_CY',
+        'CZ' => 'cs_CZ',
+        'DE' => 'de_DE',
+        'DJ' => 'aa_DJ',
+        'DK' => 'da_DK',
+        'DM' => 'en_DM',
+        'DO' => 'es_DO',
+        'DZ' => 'ar_DZ',
+        'EC' => 'es_EC',
+        'EE' => 'et_EE',
+        'EG' => 'ar_EG',
+        'EH' => 'ar_EH',
+        'ER' => 'ti_ER',
+        'ES' => 'es_ES',
+        'ET' => 'en_ET',
+        'FI' => 'fi_FI',
+        'FJ' => 'hi_FJ',
+        'FK' => 'en_FK',
+        'FM' => 'chk_FM',
+        'FO' => 'fo_FO',
+        'FR' => 'fr_FR',
+        'GA' => 'fr_GA',
+        'GB' => 'en_GB',
+        'GD' => 'en_GD',
+        'GE' => 'ka_GE',
+        'GF' => 'fr_GF',
+        'GG' => 'en_GG',
+        'GH' => 'ak_GH',
+        'GI' => 'en_GI',
+        'GL' => 'iu_GL',
+        'GM' => 'en_GM',
+        'GN' => 'fr_GN',
+        'GP' => 'fr_GP',
+        'GQ' => 'fan_GQ',
+        'GR' => 'el_GR',
+        'GS' => 'und_GS',
+        'GT' => 'es_GT',
+        'GU' => 'en_GU',
+        'GW' => 'pt_GW',
+        'GY' => 'en_GY',
+        'HK' => 'zh_Hant_HK',
+        'HM' => 'und_HM',
+        'HN' => 'es_HN',
+        'HR' => 'hr_HR',
+        'HT' => 'ht_HT',
+        'HU' => 'hu_HU',
+        'ID' => 'id_ID',
+        'IE' => 'en_IE',
+        'IL' => 'he_IL',
+        'IM' => 'en_IM',
+        'IN' => 'hi_IN',
+        'IO' => 'und_IO',
+        'IQ' => 'ar_IQ',
+        'IR' => 'fa_IR',
+        'IS' => 'is_IS',
+        'IT' => 'it_IT',
+        'JE' => 'en_JE',
+        'JM' => 'en_JM',
+        'JO' => 'ar_JO',
+        'JP' => 'ja_JP',
+        'KE' => 'en_KE',
+        'KG' => 'ky_Cyrl_KG',
+        'KH' => 'km_KH',
+        'KI' => 'en_KI',
+        'KM' => 'ar_KM',
+        'KN' => 'en_KN',
+        'KP' => 'ko_KP',
+        'KR' => 'ko_KR',
+        'KW' => 'ar_KW',
+        'KY' => 'en_KY',
+        'KZ' => 'ru_KZ',
+        'LA' => 'lo_LA',
+        'LB' => 'ar_LB',
+        'LC' => 'en_LC',
+        'LI' => 'de_LI',
+        'LK' => 'si_LK',
+        'LR' => 'en_LR',
+        'LS' => 'st_LS',
+        'LT' => 'lt_LT',
+        'LU' => 'fr_LU',
+        'LV' => 'lv_LV',
+        'LY' => 'ar_LY',
+        'MA' => 'ar_MA',
+        'MC' => 'fr_MC',
+        'MD' => 'ro_MD',
+        'ME' => 'sr_Latn_ME',
+        'MF' => 'fr_MF',
+        'MG' => 'mg_MG',
+        'MH' => 'mh_MH',
+        'MK' => 'mk_MK',
+        'ML' => 'bm_ML',
+        'MM' => 'my_MM',
+        'MN' => 'mn_Cyrl_MN',
+        'MO' => 'zh_Hant_MO',
+        'MP' => 'en_MP',
+        'MQ' => 'fr_MQ',
+        'MR' => 'ar_MR',
+        'MS' => 'en_MS',
+        'MT' => 'mt_MT',
+        'MU' => 'mfe_MU',
+        'MV' => 'dv_MV',
+        'MW' => 'ny_MW',
+        'MX' => 'es_MX',
+        'MY' => 'ms_MY',
+        'MZ' => 'pt_MZ',
+        'NA' => 'kj_NA',
+        'NC' => 'fr_NC',
+        'NE' => 'ha_Latn_NE',
+        'NF' => 'en_NF',
+        'NG' => 'en_NG',
+        'NI' => 'es_NI',
+        'NL' => 'nl_NL',
+        'NO' => 'nb_NO',
+        'NP' => 'ne_NP',
+        'NR' => 'en_NR',
+        'NU' => 'niu_NU',
+        'NZ' => 'en_NZ',
+        'OM' => 'ar_OM',
+        'PA' => 'es_PA',
+        'PE' => 'es_PE',
+        'PF' => 'fr_PF',
+        'PG' => 'tpi_PG',
+        'PH' => 'fil_PH',
+        'PK' => 'ur_PK',
+        'PL' => 'pl_PL',
+        'PM' => 'fr_PM',
+        'PN' => 'en_PN',
+        'PR' => 'es_PR',
+        'PS' => 'ar_PS',
+        'PT' => 'pt_PT',
+        'PW' => 'pau_PW',
+        'PY' => 'gn_PY',
+        'QA' => 'ar_QA',
+        'RE' => 'fr_RE',
+        'RO' => 'ro_RO',
+        'RS' => 'sr_Cyrl_RS',
+        'RU' => 'ru_RU',
+        'RW' => 'rw_RW',
+        'SA' => 'ar_SA',
+        'SB' => 'en_SB',
+        'SC' => 'crs_SC',
+        'SD' => 'ar_SD',
+        'SE' => 'sv_SE',
+        'SG' => 'en_SG',
+        'SH' => 'en_SH',
+        'SI' => 'sl_SI',
+        'SJ' => 'nb_SJ',
+        'SK' => 'sk_SK',
+        'SL' => 'kri_SL',
+        'SM' => 'it_SM',
+        'SN' => 'fr_SN',
+        'SO' => 'sw_SO',
+        'SR' => 'srn_SR',
+        'ST' => 'pt_ST',
+        'SV' => 'es_SV',
+        'SY' => 'ar_SY',
+        'SZ' => 'en_SZ',
+        'TC' => 'en_TC',
+        'TD' => 'fr_TD',
+        'TF' => 'und_TF',
+        'TG' => 'fr_TG',
+        'TH' => 'th_TH',
+        'TJ' => 'tg_Cyrl_TJ',
+        'TK' => 'tkl_TK',
+        'TL' => 'pt_TL',
+        'TM' => 'tk_TM',
+        'TN' => 'ar_TN',
+        'TO' => 'to_TO',
+        'TR' => 'tr_TR',
+        'TT' => 'en_TT',
+        'TV' => 'tvl_TV',
+        'TW' => 'zh_Hant_TW',
+        'TZ' => 'sw_TZ',
+        'UA' => 'uk_UA',
+        'UG' => 'sw_UG',
+        'UM' => 'en_UM',
+        'US' => 'en_US',
+        'UY' => 'es_UY',
+        'UZ' => 'uz_Cyrl_UZ',
+        'VA' => 'it_VA',
+        'VC' => 'en_VC',
+        'VE' => 'es_VE',
+        'VG' => 'en_VG',
+        'VI' => 'en_VI',
+        'VN' => 'vi_VN',
+        'VU' => 'bi_VU',
+        'WF' => 'wls_WF',
+        'WS' => 'sm_WS',
+        'YE' => 'ar_YE',
+        'YT' => 'swb_YT',
+        'ZA' => 'en_ZA',
+        'ZM' => 'en_ZM',
+        'ZW' => 'sn_ZW'
     );
 
     /**
@@ -486,6 +1352,12 @@
         $locale = self::_prepareLocale($locale);
 
         if (isset(self::$_localeData[(string) $locale]) === false) {
+            // Is it an alias? If so, we can use this locale
+            if (isset(self::$_localeAliases[$locale]) === true) {
+                $this->_locale = $locale;
+                return;
+            }
+
             $region = substr((string) $locale, 0, 3);
             if (isset($region[2]) === true) {
                 if (($region[2] === '_') or ($region[2] === '-')) {
@@ -816,6 +1688,11 @@
             return true;
         }
 
+        // Is it an alias?
+        if (is_string($locale) && array_key_exists($locale, self::$_localeAliases)) {
+            return true;
+        }
+
         if (($locale === null) || (!is_string($locale) and !is_array($locale))) {
             return false;
         }
@@ -1098,4 +1975,38 @@
 
         return $languages;
     }
+
+    /**
+     * Is the given locale in the list of aliases?
+     *
+     * @param  string|Zend_Locale $locale Locale to work on
+     * @return boolean
+     */
+    public static function isAlias($locale)
+    {
+        if ($locale instanceof Zend_Locale) {
+            $locale = $locale->toString();
+        }
+
+        return isset(self::$_localeAliases[$locale]);
+    }
+
+    /**
+     * Return an alias' actual locale.
+     *
+     * @param  string|Zend_Locale $locale Locale to work on
+     * @return string
+     */
+    public static function getAlias($locale)
+    {
+        if ($locale instanceof Zend_Locale) {
+            $locale = $locale->toString();
+        }
+
+        if (isset(self::$_localeAliases[$locale]) === true) {
+            return self::$_localeAliases[$locale];
+        }
+
+        return (string) $locale;
+    }
 }