做了一个外贸站 ,怎样针对用户的ip设置语言包,让老外访问时是英文,咱们访问时是中文,还有其他不同语言,请问如何实现?

解决方案 »

  1.   

    四大门户都提供了获取IP位置的接口,但并不推荐你这样做,因为程序要等待接口返回结果。这很妨碍用户体验。
    你可以借助浏览器发送的客户信息 Accept-language 来判定使用那个语言包,因为老外肯定不会把他浏览器首选语言设为中文。
      

  2.   

    哇  鄙人菜鸟啊 ,有没有类似开源的插件哦 打算用oscommerce,另外请大牛详细指教一下
      

  3.   

    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) 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) 祖鲁族
      

  4.   

    老大的回帖俺不敢怀疑,但是现在还有两个问题:
    1、$_SERVER['HTTP_ACCEPT_LANGUAGE'];得到的服务器的语言还是客户的语言。
    2、得到语言了如何调用相应语言包。
      

  5.   

    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(..............)
      

  6.   

    上一帖有点bug,你应该能看得出来…………
      

  7.   

    $_SERVER['HTTP_ACCEPT_LANGUAGE'] 得到的是浏览器传过来的,浏览器所在操作系统的默认语言$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    if(! file_exists("语言包路径/$lang.php")) $lang = 'en'; //设置为默认语言
    include "语言包路径/$lang.php"; //加载语言包
      

  8.   

    什么BUG 小生看了半天 愣是没看出来