我们在使用 WordPress 搭建外贸站的公司都会做多个语言的网站,例如英文和中文。同时有些外贸站站长不希望自己的网站被国内用户访问,想要国内用户跳转到不同的网址,我们可以利用浏览器语言来判断用户环境,然后自动跳转到不同的网址上面,具体方法如下。
在@ N C K 7 a你的网站主题头部文件(header.php)里+ 1 8 H q O `面插入下面的代码:
- <?php
- // 定义变量 lc
- $lc = "";
- // 检查是否已经设置过 HTTP头Accept-Language9 N , _信息变量
- if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
- $lc = substr($_SERV/ 4 m A + TER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
- // 这里截取语言编码前两位来判断,如果是中文G . \ X z d 6 1 t,转向百度
- if($lc == "zh"){
- header("locatio; C N N @ Pn: https://www.baidu.cM @ _om"6 # ] J z D;);+ 7 F } ? N k & I
- exit();
- }
- ?>
考虑到很多是新手朋友,不会修改代码,所以建议安装一个 Code SC H i ( u E { dnippets 插件,安装后启用插件,编辑 Example JavaScript snippet 这个片段,把上面的代码插入到/* write your JavaScript code here */的下方。
然后保存就可以激活启用O - x l p # W _代码了。
上面的代码中,你可以添加更多的语言,例如巴西、法语、葡萄牙语,然后对应跳转到不同的网址,多种语言跳转代码如下:
- <?php
- $lc = "";
- if(isset($_SERVER['HTTP_Az f \CCEPT_LANGUAGE'])~ ? T 5 [ g)
- $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
- if($lc == "pt"){
- headR { y 1 6 7 D 8 :er(&quo{ u C X i : y 5t;location- / ~ } ; r: https://blz U I \ 0 b 9 9 Vog.naibabiji.com/");
- }
- else if($lc == "fr"){
- header(&quoA M : D %t;location: httZ ( & ~ps://blog.naiba$ \ +bijif a ) q G M p *.com/skill/language-redirection.HTML&quo_ . R &t;&{ N d ~ d - ~ h#041;;
- exit();
- }
- ?>
以上方法参考料神文章! i 9,下面是常见的浏览器语言代码。
af | 南非公用荷兰语 | sq | 阿尔巴尼亚语 |
ar-sa | 阿拉伯语(沙特阿拉伯) | ar-iq | 阿拉伯语R r + X(伊拉克) |
ar-eg | 阿拉伯语(埃及) | ar-u H W ~ ) ? R d ply | 阿拉伯文(利t / .比亚) |
ar-dz | 阿拉伯文H k J(阿尔及利亚) | ar-ma | 阿拉伯语(摩洛哥) |
ar-tn | 阿拉伯语(突尼斯) | ar-om | 阿拉伯文(阿曼) |
ar-ye | 阿拉伯文(也门) | ar-sy | 阿拉伯文(叙利亚) |
ar-jo | 阿拉伯文(约旦) | ar-lb | 阿拉伯t | z M z 7 g语(黎巴嫩) |
ar-^ 0 = & q M o } |kw | 阿拉伯文(科威特) | ar-ae | 阿拉伯语(阿联酋) |
ar-bh | 阿拉伯语(巴林) | ar-qa | 阿拉伯文(卡塔尔) |
eu | 巴斯克语 | bg | 保加利亚语 |
be | 白俄罗斯语 | cm - S \ pa | 加泰罗尼亚语 |
zh-tw | 中文(台湾) | zh-cn | 中文(中华人民共和国) |
zh-hk | 中文(香港特区) | zh-sg | 中文(新加坡) |
hr | 克罗地亚语 | cs | 捷克语5 q P |
da | 丹麦语^ d 7 | nl | 荷兰语(标准) |
nl-be | 荷兰语(比0 G ` ) L -利时) | en | 英语 |
en-us | 英语(美国) | en-gb | 英语(英国) |
en-au | 英语(澳大利亚) | en-ca | 英语(加拿大) |
en-nz | 英语(新西兰) | en-ie | 英国(爱尔兰) |
en-za | 英语(南非) | en-jm | 英语(牙买加) |
en | 英语(加勒比海) | en-bN j L Iz | 英语(伯利兹Y S 0) |
en-tt | 英语(特立尼达和多巴哥) | et | 爱沙尼亚语 |
fo | 法罗语 | fa | 波斯语 |
fi | 芬兰语 | fr | 法语(标准) |
fr-be | 法语(比利时) | fr-ca | 法语(加拿大) |
fr-ch | 法语(瑞士) | fr-lu | 法语(卢森堡) |
gd | 盖尔语(苏格兰) | ga | 爱尔兰语 |
de | 德语(标准) | de-ch | 德语(瑞士) |
de-at | 德语(奥地利) | de-lu | 德语(卢森堡) |
de-li | 德语(列支敦士登) | el | 希腊q o $ x M ! r ( j |
he | 希伯来语 | hi | 印地文 |
hu | 匈牙利语 | is | 冰岛语 |
id | 印度尼西亚语 | it | 意大利d Y Q 7 ; a语(标准) |
it-ch | 意大利语(瑞士) | ja | 日d ^ 4 = W l语 |
ko | 韩语 | ko | 韩o 4 f ; / = \ /文(韓文) |
lv | 拉脱维亚语 | lt | 立陶宛语 |
mk | 马其顿语(前南马其顿) | ms | 马来西亚语 |
mt | 马耳他语 | no | 挪威文(巴克摩) |
no2 } o } , d n i | 挪威C p e K & p @文(耐诺斯克) | pl | 波兰语 |
pt-bl 9 yr | 葡萄牙语(巴西) | pt | 葡萄牙语(葡萄牙) |
rmH + x l 7 V 5 W | 里托罗曼斯文 | ro | 罗马尼亚语 |
ro-mo | 罗马尼亚语(摩尔多瓦共和国) | ruP 6 q D w | 俄语 |
ru-mo | 俄罗斯(摩尔多瓦共和国) | sz | 萨米语(拉普语) |
sG } F O Z 6 br | 塞尔维亚语8 ; 6 K(西里尔文) | sr | 塞尔维亚语(拉丁) |
sk | 斯洛伐克语 | sl | 斯洛文尼亚语 |
sb | 索布语 | es | 西班牙语(^ y ! ` ~ X ? ~西班牙) |
e! G xs-mx | 西班牙语(墨西哥) | es-gt | 西班牙语(危地马拉) |
es-ct c . v B P g ` vr | 西班牙语(哥5 Z U K m斯达黎加) | es-pa | 西班牙i ^ L R ~ $语(巴拿马) |
es-do | 西班牙) H + B ? C O [ W文(多米尼加共和国) | es-ve | 西班牙语(委内瑞拉) |
es-co | 西班牙语(哥伦比亚) | es-pe | 西班牙语(秘鲁) |
es-8 5 ) T e f = Jar | 西班牙语(阿根廷) | es-ec | 西班牙语(厄瓜多尔) |
es-cl | 西班牙语(智利) | es-uy | 西班牙语(Q { s乌拉圭) |
es-py | 西班牙语(巴拉圭) | es-bo | 西班牙语(玻利维亚) |
es-sv | 西班牙语(萨尔瓦多) | es-hn | 西班牙语(洪都拉斯) |
es-ni | 西班牙语(尼加拉瓜) | es-pr | 西班牙语(波多黎各) |
sx | 苏\ E ] m \ [ 3图语 | sv | 瑞典语 |
sv-fi | 瑞典语(芬兰) | th | 泰国语 |
ts | 特松加语 | tn | 茨瓦纳语 |
tr | 土耳其语 | uk | 乌克兰语 |
ur | 乌尔都语u ; / [ A F e | ve | 文达语 |
vi | 越南语 | xh | 科萨语 |
ji | 意第绪语 | zu | 祖鲁语 |
多个语言判断是使用的 PHP – if…elseif….else 语句
- if (条件&S K J f 1 f Y D#041;
- {
- if 条件成立时执行的代码;
- }
- elseif (条件)
- {
- elseif 条件成立时执X B : B行的代码;
- }
- else
- {
- 条件不成立时执行的代码;
- }
除了上面的方法外,还可以插入下面这个代码,同& _ ?样也可以实G B ! L现不同语言的跳转。
- <P Y y Q;?php
- $lanp 1 c ! 1 9 3 = substr( $HTTP_ACCEPT_LANGUAGE,0,5);
- if8 R D F $ 6 ? = w ($lan == "zh-cn")
- print("<meta http-equiv='reb _ d c @ ~ @ O tfresh' co6 G |ntent = '0;URL = gb/index.htm'>");
- else
- print("<meta http-equiv=z - X F \ D { I'refresh' content = '0;URL = eng/index.hh U Q f = e ^tm'>");
而如果你是使用的一些翻译插件做的多语言网站,通常插件设置里面可以直接开启跳转功能。除了修改代码外,也可以通过域名解析,直接使用 ipB 6 M ] 地址定位来直接跳转,一些高级点的 DNS 服务商都支持这个功能。