Advertisement
Guest User

Untitled

a guest
Oct 19th, 2010
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 21.18 KB | None | 0 0
  1. <?php
  2. /**
  3. * @version: $Id$
  4. * @copyright: Copyright (C) 2006-2010 Elxis.org. All rights reserved.
  5. * @package: Elxis
  6. * @subpackage: Locale
  7. * @author: Ioannis Sannos
  8. * @email: info@elxis.org
  9. * @link: http://www.elxis.org
  10. * @license: http://www.gnu.org/copyleft/gpl.html GNU/GPL
  11. * Elxis CMS is a Free Software
  12. * @description: Sets Elxis Enviroment Locale
  13. */
  14.  
  15. defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
  16.  
  17.  
  18. class eLOCALE {
  19.  
  20.  
  21.     /*********************/
  22.     /* SET SYSTEM LOCALE */
  23.     /*********************/
  24.     static function set_locale($lang = 'english') {
  25.         global $mosConfig_locale;
  26.  
  27.         //unix locales per language
  28.         $unixlocales = array (
  29.             'afar' => array('aa_DJ.UTF8@euro', 'aa_DJ.UTF8', 'aa_DJ.UTF-8'),
  30.             'abkhazian' => array('ab_GE.UTF8@euro', 'ab_GE.UTF8', 'ab_GE.UTF-8'),
  31.             'afrikaans' => array('af_ZA.UTF8@euro', 'af_ZA.UTF8', 'af_ZA.UTF-8'),
  32.             'albanian' => array('sq_AL.UTF8@euro', 'sq_AL.UTF8', 'sq_AL.UTF-8'),
  33.             'arabic' => array('ar_SA.UTF8', 'ar_AE.UTF8', 'ar_EG.UTF8', 'ar_SA.UTF-8', 'ar_AE.UTF-8', 'ar_EG.UTF-8'),
  34.             'arabic_YE' => array('ar_YE.UTF8@euro', 'ar_YE.UTF8', 'ar_YE.UTF-8'),
  35.             'arabic_algeria' => array('ar_DZ.UTF8@euro', 'ar_DZ.UTF8', 'ar_DZ.UTF-8'),
  36.             'arabic_bahrain' => array('ar_BH.UTF8@euro', 'ar_BH.UTF8', 'ar_BH.UTF-8'),
  37.             'arabic_egypt' => array('ar_EG.UTF8@euro', 'ar_EG.UTF8', 'ar_EG.UTF-8'),
  38.             'arabic_iraq' => array('ar_IQ.UTF8@euro', 'ar_IQ.UTF8', 'ar_IQ.UTF-8'),
  39.             'arabic_jordan' => array('ar_JO.UTF8@euro', 'ar_JO.UTF8', 'ar_JO.UTF-8'),
  40.             'arabic_kuwait' => array('ar_KW.UTF8@euro', 'ar_KW.UTF8', 'ar_KW.UTF-8'),
  41.             'arabic_lebanon' => array('ar_LB.UTF8@euro', 'ar_LB.UTF8', 'ar_LB.UTF-8'),
  42.             'arabic_libya' => array('ar_LY.UTF8@euro', 'ar_LY.UTF8', 'ar_LY.UTF-8'),
  43.             'arabic_morocco' => array('ar_MA.UTF8@euro', 'ar_MA.UTF8', 'ar_MA.UTF-8'),
  44.             'arabic_oman' => array('ar_OM.UTF8@euro', 'ar_OM.UTF8', 'ar_OM.UTF-8'),
  45.             'arabic_qatar' => array('ar_QA.UTF8@euro', 'ar_QA.UTF8', 'ar_QA.UTF-8'),
  46.             'arabic_saudiarabia' => array('ar_SA.UTF8@euro', 'ar_SA.UTF8', 'ar_SA.UTF-8'),
  47.             'arabic_syria' => array('ar_SY.UTF8@euro', 'ar_SY.UTF8', 'ar_SY.UTF-8'),
  48.             'arabic_tunisia' => array('ar_TN.UTF8@euro', 'ar_TN.UTF8', 'ar_TN.UTF-8'),
  49.             'arabic_uae' => array('ar_AE.UTF8@euro', 'ar_AE.UTF8', 'ar_AE.UTF-8'),
  50.             'armenian' => array('hy_AM.UTF8@euro', 'hy_AM.UTF8', 'hy_AM.UTF-8'),
  51.             'azeri' => array('az_Cyrl_AZ.UTF8', 'az_AZ.UTF8', 'az_Cyrl_AZ.UTF-8'),
  52.             'azeri_latin' => array('az_Latn_AZ.UTF8', 'en_US.UTF8', 'az_Latn_AZ.UTF-8'),
  53.             'basque' => array('eu_ES.UTF8@euro', 'eu_ES.UTF8', 'eu_ES.UTF-8'),
  54.             'belarusian' => array('be_BY.UTF8@euro', 'be_BY.UTF8', 'be_BY.UTF-8'),
  55.             'bengali' => array('bn_IN.UTF8@euro', 'bn_IN.UTF8', 'bn_IN.UTF-8'),
  56.             'bosnian' => array('bs_BA.UTF8@euro', 'bs_BA@UTF8', 'bs_BA.UTF-8'),
  57.             'bosnian_latin' => array('bs_Latn_BA.UTF8', 'en_US.UTF8', 'bs_Latn_BA.UTF-8'),
  58.             'brazilian' => array('pt_BR.UTF8@euro', 'pt_BR.UTF8', 'pt_PT.UTF8', 'pt_BR.UTF-8'),
  59.             'bulgarian' => array('bg_BG.UTF8@euro', 'bg_BG.UTF8', 'bg_BG.UTF-8'),
  60.             'catalan' => array('ca_ES.UTF8@euro', 'ca_ES.UTF8', 'ca_ES.UTF-8'),
  61.             'chinese' => array('zh_CN.UTF8@euro', 'zh_CN.UTF8', 'zh_CN.UTF-8'),
  62.             'chinese_traditional' => array('zh_TW.UTF8', 'zh_TW.UTF-8', 'zh_CN.UTF8', 'zh_CN.UTF-8', 'en_US.UTF8', 'en_US.UTF-8'),
  63.             'chinese_simplified' => array('zh_CN.UTF8', 'zh_CN.UTF-8', 'zh_TW.UTF8', 'zh_TW.UTF-8', 'en_US.UTF8', 'en_US.UTF-8'),
  64.             'chinese_hongkong' => array('zh_HK.UTF8@euro', 'zh_HK.UTF8', 'zh_CN.UTF8', 'zh_HK.UTF-8'),
  65.             'chinese_macau' => array('zh_MO.UTF8@euro', 'zh_MO.UTF8', 'zh_CN.UTF8', 'zh_MO.UTF-8'),
  66.             'chinese_singapore' => array('zh_SG.UTF8@euro', 'zh_SG.UTF8', 'zh_CN.UTF8', 'zh_SG.UTF-8'),
  67.             'chinese_taiwan' => array('zh_TW.UTF8@euro', 'zh_TW.UTF8', 'zh_CN.UTF8', 'zh_TW.UTF-8'),
  68.             'creole' => array('ht_HT.UTF8', 'fr_FR.UTF8', 'ht_HT.UTF-8'),
  69.             'croatian' => array('hr_HR.UTF8@euro', 'hr_HR.UTF8', 'hr_BA.UTF8@euro', 'hr_BA.UTF8', 'hr_HR.UTF-8'),
  70.             'cypriotic' => array('el_CY.UTF8@euro', 'el_CY.UTF8', 'el_GR.UTF8', 'el_CY.UTF-8', 'el_GR.UTF-8'),
  71.             'czech' => array('cs_CZ.UTF8@euro', 'cs_CZ.UTF8', 'cs_CZ.UTF-8'),
  72.             'danish' => array('da_DK.UTF8@euro', 'da_DK.UTF8', 'da_DK.UTF-8'),
  73.             'dari' => array('da_AF.UTF8@euro', 'da_AF.UTF8', 'fa_IR.UTF8', 'da_AF.UTF-8'),
  74.             'divehi' => array('dv_MV.UTF8@euro', 'dv_MV.UTF8', 'dv_MV.UTF-8'),
  75.             'dutch' => array('nl_NL.UTF8@euro', 'nl_NL.UTF8', 'nl_NL.UTF-8'),
  76.             'dutch_belgium' => array('nl_BE.UTF8@euro', 'nl_BE.UTF8', 'nl_NL.UTF8', 'nl_BE.UTF-8'),
  77.             'english' => array('en_GB.UTF8', 'en_US.UTF8', 'en_GB.UTF-8', 'en_US.UTF-8', 'en_GB', 'en'),
  78.             'english_australia' => array('en_AU.UTF8@euro', 'en_AU.UTF8', 'en_US.UTF8', 'en_AU.UTF-8'),
  79.             'english_belize' => array('en_BZ.UTF8@euro', 'en_BZ.UTF8', 'en_US.UTF8', 'en_BZ.UTF-8'),
  80.             'english_canada' => array('en_CA.UTF8@euro', 'en_CA.UTF8', 'en_US.UTF8', 'en_CA.UTF-8'),
  81.             'english_ireland' => array('en_IE.UTF8@euro', 'en_IE.UTF8', 'en_US.UTF8', 'en_IE.UTF-8'),
  82.             'english_jamaica' => array('en_JM.UTF8@euro', 'en_JM.UTF8', 'en_US.UTF8', 'en_JM.UTF-8'),
  83.             'english_newzealang' => array('en_NZ.UTF8@euro', 'en_NZ.UTF8', 'en_US.UTF8', 'en_NZ.UTF-8'),
  84.             'english_philippines' => array('en_PH.UTF8@euro', 'en_PH.UTF8', 'en_US.UTF8', 'en_PH.UTF-8'),
  85.             'english_southafrica' => array('en_ZA.UTF8@euro', 'en_ZA.UTF8', 'en_US.UTF8', 'en_ZA.UTF-8'),
  86.             'english_trinidad' => array('en_TT.UTF8@euro', 'en_TT.UTF8', 'en_US.UTF8', 'en_TT.UTF-8'),
  87.             'english_usa' => array('en_US.UTF8@euro', 'en_US.UTF8', 'en_US.UTF-8'),
  88.             'estonian' => array('et_EE.UTF8@euro', 'et_EE.UTF8', 'et_EE.UTF-8'),
  89.             'faeroese' => array('fo_FO.UTF8@euro', 'fo_FO.UTF8', 'fo_FO.UTF-8'),
  90.             'farsi' => array('fa_IR.UTF8@euro', 'fa_IR.UTF8', 'fa_IR.UTF-8'),
  91.             'finnish' => array('fi_FI.UTF8@euro', 'fi_FI.UTF8', 'fi_FI.UTF-8'),
  92.             'french' => array('fr_FR.UTF8@euro', 'fr_FR.UTF8', 'fr_FR.UTF-8'),
  93.             'french_belgium' => array('fr_BE.UTF8@euro', 'fr_BE.UTF8', 'fr_FR.utf8', 'fr_BE.UTF-8'),
  94.             'french_canada' => array('fr_CA.UTF8@euro', 'fr_CA.UTF8', 'fr_FR.utf8', 'fr_CA.UTF-8'),
  95.             'french_luxemburg' => array('fr_LU.UTF8@euro', 'fr_LU.UTF8', 'fr_FR.utf8', 'fr_LU.UTF-8'),
  96.             'french_monaco' => array('fr_MC.UTF8@euro', 'fr_MC.UTF8', 'fr_FR.utf8', 'fr_MC.UTF-8'),
  97.             'french_switzerland' => array('fr_CH.UTF8@euro', 'fr_CH.UTF8', 'fr_FR.utf8', 'fr_CH.UTF-8'),
  98.             'fyrom' => array('mk_MK.UTF8@euro', 'mk_MK.UTF8', 'mk_MK.UTF-8'),
  99.             'galician' => array('gl_ES.UTF8@euro', 'gl_ES.UTF8', 'es_ES.UTF8', 'gl_ES.UTF-8'),
  100.             'german' => array('de_DE.UTF8@euro', 'de_DE.UTF8', 'de_DE.UTF-8'),
  101.             'german_austria' => array('de_AT.UTF8@euro', 'de_AT.UTF8', 'de_DE.UTF8', 'de_AT.UTF-8'),
  102.             'german_liechtenstein' => array('de_LI.UTF8@euro', 'de_LI.UTF8', 'de_DE.UTF8', 'de_LI.UTF-8'),
  103.             'german_luxembourg' => array('de_LU.UTF8@euro', 'de_LU.UTF8', 'de_DE.UTF8', 'de_LU.UTF-8'),
  104.             'german_switzerland' => array('de_CH.UTF8@euro', 'de_CH.UTF8', 'de_DE.UTF8', 'de_CH.UTF-8'),
  105.             'greek' => array('el_GR.UTF8@euro', 'el_GR.UTF8', 'el_GR.UTF-8'),
  106.             'greek_cyprus' => array('el_CY.UTF8@euro', 'el_CY.UTF8', 'el_GR.UTF8', 'el_CY.UTF-8'),
  107.             'gujarati' => array('gu_IN.UTF8@euro', 'gu_IN.UTF8', 'gu_IN.UTF-8'),
  108.             'haitian_creole' => array('ht_HT.UTF8', 'fr_FR.UTF8', 'ht_HT.UTF-8'),
  109.             'hebrew' => array('he_IL.UTF8@euro', 'he_IL.UTF8', 'he_IL.UTF-8'),
  110.             'hindi' => array('hi_IN.UTF8@euro', 'hi_IN.UTF8', 'hi_IN.UTF-8'),
  111.             'hungarian' => array('hu_HU.UTF8@euro', 'hu_HU.UTF8', 'hu_HU.UTF-8'),
  112.             'icelandic' => array('is_IS.UTF8@euro', 'is_IS.UTF8', 'is_IS.UTF-8'),
  113.             'indonesian' => array('id_ID.UTF8@euro', 'id_ID.UTF8', 'id_ID.UTF-8'),
  114.             'irish' => array('ga_IE.UTF8@euro', 'ga_IE.utf8', 'ga_IE.UTF-8'),
  115.             'italian' => array('it_IT.UTF8@euro', 'it_IT.UTF8', 'it_IT.UTF-8'),
  116.             'italian_switzerland' => array('it_CH.UTF8@euro', 'it_CH.UTF8', 'it_IT.UTF8', 'it_CH.UTF-8'),
  117.             'japanese' => array('ja_JP.UTF8@euro', 'ja_JP.UTF8', 'ja_JP.UTF-8'),
  118.             'kannada' => array('kn_IN.UTF8@euro', 'kn_IN.UTF8', 'kn_IN.UTF-8'),
  119.             'kazakh' => array('kk_KZ.UTF8@euro', 'kk_KZ.UTF8', 'kk_KZ.UTF-8'),
  120.             'konkani' => array('kok_IN.UTF8@euro', 'kok_IN.UTF8', 'kok_IN.UTF-8'),
  121.             'korean' => array('ko_KR.UTF8@euro', 'ko_KR.UTF8', 'ko_KR.UTF-8'),
  122.             'kyrgyz' => array('ky_KG.UTF8@euro', 'ky_KG.UTF8', 'ky_KG.UTF-8'),
  123.             'latvian' => array('lv_LV.UTF8@euro', 'lv_LV.UTF8', 'lv_LV.UTF-8'),
  124.             'lithuanian' => array('lt_LT.UTF8@euro', 'lt_LT.UTF8', 'lt_LT.UTF-8'),
  125.             'malay' => array('ms_MY.UTF8@euro', 'ms_MY.UTF8', 'ms_MY.UTF-8'),
  126.             'malay_brunei' => array('ms_BN.UTF8@euro', 'ms_BN.UTF8', 'ms_MY.UTF8', 'ms_BN.UTF-8'),
  127.             'malayalam' => array('ml_IN.UTF8@euro', 'ml_IN.UTF8', 'ml_IN.UTF-8'),
  128.             'maltese' => array('mt_MT.UTF8@euro', 'mt_MT.UTF8', 'mt_MT.UTF-8'),
  129.             'maori' => array('mi_NZ.UTF8@euro', 'mi_NZ.UTF8', 'mi_NZ.UTF-8'),
  130.             'marathi' => array('mr_IN.UTF8@euro', 'mr_IN.UTF8', 'mr_IN.UTF-8'),
  131.             'mexican' => array('es_MX.UTF8@euro', 'es_MX.UTF8', 'es_ES.UTF8', 'es_MX.UTF-8'),
  132.             'mongolian' => array('mn_MN.UTF8@euro', 'mn_MN.UTF8', 'mn_MN.UTF-8'),
  133.             'norwegian' => array('nb_NO.UTF8@euro', 'nb_NO.UTF8', 'no_NO.UTF8', 'nb_NO.UTF-8'),
  134.             'norwegian_nynorsk' => array('nn_NO.UTF8@euro', 'nn_NO.UTF8', 'no_NO.UTF8', 'nn_NO.UTF-8'),
  135.             'pashto' => array('pa_AF.UTF8@euro', 'pa_AF.UTF8', 'fa_IR.UTF8', 'pa_AF.UTF-8'),
  136.             'persian' => array('fa_IR.UTF8@euro', 'fa_IR.UTF8', 'fa_IR.UTF-8'),
  137.             'polish' => array('pl_PL.UTF8@euro', 'pl_PL.UTF8', 'pl_PL.UTF-8'),
  138.             'portuguese' => array('pt_PT.UTF8@euro', 'pt_PT.UTF8', 'pt_PT.UTF-8'),
  139.             'portuguese_brazil' => array('pt_BR.UTF8@euro', 'pt_BR.UTF8', 'pt_PT.UTF8', 'pt_BR.UTF-8'),
  140.             'punjabi' => array('pa_IN.UTF8@euro', 'pa_IN.UTF8', 'pa_IN.UTF-8'),
  141.             'quechua_bolivia' => array('quz_BO.UTF8@euro', 'quz_BO.UTF8', 'quz_BO.UTF-8'),
  142.             'quechua_equador' => array('quz_EC.UTF8@euro', 'quz_EC.UTF8', 'quz_EC.UTF-8'),
  143.             'quechua_peru' => array('quz_PE.UTF8@euro', 'quz_PE.UTF8', 'quz_PE.UTF-8'),
  144.             'romanian' => array('ro_RO.UTF8@euro', 'ro_RO.UTF8', 'ro_RO.UTF-8'),
  145.             'russian' => array('ru_RU.UTF8@euro', 'ru_RU.UTF8', 'ru_RU.UTF-8'),
  146.             'sami_inari' => array('smn_FI.UTF8@euro', 'smn_FI.UTF8', 'smn_FI.UTF-8'),
  147.             'sami_lule' => array('smj_SE.UTF8@euro', 'smj_SE.UTF8', 'smj_NO.UTF8', 'smj_SE.UTF-8', 'smj_NO.UTF-8'),
  148.             'sami_northern' => array('se_SE.UTF8', 'se_NO.UTF8', 'se_FI.UTF8', 'se_FI.UTF-8', 'se_NO.UTF-8'),
  149.             'sami_skolt' => array('sms_FI.UTF8', 'sms_FI.UTF-8'),
  150.             'sami_southern' => array('sma_SE.UTF8', 'sma_NO.UTF8', 'sma_SE.UTF-8', 'sma_NO.UTF-8'),
  151.             'sanskrit' => array('sa_IN.UTF8@euro', 'sa_IN.UTF8', 'sa_IN.UTF-8'),
  152.             'serbian' => array('sr_RS.UTF8@latin', 'sr_Latn_CS.UTF8', 'sr_Latn_CS@UTF8', 'sr_Latn_RS.UTF8', 'sr_Latn_RS@UTF8', 'en_US.UTF8', 'en_US.UTF-8'),
  153.             'srpski' => array('sr_Cyrl_CS.UTF8', 'sr_RS.utf8', 'sr_CS.UTF8', 'sr_Cyrl_CS@UTF-8'),
  154.             'slovak' => array('sk_SK.UTF8@euro', 'sk_SK.UTF8', 'sk_SK.UTF-8'),
  155.             'slovenian' => array('sl_SI.UTF8@euro', 'sl_SI.UTF8', 'sl_SI.UTF-8'),
  156.             'spanish' => array('es_ES.UTF8@euro', 'es_ES.UTF8', 'es_ES.UTF-8'),
  157.             'spanish_argentina' => array('es_AR.UTF8@euro', 'es_AR.UTF8', 'es_ES.UTF8', 'es_AR.UTF-8'),
  158.             'spanish_bolivia' => array('es_BO.UTF8@euro', 'es_BO.UTF8', 'es_ES.UTF8', 'es_BO.UTF-8'),
  159.             'spanish_chile' => array('es_CL.UTF8@euro', 'es_CL.UTF8', 'es_ES.UTF8', 'es_CL.UTF-8'),
  160.             'spanish_costarica' => array('es_CR.UTF8@euro', 'es_CR.UTF8', 'es_ES.UTF8', 'es_CR.UTF-8'),
  161.             'spanish_dominican' => array('es_DO.UTF8@euro', 'es_DO.UTF8', 'es_ES.UTF8', 'es_DO.UTF-8'),
  162.             'spanish_elsalvador' => array('es_SV.UTF8@euro', 'es_SV.UTF8', 'es_ES.UTF8', 'es_SV.UTF-8'),
  163.             'spanish_equador' => array('es_EC.UTF8@euro', 'es_EC.UTF8', 'es_ES.UTF8', 'es_EC.UTF-8'),
  164.             'spanish_guatemala' => array('es_GT.UTF8@euro', 'es_GT.UTF8', 'es_ES.UTF8', 'es_GT.UTF-8'),
  165.             'spanish_honduras' => array('es_HN.UTF8@euro', 'es_HN.UTF8', 'es_ES.UTF8', 'es_HN.UTF-8'),
  166.             'spanish_mexico' => array('es_MX.UTF8@euro', 'es_MX.UTF8', 'es_ES.UTF8', 'es_MX.UTF-8'),
  167.             'spanish_nicaragua' => array('es_NI.UTF8@euro', 'es_NI.UTF8', 'es_ES.UTF8', 'es_NI.UTF-8'),
  168.             'spanish_panama' => array('es_PA.UTF8@euro', 'es_PA.UTF8', 'es_ES.UTF8', 'es_PA.UTF-8'),
  169.             'spanish_paraguay' => array('es_PY.UTF8@euro', 'es_PY.UTF8', 'es_ES.UTF8', 'es_PY.UTF-8'),
  170.             'spanish_peru' => array('es_PE.UTF8@euro', 'es_PE.UTF8', 'es_ES.UTF8', 'es_PE.UTF-8'),
  171.             'spanish_puertorico' => array('es_PR.UTF8@euro', 'es_PR.UTF8', 'es_ES.UTF8', 'es_PR.UTF-8'),
  172.             'spanish_uruguay' => array('es_UY.UTF8@euro', 'es_UY.UTF8', 'es_ES.UTF8', 'es_UY.UTF-8'),
  173.             'spanish_venezuela' => array('es_VE.UTF8@euro', 'es_VE.UTF8', 'es_ES.UTF8', 'es_VE.UTF-8'),
  174.             'swahili' => array('sw_KE.UTF8@euro', 'sw_KE.UTF8', 'sw_KE.UTF-8'),
  175.             'swedish' => array('sv_SE.UTF8@euro', 'sv_SE.UTF8', 'sv_SE.UTF-8'),
  176.             'swedish_finland' => array('sv_FI.UTF8@euro', 'sv_FI.UTF8', 'sv_FI.UTF-8'),
  177.             'syriac' => array('syr_SY.UTF8@euro', 'syr_SY.UTF8', 'syr_SY.UTF-8'),
  178.             'tamil' => array('ta_IN.UTF8@euro', 'ta_IN.UTF8', 'ta_IN.UTF-8'),
  179.             'tatar' => array('tt_RU.UTF8@euro', 'tt_RU.UTF8', 'tt_RU.UTF-8'),
  180.             'telegu' => array('te_IN.UTF8@euro', 'te_IN.UTF8', 'te_IN.UTF-8'),
  181.             //'turkish' => array('tr_TR.UTF8', 'tr_TR.UTF-8'), //PHP 5.2 bug with Turkish locale
  182.             'turkish' => array( 'en_GB.UTF8', 'en_US.UTF8', 'en_GB.UTF-8', 'en_US.UTF-8', 'en'),
  183.             'ukrainian' => array('uk_UA.UTF8@euro', 'uk_UA.UTF8', 'uk_UA.UTF-8'),
  184.             'urdu' => array('ur_PK.UTF8@euro', 'ur_PK.UTF8', 'ur_PK.UTF-8'),
  185.             'uzbek' => array('uz_Cyrl_UZ.UTF8', 'uz_UZ.UTF8', 'uz_Cyrl_UZ.UTF-8'),
  186.             'uzbek_latin' => array('uz_Latn_UZ.UTF8', 'en_US.UTF8', 'uz_Latn_UZ.UTF-8'),
  187.             'vietnamese' => array('vi_VN.UTF8@euro', 'vi_VN.UTF8', 'vi_VN.UTF-8'),
  188.             'walloon' => array('wa_BE.UTF8@euro', 'wa_BE.UTF8', 'wa_BE.UTF-8'),
  189.             'welsh' => array('cy_GB.UTF8@euro', 'cy_GB.UTF8', 'cy_GB.UTF-8'),
  190.             'xhosa' => array('xh_ZA.UTF8@euro', 'xh_ZA.UTF8', 'xh_ZA.UTF-8'),
  191.             'zulu' => array('zu_ZA.UTF8@euro', 'zu_ZA.UTF8', 'zu_ZA.UTF-8')    
  192.         );
  193.  
  194.         //Windows locale is set always to english
  195.         $winlocales = array (
  196.             'english' => array ('english', 'eng')
  197.         );
  198.  
  199.         $os = strtoupper(substr(php_uname(), 0, 3));
  200.  
  201.         if (phpversion() >= '5.1.0') {
  202.             $tz = @date_default_timezone_get();
  203.             date_default_timezone_set($tz);
  204.         }
  205.  
  206.         if (trim($mosConfig_locale) == '') {
  207.         //switch to auto locale selection
  208.             if ( $os == 'WIN') {
  209.                 setlocale (LC_COLLATE, $winlocales['english']);
  210.                 setlocale (LC_CTYPE, $winlocales['english']);
  211.                 setlocale (LC_TIME, $winlocales['english']);   
  212.             } else if (array_key_exists( $lang, $unixlocales)) {
  213.             //if lang is a registered Elxis language  
  214.                 setlocale (LC_COLLATE, $unixlocales[$lang]);
  215.                 setlocale (LC_CTYPE, $unixlocales[$lang]);
  216.                 setlocale (LC_TIME, $unixlocales[$lang]);
  217.             } else {
  218.                 setlocale (LC_COLLATE, $unixlocales['english']);
  219.                 setlocale (LC_CTYPE, $unixlocales['english']);
  220.                 setlocale (LC_TIME, $unixlocales['english']);
  221.             }
  222.         } else {
  223.             //manual locale selection
  224.             setlocale (LC_COLLATE, $mosConfig_locale);
  225.             setlocale (LC_CTYPE, $mosConfig_locale);
  226.             setlocale (LC_TIME, $mosConfig_locale);
  227.         }
  228.     }
  229.  
  230.  
  231.     /********************************/
  232.     /* STRFTIME SUPPORT FOR WINDOWS */
  233.     /********************************/
  234.     static function strftime_os($format, $ts = null) {
  235.         if( strtoupper(substr(php_uname(), 0, 3)) == 'WIN' ) {
  236.             if (!$ts) { $ts = time(); }
  237.             $mapping = array(
  238.                 '%C' => sprintf("%02d", date("Y", $ts) / 100),
  239.                 '%D' => '%m/%d/%y',
  240.                 '%e' => sprintf("%' 2d", date("j", $ts)),
  241.                 '%h' => '%b',
  242.                 '%n' => "\n",
  243.                 '%r' => date("h:i:s", $ts) . " %p",
  244.                 '%R' => date("H:i", $ts),
  245.                 '%t' => "\t",
  246.                 '%T' => '%H:%M:%S',
  247.                 '%u' => ($w = date("w", $ts)) ? $w : 7
  248.             );
  249.             $format = str_replace( array_keys($mapping), array_values($mapping), $format );
  250.         }
  251.         return strftime($format, $ts);
  252.     }
  253.  
  254.  
  255.     /******************************************/
  256.     /*ELXIS TO ISO639 CONVERTER (AND REVERSE) */
  257.     /******************************************/
  258.     static public function elxis_iso639 ($lang = 'english', $reverse=0) {
  259.         $elxisL = array (
  260.             'afar' => 'aa',
  261.             'abkhazian' => 'ab',
  262.             'afrikaans' => 'af',
  263.             'albanian' => 'sq',
  264.             'arabic' => 'ar',
  265.             'arabic_YE' => 'ar-YE',
  266.             'arabic_algeria' => 'ar-DZ',
  267.             'arabic_bahrain' => 'ar-BH',
  268.             'arabic_egypt' => 'ar-EG',
  269.             'arabic_iraq' => 'ar-IQ',
  270.             'arabic_jordan' => 'ar-JO',
  271.             'arabic_kuwait' => 'ar-KW',
  272.             'arabic_lebanon' => 'ar-LB',
  273.             'arabic_libya' => 'ar-LY',
  274.             'arabic_morocco' => 'ar-MA',
  275.             'arabic_oman' => 'ar-OM',
  276.             'arabic_qatar' => 'ar-QA',
  277.             'arabic_saudiarabia' => 'ar-SA',
  278.             'arabic_syria' => 'ar-SY',
  279.             'arabic_tunisia' => 'ar-TN',
  280.             'arabic_uae' => 'ar-AE',
  281.             'armenian' => 'hy',
  282.             'azeri' => 'az',
  283.             'azeri_latin' => 'az-Latn-AZ',
  284.             'basque' => 'eu',
  285.             'belarusian' => 'be',
  286.             'bengali' => 'bn',
  287.             'bosnian' => 'bs',
  288.             'bosnian_latin' => 'bs-Latn-BA',
  289.             'brazilian' => 'pt-BR', //alias of portuguese_brazil
  290.             'bulgarian' => 'bg',
  291.             'catalan' => 'ca',
  292.             'chinese' => 'zh',
  293.             'chinese_traditional' => 'zh-Hant',
  294.             'chinese_simplified' => 'zh-Hans',
  295.             'chinese_hongkong' => 'zh-HK',
  296.             'chinese_macau' => 'zh-MO',
  297.             'chinese_singapore' => 'zh-SG',
  298.             'chinese_taiwan' => 'zh_TW',
  299.             'creole' => 'ht',
  300.             'croatian' => 'hr',
  301.             //'cypriotic' => 'el-CY', //alias of greek_cyprus
  302.             'czech' => 'cs',
  303.             'danish' => 'da',
  304.             'dari' => 'da-AF',
  305.             'divehi' => 'dv',
  306.             'dutch' => 'nl',
  307.             'dutch_belgium' => 'nl-BE',
  308.             'english' => 'en',
  309.             'english_australia' => 'en-AU',
  310.             'english_belize' => 'en-BZ',
  311.             'english_canada' => 'en-CA',
  312.             'english_ireland' => 'en-IE',
  313.             'english_jamaica' => 'en-JM',
  314.             'english_newzealang' => 'en-NZ',
  315.             'english_philippines' => 'en-PH',
  316.             'english_southafrica' => 'en-ZA',
  317.             'english_trinidad' => 'en-TT',
  318.             'english_usa' => 'en-US',
  319.             'estonian' => 'et',
  320.             'faeroese' => 'fo',
  321.             //'farsi' => 'fa', //alias of persian
  322.             'finnish' => 'fi',
  323.             'french' => 'fr',
  324.             'french_belgium' => 'fr-BE',
  325.             'french_canada' => 'fr-CA',
  326.             'french_luxemburg' => 'fr-LU',
  327.             'french_monaco' => 'fr-MC',
  328.             'french_switzerland' => 'fr-CH',
  329.             'fyrom' => 'mk',
  330.             'galician' => 'gl',
  331.             'german' => 'de',
  332.             'german_austria' => 'de-AT',
  333.             'german_liechtenstein' => 'de-LI',
  334.             'german_luxembourg' => 'de-LU',
  335.             'german_switzerland' => 'de-CH',
  336.             'greek' => 'el',
  337.             'greek_cyprus' => 'el-CY',
  338.             'gujarati' => 'gu',
  339.             'hebrew' => 'he',
  340.             'hindi' => 'hi',
  341.             'hungarian' => 'hu',
  342.             'icelandic' => 'is',
  343.             'indonesian' => 'id',
  344.             'irish' => 'ga-IE',
  345.             'italian' => 'it',
  346.             'italian_switzerland' => 'it-CH',
  347.             'japanese' => 'ja',
  348.             'kannada' => 'kn',
  349.             'kazakh' => 'kk',
  350.             'konkani' => 'kok',
  351.             'korean' => 'ko',
  352.             'kyrgyz' => 'ky',
  353.             'latvian' => 'lv',
  354.             'lithuanian' => 'lt',
  355.             'malay' => 'ms',
  356.             'malay_brunei' => 'ms-BN',
  357.             'malayalam' => 'ml',
  358.             'maltese' => 'mt',
  359.             'maori' => 'mi',
  360.             'marathi' => 'mr',
  361.             'mexican' => 'es-MX', //alias of spanish_mexico
  362.             'mongolian' => 'mn',
  363.             'norwegian' => 'nb',
  364.             'norwegian_nynorsk' => 'nn',
  365.             'pashto' => 'pa',
  366.             'persian' => 'fa',
  367.             'polish' => 'pl',
  368.             'portuguese' => 'pt',
  369.             //'portuguese_brazil' => 'pt-BR',
  370.             'punjabi' => 'pa',
  371.             'quechua_bolivia' => 'quz-BO',
  372.             'quechua_equador' => 'quz-EC',
  373.             'quechua_peru' => 'quz-PE',
  374.             'romanian' => 'ro',
  375.             'russian' => 'ru',
  376.             'sami_inari' => 'smn-FI',
  377.             'sami_lule' => 'smj-SE',
  378.             'sami_lule' => 'smj-NO',
  379.             'sami_northern' => 'se',
  380.             'sami_northern' => 'se-NO',
  381.             'sami_skolt' => 'sms-FI',
  382.             'sami_southern' => 'sma-SE',
  383.             'sami_southern' => 'sma-NO',
  384.             'sanskrit' => 'sa-IN',
  385.             'serbian' => 'sr',
  386.             'srpski' => 'rs',
  387.             'slovak' => 'sk',
  388.             'slovenian' => 'sl',
  389.             'spanish' => 'es',
  390.             'spanish_argentina' => 'es-AR',
  391.             'spanish_bolivia' => 'es-BO',
  392.             'spanish_chile' => 'es-CL',
  393.             'spanish_costarica' => 'es-CR',
  394.             'spanish_dominican' => 'es-DO',
  395.             'spanish_elsalvador' => 'es-SV',
  396.             'spanish_equador' => 'es-EC',
  397.             'spanish_guatemala' => 'es-GT',
  398.             'spanish_honduras' => 'es-HN',
  399.             //'spanish_mexico' => 'es-MX',
  400.             'spanish_nicaragua' => 'es-NI',
  401.             'spanish_panama' => 'es-PA',
  402.             'spanish_paraguay' => 'es-PY',
  403.             'spanish_peru' => 'es-PE',
  404.             'spanish_puertorico' => 'es-PR',
  405.             'spanish_uruguay' => 'es-UY',
  406.             'spanish_venezuela' => 'es-VE',
  407.             'swahili' => 'sw',
  408.             'swedish' => 'sv',
  409.             'swedish_finland' => 'sv-FI',
  410.             'syriac' => 'syr',
  411.             'tamil' => 'ta',
  412.             'tatar' => 'tt',
  413.             'telegu' => 'te',
  414.             'turkish' => 'tr',
  415.             'ukrainian' => 'uk',
  416.             'urdu' => 'ur',
  417.             'uzbek' => 'uz',
  418.             'uzbek_latin' => 'uz-Latn-UZ',
  419.             'vietnamese' => 'vi',
  420.             'walloon' => 'wa',
  421.             'welsh' => 'cy',
  422.             'xhosa' => 'xh',
  423.             'zulu' => 'zu'
  424.         );
  425.  
  426.         if ($reverse) {
  427.             $arr = array_keys($elxisL, $lang);
  428.             return ($arr && (count($arr) > 0)) ? $arr[0] : '';
  429.         } else {
  430.             return (isset($elxisL[$lang])) ? $elxisL[$lang] : '';
  431.         }
  432.     }
  433.  
  434.  
  435.     /**************************************/
  436.     /* ISO639 TO ELXIS LANGUAGE CONVERTER */
  437.     /**************************************/
  438.     static public function iso639_elxis ($iso = 'en') {
  439.         return eLOCALE::elxis_iso639($iso, 1);
  440.     }
  441.  
  442. }
  443.  
  444. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement