不同语言跳转到不同网址

WordPress根据浏览器语言自动跳转网址的方法

有不少使用WordPress搭建外贸站的公司都会做多个语言的网站,例如英文和中文。同时有些外贸站站长不希望自己的网站被国内用户访问,想要国内用户跳转到不同的网址,我们可以利用浏览器语言来判断用户环境,然后自动跳转到不同的网址上面,具体方法如下:

在你的网站主题头部文件(header.php)里面插入下面的代码

<?php
// 定义变量 lc
$lc = ""; 
// 检查是否已经设置过 HTTP头Accept-Language信息变量
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
$lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
// 这里截取语言编码前两位来判断,如果是中文,转向百度
if($lc == "zh"){
header("location: https://www.baidu.com"); 
exit();
}
?>

考虑到很多是新手朋友,不会修改代码,所以建议安装一个Code Snippets插件,安装后启用插件,编辑Example JavaScript snippet这个片段,把上面的代码插入到/* write your JavaScript code here */的下方。

然后保存就可以激活启用代码了。

上面的代码中,你可以添加更多的语言,例如巴西、法语、葡萄牙语,然后对应跳转到不同的网址,多种语言跳转代码如下:

<?php
$lc = ""; 
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
$lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if($lc == "pt"){
header("location: https://blog.naibabiji.com/"); 
}
else if($lc == "fr"){
header("location: https://blog.naibabiji.com/skill/language-redirection.html"); 
exit();
}
?>

以上方法参考料神文章,下面是常见的浏览器语言代码。

af南非公用荷兰语sq阿尔巴尼亚语
ar-sa阿拉伯语(沙特阿拉伯)ar-iq阿拉伯语(伊拉克)
ar-eg阿拉伯语(埃及)ar-ly阿拉伯文(利比亚)
ar-dz阿拉伯文(阿尔及利亚)ar-ma阿拉伯语(摩洛哥)
ar-tn阿拉伯语(突尼斯)ar-om阿拉伯文(阿曼)
ar-ye阿拉伯文(也门)ar-sy阿拉伯文(叙利亚)
ar-jo阿拉伯文(约旦)ar-lb阿拉伯语(黎巴嫩)
ar-kw阿拉伯文(科威特)ar-ae阿拉伯语(阿联酋)
ar-bh阿拉伯语(巴林)ar-qa阿拉伯文(卡塔尔)
eu巴斯克语bg保加利亚语
be白俄罗斯语ca加泰罗尼亚语
zh-tw中文(台湾)zh-cn中文(中华人民共和国)
zh-hk中文(香港特区)zh-sg中文(新加坡)
hr克罗地亚语cs捷克语
da丹麦语nl荷兰语(标准)
nl-be荷兰语(比利时)en英语
en-us英语(美国)en-gb英语(英国)
en-au英语(澳大利亚)en-ca英语(加拿大)
en-nz英语(新西兰)en-ie英国(爱尔兰)
en-za英语(南非)en-jm英语(牙买加)
en英语(加勒比海)en-bz英语(伯利兹)
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希腊
he希伯来语hi印地文
hu匈牙利语is冰岛语
id印度尼西亚语it意大利语(标准)
it-ch意大利语(瑞士)ja日语
ko韩语ko韩文(韓文)
lv拉脱维亚语lt立陶宛语
mk马其顿语(前南马其顿)ms马来西亚语
mt马耳他语no挪威文(巴克摩)
no挪威文(耐诺斯克)pl波兰语
pt-br葡萄牙语(巴西)pt葡萄牙语(葡萄牙)
rm里托罗曼斯文ro罗马尼亚语
ro-mo罗马尼亚语(摩尔多瓦共和国)ru俄语
ru-mo俄罗斯(摩尔多瓦共和国)sz萨米语(拉普语)
sr塞尔维亚语(西里尔文)sr塞尔维亚语(拉丁)
sk斯洛伐克语sl斯洛文尼亚语
sb索布语es西班牙语(西班牙)
es-mx西班牙语(墨西哥)es-gt西班牙语(危地马拉)
es-cr西班牙语(哥​​斯达黎加)es-pa西班牙语(巴拿马)
es-do西班牙文(多米尼加共和国)es-ve西班牙语(委内瑞拉)
es-co西班牙语(哥​​伦比亚)es-pe西班牙语(秘鲁)
es-ar西班牙语(阿根廷)es-ec西班牙语(厄瓜多尔)
es-cl西班牙语(智利)es-uy西班牙语(乌拉圭)
es-py西班牙语(巴拉圭)es-bo西班牙语(玻利维亚)
es-sv西班牙语(萨尔瓦多)es-hn西班牙语(洪都拉斯)
es-ni西班牙语(尼加拉瓜)es-pr西班牙语(波多黎各)
sx苏图语sv瑞典语
sv-fi瑞典语(芬兰)th泰国语
ts特松加语tn茨瓦纳语
tr土耳其语uk乌克兰语
ur乌尔都语ve文达语
vi越南语xh科萨语
ji意第绪语zu祖鲁语

多个语言判断是使用的PHP – if…elseif….else 语句

if (条件)
{
    if 条件成立时执行的代码;
}
elseif (条件)
{
    elseif 条件成立时执行的代码;
}
else
{
    条件不成立时执行的代码;
}

除了上面的方法外,还可以插入下面这个代码,同样也可以实现不同语言的跳转。

<?php
$lan = substr( $HTTP_ACCEPT_LANGUAGE,0,5);
if ($lan == "zh-cn")
print("<meta http-equiv='refresh' content = '0;URL = gb/index.htm'>");
else
print("<meta http-equiv='refresh' content = '0;URL = eng/index.htm'>");

而如果你是使用的一些翻译插件做的多语言网站,通常插件设置里面可以直接开启跳转功能。

除了修改代码外,也可以通过域名解析,直接使用ip地址定位来直接跳转,一些高级点的DNS服务商都支持这个功能。

以前写过的其他相关文章:

Scroll to Top