动态加载多国语言 ---- cookie + 浏览器

一、多国语言缩写列表

因为涉及到浏览器的可接收语言,所以需要知道各个国家的语言缩写。

这个百度一下即可。

en 英文 
en_US 英文 (美国) 
ar 阿拉伯文 
ar_AE 阿拉伯文 (阿拉伯联合酋长国) 
ar_BH 阿拉伯文 (巴林) 
ar_DZ 阿拉伯文 (阿尔及利亚) 
ar_EG 阿拉伯文 (埃及) 
ar_IQ 阿拉伯文 (伊拉克) 
ar_JO 阿拉伯文 (约旦) 
ar_KW 阿拉伯文 (科威特) 
ar_LB 阿拉伯文 (黎巴嫩) 
ar_LY 阿拉伯文 (利比亚) 
ar_MA 阿拉伯文 (摩洛哥) 
ar_OM 阿拉伯文 (阿曼) 
ar_QA 阿拉伯文 (卡塔尔) 
ar_SA 阿拉伯文 (沙特阿拉伯) 
ar_SD 阿拉伯文 (苏丹) 
ar_SY 阿拉伯文 (叙利亚) 
ar_TN 阿拉伯文 (突尼斯) 
ar_YE 阿拉伯文 (也门) 
be 白俄罗斯文 
be_BY 白俄罗斯文 (白俄罗斯) 
bg 保加利亚文 
bg_BG 保加利亚文 (保加利亚) 
ca 加泰罗尼亚文 
ca_ES 加泰罗尼亚文 (西班牙) 
ca_ES_EURO 加泰罗尼亚文 (西班牙,Euro) 
cs 捷克文 
cs_CZ 捷克文 (捷克共和国) 
da 丹麦文 
da_DK 丹麦文 (丹麦) 
de 德文 
de_AT 德文 (奥地利) 
de_AT_EURO 德文 (奥地利,Euro) 
de_CH 德文 (瑞士) 
de_DE 德文 (德国) 
de_DE_EURO 德文 (德国,Euro) 
de_LU 德文 (卢森堡) 
de_LU_EURO 德文 (卢森堡,Euro) 
el 希腊文 
el_GR 希腊文 (希腊) 
en_AU 英文 (澳大利亚) 
en_CA 英文 (加拿大) 
en_GB 英文 (英国) 
en_IE 英文 (爱尔兰) 
en_IE_EURO 英文 (爱尔兰,Euro) 
en_NZ 英文 (新西兰) 
en_ZA 英文 (南非) 
es 西班牙文 
es_BO 西班牙文 (玻利维亚) 
es_AR 西班牙文 (阿根廷) 
es_CL 西班牙文 (智利) 
es_CO 西班牙文 (哥伦比亚) 
es_CR 西班牙文 (哥斯达黎加) 
es_DO 西班牙文 (多米尼加共和国) 
es_EC 西班牙文 (厄瓜多尔) 
es_ES 西班牙文 (西班牙) 
es_ES_EURO 西班牙文 (西班牙,Euro) 
es_GT 西班牙文 (危地马拉) 
es_HN 西班牙文 (洪都拉斯) 
es_MX 西班牙文 (墨西哥) 
es_NI 西班牙文 (尼加拉瓜) 
et 爱沙尼亚文 
es_PA 西班牙文 (巴拿马) 
es_PE 西班牙文 (秘鲁) 
es_PR 西班牙文 (波多黎哥) 
es_PY 西班牙文 (巴拉圭) 
es_SV 西班牙文 (萨尔瓦多) 
es_UY 西班牙文 (乌拉圭) 
es_VE 西班牙文 (委内瑞拉) 
et_EE 爱沙尼亚文 (爱沙尼亚) 
fi 芬兰文 
fi_FI 芬兰文 (芬兰) 
fi_FI_EURO 芬兰文 (芬兰,Euro) 
fr 法文 
fr_BE 法文 (比利时) 
fr_BE_EURO 法文 (比利时,Euro) 
fr_CA 法文 (加拿大) 
fr_CH 法文 (瑞士) 
fr_FR 法文 (法国) 
fr_FR_EURO 法文 (法国,Euro) 
fr_LU 法文 (卢森堡) 
fr_LU_EURO 法文 (卢森堡,Euro) 
hr 克罗地亚文 
hr_HR 克罗地亚文 (克罗地亚) 
hu 匈牙利文 
hu_HU 匈牙利文 (匈牙利) 
is 冰岛文 
is_IS 冰岛文 (冰岛) 
it 意大利文 
it_CH 意大利文 (瑞士) 
it_IT 意大利文 (意大利) 
it_IT_EURO 意大利文 (意大利,Euro) 
iw 希伯来文 
iw_IL 希伯来文 (以色列) 
ja 日文 
ja_JP 日文 (日本) 
ko 朝鲜文 
ko_KR 朝鲜文 (南朝鲜) 
lt 立陶宛文 
lt_LT 立陶宛文 (立陶宛) 
lv 拉托维亚文(列托) 
lv_LV 拉托维亚文(列托) (拉脱维亚) 
mk 马其顿文 
mk_MK 马其顿文 (马其顿王国) 
nl 荷兰文 
nl_BE 荷兰文 (比利时) 
nl_BE_EURO 荷兰文 (比利时,Euro) 
nl_NL 荷兰文 (荷兰) 
nl_NL_EURO 荷兰文 (荷兰,Euro) 
no 挪威文 
no_NO 挪威文 (挪威) 
no_NO_NY 挪威文 (挪威,Nynorsk) 
pl 波兰文 
pl_PL 波兰文 (波兰) 
pt 葡萄牙文 
pt_BR 葡萄牙文 (巴西) 
pt_PT 葡萄牙文 (葡萄牙) 
pt_PT_EURO 葡萄牙文 (葡萄牙,Euro) 
ro 罗马尼亚文 
ro_RO 罗马尼亚文 (罗马尼亚) 
ru 俄文 
ru_RU 俄文 (俄罗斯) 
sh 塞波尼斯-克罗地亚文 
sh_YU 塞波尼斯-克罗地亚文 (南斯拉夫) 
sk 斯洛伐克文 
sk_SK 斯洛伐克文 (斯洛伐克) 
sl 斯洛文尼亚文 
sl_SI 斯洛文尼亚文 (斯洛文尼亚) 
sq 阿尔巴尼亚文 
sq_AL 阿尔巴尼亚文 (阿尔巴尼亚) 
sr 塞尔维亚文 
sr_YU 塞尔维亚文 (南斯拉夫) 
sv 瑞典文 
sv_SE 瑞典文 (瑞典) 
th 泰文 
th_TH 泰文 (泰国) 
tr 土耳其文 
tr_TR 土耳其文 (土耳其) 
uk 乌克兰文 
uk_UA 乌克兰文 (乌克兰) 
zh 中文 
zh_CN 中文 (中国) 
zh_HK 中文 (香港) 
zh_TW 中文 (台湾) 

Countries and Regions国家或地区国际域名缩写 
Angola安哥拉AO 
Afghanistan阿富汗AF 
Albania阿尔巴尼亚AL 
Algeria阿尔及利亚DZ 
Andorra安道尔共和国AD 
Anguilla安圭拉岛AI 
Antigua and Barbuda安提瓜和巴布达AG 
Argentina阿根廷AR 
Armenia亚美尼亚AM 
Ascension阿森松 
Australia澳大利亚AU 
Austria奥地利AT 
Azerbaijan阿塞拜疆AZ 
Bahamas巴哈马BS 
Bahrain巴林BH 
Bangladesh孟加拉国BD 
Barbados巴巴多斯BB 
Belarus白俄罗斯BY 
Belgium比利时BE 
Belize伯利兹BZ 
Benin贝宁BJ 
Bermuda Is.百慕大群岛BM 
Bolivia玻利维亚BO 
Botswana博茨瓦纳BW 
Brazil巴西BR 
Brunei文莱BN 
Bulgaria保加利亚BG 
Burkina-faso布基纳法索BF 
Burma缅甸MM 
Burundi布隆迪BI 
Cameroon喀麦隆CM 
Canada加拿大CA 
Cayman Is.开曼群岛 
Central African Republic中非共和国CF 
Chad乍得TD 
Chile智利CL 
China中国CN 
Colombia哥伦比亚CO 
Congo刚果CG 
Cook Is.库克群岛CK 
Costa Rica哥斯达黎加CR 
Cuba古巴CU 
Cyprus塞浦路斯CY 
Czech Republic捷克CZ 
Denmark丹麦DK 
Djibouti吉布提DJ 
Dominica Rep.多米尼加共和国DO 
Ecuador厄瓜多尔EC 
Egypt埃及EG 
EI Salvador萨尔瓦多SV 
Estonia爱沙尼亚EE 
Ethiopia埃塞俄比亚ET 
Fiji斐济FJ 
Finland芬兰FI 
France法国FR 
French Guiana法属圭亚那GF 
Gabon加蓬GA 
Gambia冈比亚GM 
Georgia格鲁吉亚GE 
Germany德国DE 
Ghana加纳GH 
Gibraltar直布罗陀GI 
Greece希腊GR 
Grenada格林纳达GD 
Guam关岛GU 
Guatemala危地马拉GT 
Guinea几内亚GN 
Guyana圭亚那GY 
Haiti海地HT 
Honduras洪都拉斯HN 
Hongkong香港HK 
Hungary匈牙利HU 
Iceland冰岛IS 
India印度IN 
Indonesia印度尼西亚ID 
Iran伊朗IR 
Iraq伊拉克IQ 
Ireland爱尔兰IE 
Israel以色列IL 
Italy意大利IT 
Ivory Coast科特迪瓦 
Jamaica牙买加JM 
Japan日本JP 
Jordan约旦JO 
Kampuchea (Cambodia )柬埔寨KH 
Kazakstan哈萨克斯坦KZ 
Kenya肯尼亚KE 
Korea韩国KR 
Kuwait科威特KW 
Kyrgyzstan吉尔吉斯坦KG 
Laos老挝LA 
Latvia拉脱维亚LV 
Lebanon黎巴嫩LB 
Lesotho莱索托LS 
Liberia利比里亚LR 
Libya利比亚LY 
Liechtenstein列支敦士登LI 
Lithuania立陶宛LT 
Luxembourg卢森堡LU 
Macao澳门MO 
Madagascar马达加斯加MG 
Malawi马拉维MW 
Malaysia马来西亚MY 
Maldives马尔代夫MV 
Mali马里ML 
Malta马耳他MT 
Mariana Is马里亚那群岛 
Martinique马提尼克 
Mauritius毛里求斯MU 
Mexico墨西哥MX 
Moldova, Republic of摩尔多瓦MD en 英文 
en_US 英文 (美国) 
ar 阿拉伯文 
ar_AE 阿拉伯文 (阿拉伯联合酋长国) 
ar_BH 阿拉伯文 (巴林) 
ar_DZ 阿拉伯文 (阿尔及利亚) 
ar_EG 阿拉伯文 (埃及) 
ar_IQ 阿拉伯文 (伊拉克) 
ar_JO 阿拉伯文 (约旦) 
ar_KW 阿拉伯文 (科威特) 
ar_LB 阿拉伯文 (黎巴嫩) 
ar_LY 阿拉伯文 (利比亚) 
ar_MA 阿拉伯文 (摩洛哥) 
ar_OM 阿拉伯文 (阿曼) 
ar_QA 阿拉伯文 (卡塔尔) 
ar_SA 阿拉伯文 (沙特阿拉伯) 
ar_SD 阿拉伯文 (苏丹) 
ar_SY 阿拉伯文 (叙利亚) 
ar_TN 阿拉伯文 (突尼斯) 
ar_YE 阿拉伯文 (也门) 
be 白俄罗斯文 
be_BY 白俄罗斯文 (白俄罗斯) 
bg 保加利亚文 
bg_BG 保加利亚文 (保加利亚) 
ca 加泰罗尼亚文 
ca_ES 加泰罗尼亚文 (西班牙) 
ca_ES_EURO 加泰罗尼亚文 (西班牙,Euro) 
cs 捷克文 
cs_CZ 捷克文 (捷克共和国) 
da 丹麦文 
da_DK 丹麦文 (丹麦) 
de 德文 
de_AT 德文 (奥地利) 
de_AT_EURO 德文 (奥地利,Euro) 
de_CH 德文 (瑞士) 
de_DE 德文 (德国) 
de_DE_EURO 德文 (德国,Euro) 
de_LU 德文 (卢森堡) 
de_LU_EURO 德文 (卢森堡,Euro) 
el 希腊文 
el_GR 希腊文 (希腊) 
en_AU 英文 (澳大利亚) 
en_CA 英文 (加拿大) 
en_GB 英文 (英国) 
en_IE 英文 (爱尔兰) 
en_IE_EURO 英文 (爱尔兰,Euro) 
en_NZ 英文 (新西兰) 
en_ZA 英文 (南非) 
es 西班牙文 
es_BO 西班牙文 (玻利维亚) 
es_AR 西班牙文 (阿根廷) 
es_CL 西班牙文 (智利) 
es_CO 西班牙文 (哥伦比亚) 
es_CR 西班牙文 (哥斯达黎加) 
es_DO 西班牙文 (多米尼加共和国) 
es_EC 西班牙文 (厄瓜多尔) 
es_ES 西班牙文 (西班牙) 
es_ES_EURO 西班牙文 (西班牙,Euro) 
es_GT 西班牙文 (危地马拉) 
es_HN 西班牙文 (洪都拉斯) 
es_MX 西班牙文 (墨西哥) 
es_NI 西班牙文 (尼加拉瓜) 
et 爱沙尼亚文 
es_PA 西班牙文 (巴拿马) 
es_PE 西班牙文 (秘鲁) 
es_PR 西班牙文 (波多黎哥) 
es_PY 西班牙文 (巴拉圭) 
es_SV 西班牙文 (萨尔瓦多) 
es_UY 西班牙文 (乌拉圭) 
es_VE 西班牙文 (委内瑞拉) 
et_EE 爱沙尼亚文 (爱沙尼亚) 
fi 芬兰文 
fi_FI 芬兰文 (芬兰) 
fi_FI_EURO 芬兰文 (芬兰,Euro) 
fr 法文 
fr_BE 法文 (比利时) 
fr_BE_EURO 法文 (比利时,Euro) 
fr_CA 法文 (加拿大) 
fr_CH 法文 (瑞士) 
fr_FR 法文 (法国) 
fr_FR_EURO 法文 (法国,Euro) 
fr_LU 法文 (卢森堡) 
fr_LU_EURO 法文 (卢森堡,Euro) 
hr 克罗地亚文 
hr_HR 克罗地亚文 (克罗地亚) 
hu 匈牙利文 
hu_HU 匈牙利文 (匈牙利) 
is 冰岛文 
is_IS 冰岛文 (冰岛) 
it 意大利文 
it_CH 意大利文 (瑞士) 
it_IT 意大利文 (意大利) 
it_IT_EURO 意大利文 (意大利,Euro) 
iw 希伯来文 
iw_IL 希伯来文 (以色列) 
ja 日文 
ja_JP 日文 (日本) 
ko 朝鲜文 
ko_KR 朝鲜文 (南朝鲜) 
lt 立陶宛文 
lt_LT 立陶宛文 (立陶宛) 
lv 拉托维亚文(列托) 
lv_LV 拉托维亚文(列托) (拉脱维亚) 
mk 马其顿文 
mk_MK 马其顿文 (马其顿王国) 
nl 荷兰文 
nl_BE 荷兰文 (比利时) 
nl_BE_EURO 荷兰文 (比利时,Euro) 
nl_NL 荷兰文 (荷兰) 
nl_NL_EURO 荷兰文 (荷兰,Euro) 
no 挪威文 
no_NO 挪威文 (挪威) 
no_NO_NY 挪威文 (挪威,Nynorsk) 
pl 波兰文 
pl_PL 波兰文 (波兰) 
pt 葡萄牙文 
pt_BR 葡萄牙文 (巴西) 
pt_PT 葡萄牙文 (葡萄牙) 
pt_PT_EURO 葡萄牙文 (葡萄牙,Euro) 
ro 罗马尼亚文 
ro_RO 罗马尼亚文 (罗马尼亚) 
ru 俄文 
ru_RU 俄文 (俄罗斯) 
sh 塞波尼斯-克罗地亚文 
sh_YU 塞波尼斯-克罗地亚文 (南斯拉夫) 
sk 斯洛伐克文 
sk_SK 斯洛伐克文 (斯洛伐克) 
sl 斯洛文尼亚文 
sl_SI 斯洛文尼亚文 (斯洛文尼亚) 
sq 阿尔巴尼亚文 
sq_AL 阿尔巴尼亚文 (阿尔巴尼亚) 
sr 塞尔维亚文 
sr_YU 塞尔维亚文 (南斯拉夫) 
sv 瑞典文 
sv_SE 瑞典文 (瑞典) 
th 泰文 
th_TH 泰文 (泰国) 
tr 土耳其文 
tr_TR 土耳其文 (土耳其) 
uk 乌克兰文 
uk_UA 乌克兰文 (乌克兰) 
zh 中文 
zh_CN 中文 (中国) 
zh_HK 中文 (香港) 
zh_TW 中文 (台湾) 
View Code

 

二、利用js来做实现,如何判断浏览器可接收的语言呢?

这里需要分情况:

var browser_language = navigator.browserLanguage;
if((typeof browser_language) !== "undefined" && browser_language !== null) //ie 存在返回 string
{
  var lang = navigator.systemLanguage.toLowerCase();
} else {//firefox chorme etc. 不存在,返回 "undefined"
  var lang = navigator.language.toLowerCase();
}

 

三、当用户第一次进入页面 --- 判断是否有语言缓存在cookie中

function setCookie(name,value){// 设置cookie
    document.cookie = name + "="+ escape(value)+";path=/";
}

function getCookie(name) {// 获取cookie
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg)){
        return (arr[2]);
    } else {
        return null;
    }
}
var clang = getCookie('mysite_language');//缓存的cookie语言标识

if(clang == '') {//如果为空,设置默认语言,方便后面判断。
    clang = 'en';
}
// console.log(clang);
if(clang !== null) {//不为null, 表示cookie中已经设置了语言标志
    if(clang !== 'en') {
        //coding...一般是要去到的语言页面,
    }
} else {//为null, 第一次进入时
    if ((typeof lgg) !== "undefined" && lgg !== null) {
        var lang = navigator.systemLanguage.toLowerCase();
    } else { 
        var lang = navigator.language.toLowerCase();
    }

    // coding...要去到的语言页面
  
}

 

四、总结:

①javascript控制cookie。

②javascript分情况讨论判断浏览器有限支持国家语言,并获取 国家语言缩写。

③需要了解国家语言缩写,使这个缩写和我们要到达的页面有一定关系。

④判断cookie中是否含有设置的语言标志,没有就去找浏览器可接收的语言标志,否则进入默认语言目录。

posted @ 2015-09-22 09:41  Zell~Dincht  阅读(557)  评论(0编辑  收藏  举报