php - How to know user's language? -


possible duplicate:
javascript detecting browser language preference
detect browser language in php
what's best method detect language?

i have created website in world can visit.

so, need way know approximately user's language without asking them.

obviously, there link sets language via cookie.

you can use accept-language http request header sent every browser.

i found function parse it:

function getpreferredlanguage() {     $langs = array();     if (isset($_server['http_accept_language'])) {         // break string pieces (languages , q factors)         preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',                 $_server['http_accept_language'], $lang_parse);         if (count($lang_parse[1])) {             // create list "en" => 0.8             $langs = array_combine($lang_parse[1], $lang_parse[4]);             // set default 1 without q factor             foreach ($langs $lang => $val) {                 if ($val === '') $langs[$lang] = 1;             }             // sort list based on value              arsort($langs, sort_numeric);         }     }     //extract important (first)     foreach ($langs $lang => $val) { break; }     //if complex language simplify     if (stristr($lang,"-")) {$tmp = explode("-",$lang); $lang = $tmp[0]; }     return $lang; } $language = getpreferredlanguage(); 

http://snipplr.com/view.php?codeview&id=24897


if want full version of (e.g. english), can use array:

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

http://www.fractalizer.ru/frpost_267/php-array-of-iso-639-1-language-codes-names/


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -