227 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			227 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
| <?php
 | |
| class LanguageLoader
 | |
| {
 | |
|     function initialize() {
 | |
|         $ci =& get_instance();
 | |
|         $ci->load->helper('language');
 | |
| 
 | |
|         if($ci->session->userdata('connected')){
 | |
|             $siteLang = $ci->session->userdata('site_lang');
 | |
|             if ($siteLang) {
 | |
|                 $ci->session->set_userdata('site_lang',$siteLang);
 | |
|                 $ci->lang->load('message',$siteLang);
 | |
|             } else {
 | |
|                 $ci->lang->load('message','english');
 | |
|             }
 | |
| 
 | |
|         }else{
 | |
| 
 | |
|             $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
 | |
|             $acceptLang = ['fr', 'en'];
 | |
|             $lang = in_array($lang, $acceptLang) ? $lang : 'en';
 | |
|             $langTranscript = $this->getLocaleCodeForDisplayLanguage($lang);
 | |
|             $current_lang_lowerCase = strtolower($langTranscript);
 | |
| 
 | |
| 
 | |
|             if ($current_lang_lowerCase) {
 | |
|                 $ci->session->set_userdata('site_lang',$current_lang_lowerCase);
 | |
|                 $ci->session->set_userdata('connected','true');
 | |
|                 $ci->lang->load('message',$current_lang_lowerCase);
 | |
|             } else {
 | |
|                 $ci->lang->load('message','english');
 | |
|             }
 | |
| 
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function getLocaleCodeForDisplayLanguage($name){
 | |
|         $languageCodes = array(
 | |
|             "aa" => "Afar",
 | |
|             "ab" => "Abkhazian",
 | |
|             "ae" => "Avestan",
 | |
|             "af" => "Afrikaans",
 | |
|             "ak" => "Akan",
 | |
|             "am" => "Amharic",
 | |
|             "an" => "Aragonese",
 | |
|             "ar" => "Arabic",
 | |
|             "as" => "Assamese",
 | |
|             "av" => "Avaric",
 | |
|             "ay" => "Aymara",
 | |
|             "az" => "Azerbaijani",
 | |
|             "ba" => "Bashkir",
 | |
|             "be" => "Belarusian",
 | |
|             "bg" => "Bulgarian",
 | |
|             "bh" => "Bihari",
 | |
|             "bi" => "Bislama",
 | |
|             "bm" => "Bambara",
 | |
|             "bn" => "Bengali",
 | |
|             "bo" => "Tibetan",
 | |
|             "br" => "Breton",
 | |
|             "bs" => "Bosnian",
 | |
|             "ca" => "Catalan",
 | |
|             "ce" => "Chechen",
 | |
|             "ch" => "Chamorro",
 | |
|             "co" => "Corsican",
 | |
|             "cr" => "Cree",
 | |
|             "cs" => "Czech",
 | |
|             "cu" => "Church Slavic",
 | |
|             "cv" => "Chuvash",
 | |
|             "cy" => "Welsh",
 | |
|             "da" => "Danish",
 | |
|             "de" => "German",
 | |
|             "dv" => "Divehi",
 | |
|             "dz" => "Dzongkha",
 | |
|             "ee" => "Ewe",
 | |
|             "el" => "Greek",
 | |
|             "en" => "English",
 | |
|             "eo" => "Esperanto",
 | |
|             "es" => "Spanish",
 | |
|             "et" => "Estonian",
 | |
|             "eu" => "Basque",
 | |
|             "fa" => "Persian",
 | |
|             "ff" => "Fulah",
 | |
|             "fi" => "Finnish",
 | |
|             "fj" => "Fijian",
 | |
|             "fo" => "Faroese",
 | |
|             "fr" => "French",
 | |
|             "fy" => "Western Frisian",
 | |
|             "ga" => "Irish",
 | |
|             "gd" => "Scottish Gaelic",
 | |
|             "gl" => "Galician",
 | |
|             "gn" => "Guarani",
 | |
|             "gu" => "Gujarati",
 | |
|             "gv" => "Manx",
 | |
|             "ha" => "Hausa",
 | |
|             "he" => "Hebrew",
 | |
|             "hi" => "Hindi",
 | |
|             "ho" => "Hiri Motu",
 | |
|             "hr" => "Croatian",
 | |
|             "ht" => "Haitian",
 | |
|             "hu" => "Hungarian",
 | |
|             "hy" => "Armenian",
 | |
|             "hz" => "Herero",
 | |
|             "ia" => "Interlingua (International Auxiliary Language Association)",
 | |
|             "id" => "Indonesian",
 | |
|             "ie" => "Interlingue",
 | |
|             "ig" => "Igbo",
 | |
|             "ii" => "Sichuan Yi",
 | |
|             "ik" => "Inupiaq",
 | |
|             "io" => "Ido",
 | |
|             "is" => "Icelandic",
 | |
|             "it" => "Italian",
 | |
|             "iu" => "Inuktitut",
 | |
|             "ja" => "Japanese",
 | |
|             "jv" => "Javanese",
 | |
|             "ka" => "Georgian",
 | |
|             "kg" => "Kongo",
 | |
|             "ki" => "Kikuyu",
 | |
|             "kj" => "Kwanyama",
 | |
|             "kk" => "Kazakh",
 | |
|             "kl" => "Kalaallisut",
 | |
|             "km" => "Khmer",
 | |
|             "kn" => "Kannada",
 | |
|             "ko" => "Korean",
 | |
|             "kr" => "Kanuri",
 | |
|             "ks" => "Kashmiri",
 | |
|             "ku" => "Kurdish",
 | |
|             "kv" => "Komi",
 | |
|             "kw" => "Cornish",
 | |
|             "ky" => "Kirghiz",
 | |
|             "la" => "Latin",
 | |
|             "lb" => "Luxembourgish",
 | |
|             "lg" => "Ganda",
 | |
|             "li" => "Limburgish",
 | |
|             "ln" => "Lingala",
 | |
|             "lo" => "Lao",
 | |
|             "lt" => "Lithuanian",
 | |
|             "lu" => "Luba-Katanga",
 | |
|             "lv" => "Latvian",
 | |
|             "mg" => "Malagasy",
 | |
|             "mh" => "Marshallese",
 | |
|             "mi" => "Maori",
 | |
|             "mk" => "Macedonian",
 | |
|             "ml" => "Malayalam",
 | |
|             "mn" => "Mongolian",
 | |
|             "mr" => "Marathi",
 | |
|             "ms" => "Malay",
 | |
|             "mt" => "Maltese",
 | |
|             "my" => "Burmese",
 | |
|             "na" => "Nauru",
 | |
|             "nb" => "Norwegian Bokmal",
 | |
|             "nd" => "North Ndebele",
 | |
|             "ne" => "Nepali",
 | |
|             "ng" => "Ndonga",
 | |
|             "nl" => "Dutch",
 | |
|             "nn" => "Norwegian Nynorsk",
 | |
|             "no" => "Norwegian",
 | |
|             "nr" => "South Ndebele",
 | |
|             "nv" => "Navajo",
 | |
|             "ny" => "Chichewa",
 | |
|             "oc" => "Occitan",
 | |
|             "oj" => "Ojibwa",
 | |
|             "om" => "Oromo",
 | |
|             "or" => "Oriya",
 | |
|             "os" => "Ossetian",
 | |
|             "pa" => "Panjabi",
 | |
|             "pi" => "Pali",
 | |
|             "pl" => "Polish",
 | |
|             "ps" => "Pashto",
 | |
|             "pt" => "Portuguese",
 | |
|             "qu" => "Quechua",
 | |
|             "rm" => "Raeto-Romance",
 | |
|             "rn" => "Kirundi",
 | |
|             "ro" => "Romanian",
 | |
|             "ru" => "Russian",
 | |
|             "rw" => "Kinyarwanda",
 | |
|             "sa" => "Sanskrit",
 | |
|             "sc" => "Sardinian",
 | |
|             "sd" => "Sindhi",
 | |
|             "se" => "Northern Sami",
 | |
|             "sg" => "Sango",
 | |
|             "si" => "Sinhala",
 | |
|             "sk" => "Slovak",
 | |
|             "sl" => "Slovenian",
 | |
|             "sm" => "Samoan",
 | |
|             "sn" => "Shona",
 | |
|             "so" => "Somali",
 | |
|             "sq" => "Albanian",
 | |
|             "sr" => "Serbian",
 | |
|             "ss" => "Swati",
 | |
|             "st" => "Southern Sotho",
 | |
|             "su" => "Sundanese",
 | |
|             "sv" => "Swedish",
 | |
|             "sw" => "Swahili",
 | |
|             "ta" => "Tamil",
 | |
|             "te" => "Telugu",
 | |
|             "tg" => "Tajik",
 | |
|             "th" => "Thai",
 | |
|             "ti" => "Tigrinya",
 | |
|             "tk" => "Turkmen",
 | |
|             "tl" => "Tagalog",
 | |
|             "tn" => "Tswana",
 | |
|             "to" => "Tonga",
 | |
|             "tr" => "Turkish",
 | |
|             "ts" => "Tsonga",
 | |
|             "tt" => "Tatar",
 | |
|             "tw" => "Twi",
 | |
|             "ty" => "Tahitian",
 | |
|             "ug" => "Uighur",
 | |
|             "uk" => "Ukrainian",
 | |
|             "ur" => "Urdu",
 | |
|             "uz" => "Uzbek",
 | |
|             "ve" => "Venda",
 | |
|             "vi" => "Vietnamese",
 | |
|             "vo" => "Volapuk",
 | |
|             "wa" => "Walloon",
 | |
|             "wo" => "Wolof",
 | |
|             "xh" => "Xhosa",
 | |
|             "yi" => "Yiddish",
 | |
|             "yo" => "Yoruba",
 | |
|             "za" => "Zhuang",
 | |
|             "zh" => "Chinese",
 | |
|             "zu" => "Zulu"
 | |
|         );
 | |
|         return $languageCodes[$name];
 | |
|     }
 | |
| }
 |