php实现不同ip不同语言包 做了一个外贸站 ,怎样针对用户的ip设置语言包,让老外访问时是英文,咱们访问时是中文,还有其他不同语言,请问如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 四大门户都提供了获取IP位置的接口,但并不推荐你这样做,因为程序要等待接口返回结果。这很妨碍用户体验。你可以借助浏览器发送的客户信息 Accept-language 来判定使用那个语言包,因为老外肯定不会把他浏览器首选语言设为中文。 哇 鄙人菜鸟啊 ,有没有类似开源的插件哦 打算用oscommerce,另外请大牛详细指教一下 echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];可能的取值(括号中的)Afrikaans (af) 南非荷兰语Albanian (sq) 阿尔巴尼亚Basque (eu) 巴斯克(欧盟)Bulgarian (bg) 保加利亚Byelorussian (be) 白俄罗斯Catalan (ca) 加泰罗尼亚语Chinese (zh) 中国Chinese/China (zh-cn) 中国/中国Chinese/Taiwan (zh-tw) 中国/台湾Chinese/Hong Kong (zh-hk) 中国/香港Chinese/singapore (zh-sg) 中国/新加坡Croatian (hr) 克罗地亚Czech (cs) 捷克Danish (da) 丹麦Dutch (nl) 荷兰语Dutch/Belgium (nl-be) 荷兰/比利时English (en) 英语English/United Kingdom (en-gb) 英语/英国English/United Satates (en-us) 英语/美国English/Australian (en-au) 英国/澳大利亚English/Canada (en-ca) 英国/加拿大English/New Zealand (en-nz) 英国/新西兰English/Ireland (en-ie) 英国/爱尔兰English/South Africa (en-za) 英语/南非English/Jamaica (en-jm) 英语/牙买加English/Belize (en-bz) 英语/伯利兹English/Trinidad (en-tt) 英语/特Estonian (et) 爱沙尼亚语Faeroese (fo) 法罗Farsi (fa) 波斯语Finnish (fi) 芬兰French (fr) 法语French/Belgium (fr-be) 法国/比利时French/France (fr-fr) 法国/法国French/Switzerland (fr-ch) 法国/瑞士French/Canada (fr-ca) 法国/加拿大French/Luxembourg (fr-lu) 法国/卢森堡Gaelic (gd) 盖尔文Galician (gl) 加利西亚语German (de) 德语German/Austria (de-at) 德国/奥地利German/Germany (de-de) 德国/德国German/Switzerland (de-ch) 德国/瑞士German/Luxembourg (de-lu) 德国/卢森堡German/Liechtenstein (de-li) 德国/列支敦士登Greek (el) 希腊语Hindi (hi) 印地文Hungarian (hu) 匈牙利Icelandic (is) 冰岛Indonesian (id or in) 印度尼西亚Irish (ga) 爱尔兰Italian (it) 意大利Italian/ Switzerland (it-ch) 意大利/瑞士Japanese (ja) 日语Korean (ko) 韩文Latvian (lv) 拉脱维亚Lithuanian (lt) 立陶宛Macedonian (mk) 马其顿语Malaysian (ms) 马来西亚Maltese (mt) 马耳他Norwegian (no) 挪威Polish (pl) 波兰Portuguese (pt) 葡萄牙Portuguese/Brazil (pt-br) 葡萄牙/巴西Rhaeto-Romanic (rm) 里托罗曼斯文Romanian (ro) 罗马尼亚Romanian/Moldavia (ro-mo) 罗马尼亚/摩尔达维亚Russian (ru) 俄语Russian /Moldavia (ru-mo) 俄罗斯/摩尔达维亚Scots Gaelic (gd) 苏格兰的盖尔语Serbian (sr) 塞尔维亚Slovack (sk) SlovackSlovenian (sl) 斯洛文尼亚语Sorbian (sb) 索布语Spanish (es or es-do) 西班牙语Spanish/Argentina (es-ar) 西班牙/阿根廷Spanish/Colombia (es-co) 西班牙/哥伦比亚Spanish/Mexico (es-mx) 西班牙/墨西哥Spanish/Spain (es-es) 西班牙/西班牙Spanish/Guatemala (es-gt) 西班牙/危地马拉Spanish/Costa Rica (es-cr) 西班牙/哥斯达黎加Spanish/Panama (es-pa) 西班牙/巴拿马Spanish/Venezuela (es-ve) 西班牙/委内瑞拉Spanish/Peru (es-pe) 西班牙/秘鲁Spanish/Ecuador (es-ec) 西班牙/厄瓜多尔Spanish/Chile (es-cl) 西班牙/智利Spanish/Uruguay (es-uy) 西班牙/乌拉圭Spanish/Paraguay (es-py) 西班牙/巴拉圭Spanish/Bolivia (es-bo) 西班牙/玻利维亚Spanish/El salvador (es-sv) 西班牙/萨尔瓦多Spanish/Honduras (es-hn) 西班牙/洪都拉斯Spanish/Nicaragua (es-ni) 西班牙/尼加拉瓜Spanish/Puerto Rico (es-pr) 西班牙/波多黎各Sutu (sx) 苏图Swedish (sv) 瑞典语Swedish/Findland (sv-fi) 瑞典/ FindlandThai (ts) 泰国Tswana (tn) 茨瓦纳人Turkish (tr) 土耳其Ukrainian (uk) 乌克兰Urdu (ur) 乌尔都语Vietnamese (vi) 越南Xshosa (xh) xshosaYiddish (ji) 意第绪语Zulu (zu) 祖鲁族 老大的回帖俺不敢怀疑,但是现在还有两个问题:1、$_SERVER['HTTP_ACCEPT_LANGUAGE'];得到的服务器的语言还是客户的语言。2、得到语言了如何调用相应语言包。 1 是客户浏览器的语言2 这个是你编程的事情了。一般情况下,把所有屏显文字转成变量,不同语言包文件定义这些变量。例如,原来的价格变成<?=$LANGS['price']?>然后zh-cn.php:$_LANGS['price'] = '价格';zh-tw.php:$_LANGS['price'] = '價格';en.php:$_LANGS['price'] = 'Price';if(strpos($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'zh-cn') !== false) { include('zh-cn.php');} else if(..............) 上一帖有点bug,你应该能看得出来………… $_SERVER['HTTP_ACCEPT_LANGUAGE'] 得到的是浏览器传过来的,浏览器所在操作系统的默认语言$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];if(! file_exists("语言包路径/$lang.php")) $lang = 'en'; //设置为默认语言include "语言包路径/$lang.php"; //加载语言包 什么BUG 小生看了半天 愣是没看出来 IE6缓冲不受控制(总是缓冲) 同一个服务器不同的域名权限也不一样 急!!PHP中怎么样判断checkbox是否被选中? 请问字符型转换数值型的函数是什么??? curl爬教务系统的数据 大家新年好 有一个3M的文字,用哪种方式,操作起来,速度会更快哪? 每行输出固定列数 关于发信的问题(用的mail) passing by reference与 passing by value的区别 PHP中如何制作查询报表 求助:怎么让两个字段的值增加1,语句该怎么写啊?
你可以借助浏览器发送的客户信息 Accept-language 来判定使用那个语言包,因为老外肯定不会把他浏览器首选语言设为中文。
Afrikaans (af) 南非荷兰语
Albanian (sq) 阿尔巴尼亚
Basque (eu) 巴斯克(欧盟)
Bulgarian (bg) 保加利亚
Byelorussian (be) 白俄罗斯
Catalan (ca) 加泰罗尼亚语
Chinese (zh) 中国
Chinese/China (zh-cn) 中国/中国
Chinese/Taiwan (zh-tw) 中国/台湾
Chinese/Hong Kong (zh-hk) 中国/香港
Chinese/singapore (zh-sg) 中国/新加坡
Croatian (hr) 克罗地亚
Czech (cs) 捷克
Danish (da) 丹麦
Dutch (nl) 荷兰语
Dutch/Belgium (nl-be) 荷兰/比利时
English (en) 英语
English/United Kingdom (en-gb) 英语/英国
English/United Satates (en-us) 英语/美国
English/Australian (en-au) 英国/澳大利亚
English/Canada (en-ca) 英国/加拿大
English/New Zealand (en-nz) 英国/新西兰
English/Ireland (en-ie) 英国/爱尔兰
English/South Africa (en-za) 英语/南非
English/Jamaica (en-jm) 英语/牙买加
English/Belize (en-bz) 英语/伯利兹
English/Trinidad (en-tt) 英语/特
Estonian (et) 爱沙尼亚语
Faeroese (fo) 法罗
Farsi (fa) 波斯语
Finnish (fi) 芬兰
French (fr) 法语
French/Belgium (fr-be) 法国/比利时
French/France (fr-fr) 法国/法国
French/Switzerland (fr-ch) 法国/瑞士
French/Canada (fr-ca) 法国/加拿大
French/Luxembourg (fr-lu) 法国/卢森堡
Gaelic (gd) 盖尔文
Galician (gl) 加利西亚语
German (de) 德语
German/Austria (de-at) 德国/奥地利
German/Germany (de-de) 德国/德国
German/Switzerland (de-ch) 德国/瑞士
German/Luxembourg (de-lu) 德国/卢森堡
German/Liechtenstein (de-li) 德国/列支敦士登
Greek (el) 希腊语
Hindi (hi) 印地文
Hungarian (hu) 匈牙利
Icelandic (is) 冰岛
Indonesian (id or in) 印度尼西亚
Irish (ga) 爱尔兰
Italian (it) 意大利
Italian/ Switzerland (it-ch) 意大利/瑞士
Japanese (ja) 日语
Korean (ko) 韩文
Latvian (lv) 拉脱维亚
Lithuanian (lt) 立陶宛
Macedonian (mk) 马其顿语
Malaysian (ms) 马来西亚
Maltese (mt) 马耳他
Norwegian (no) 挪威
Polish (pl) 波兰
Portuguese (pt) 葡萄牙
Portuguese/Brazil (pt-br) 葡萄牙/巴西
Rhaeto-Romanic (rm) 里托罗曼斯文
Romanian (ro) 罗马尼亚
Romanian/Moldavia (ro-mo) 罗马尼亚/摩尔达维亚
Russian (ru) 俄语
Russian /Moldavia (ru-mo) 俄罗斯/摩尔达维亚
Scots Gaelic (gd) 苏格兰的盖尔语
Serbian (sr) 塞尔维亚
Slovack (sk) Slovack
Slovenian (sl) 斯洛文尼亚语
Sorbian (sb) 索布语
Spanish (es or es-do) 西班牙语
Spanish/Argentina (es-ar) 西班牙/阿根廷
Spanish/Colombia (es-co) 西班牙/哥伦比亚
Spanish/Mexico (es-mx) 西班牙/墨西哥
Spanish/Spain (es-es) 西班牙/西班牙
Spanish/Guatemala (es-gt) 西班牙/危地马拉
Spanish/Costa Rica (es-cr) 西班牙/哥斯达黎加
Spanish/Panama (es-pa) 西班牙/巴拿马
Spanish/Venezuela (es-ve) 西班牙/委内瑞拉
Spanish/Peru (es-pe) 西班牙/秘鲁
Spanish/Ecuador (es-ec) 西班牙/厄瓜多尔
Spanish/Chile (es-cl) 西班牙/智利
Spanish/Uruguay (es-uy) 西班牙/乌拉圭
Spanish/Paraguay (es-py) 西班牙/巴拉圭
Spanish/Bolivia (es-bo) 西班牙/玻利维亚
Spanish/El salvador (es-sv) 西班牙/萨尔瓦多
Spanish/Honduras (es-hn) 西班牙/洪都拉斯
Spanish/Nicaragua (es-ni) 西班牙/尼加拉瓜
Spanish/Puerto Rico (es-pr) 西班牙/波多黎各
Sutu (sx) 苏图
Swedish (sv) 瑞典语
Swedish/Findland (sv-fi) 瑞典/ Findland
Thai (ts) 泰国
Tswana (tn) 茨瓦纳人
Turkish (tr) 土耳其
Ukrainian (uk) 乌克兰
Urdu (ur) 乌尔都语
Vietnamese (vi) 越南
Xshosa (xh) xshosa
Yiddish (ji) 意第绪语
Zulu (zu) 祖鲁族
1、$_SERVER['HTTP_ACCEPT_LANGUAGE'];得到的服务器的语言还是客户的语言。
2、得到语言了如何调用相应语言包。
2 这个是你编程的事情了。一般情况下,把所有屏显文字转成变量,不同语言包文件定义这些变量。
例如,原来的
价格
变成
<?=$LANGS['price']?>
然后
zh-cn.php:
$_LANGS['price'] = '价格';zh-tw.php:
$_LANGS['price'] = '價格';en.php:
$_LANGS['price'] = 'Price';if(strpos($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'zh-cn') !== false) {
include('zh-cn.php');
} else if(..............)
if(! file_exists("语言包路径/$lang.php")) $lang = 'en'; //设置为默认语言
include "语言包路径/$lang.php"; //加载语言包