可能有一个多语言网站,通过使用jQuery链接切换HTML div类来翻译语言,然后依次设置cookie以保持整个网站的语言相同。
下面的jQuery:
$(function() {
$("a.langSelect").click(function() {
var language = $(this).text();
$("div#masterLangauge").removeClass().addClass(language);
createCookie("language",language);
return false;
});
if (readCookie("language") != null) {
$("div#masterLangauge").removeClass().addClass(readCookie("language"));
}
else
{
$("div#masterLangauge").removeClass().addClass("english");
}
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
链接的HTML如下:
<a class="langSelect" href="#">english</a
<a class="langSelect" href="#">deutsch</a>
<a class="langSelect" href="#">chinese</a>
切换的HTML div在下面,默认为英语 - 如果选择德语,则类更改为德语
<div id="masterLangauge" class="english">
然后使用CSS我将使用display:none和display隐藏所有其他语言:阻止德语。这个目前很好用。但
我需要知道的是,如果引用/本地化域名转发到网站,我是否可以触发此jQuery cookie和函数?
我们拥有域名 example.com ,如果我们将域名 germanexample.com 重定向到 example.com ,我会像cookie和语言选择是德语而不是默认的英语。 jQuery可以处理转发的域,还是有一种方法可以使用PHP来创建类似的期望效果?
我希望这很清楚,有道理,很难解释......
先谢谢大家。
答案 0 :(得分:0)
如果您将#hash
添加到引用的网址,然后在引用的域中处理Cookie,这可能是最简单的。
所以在germanexample.com上你的链接/推荐将是example.com #lang = german 然后在example.com上,您可以检查哈希存在
var getHashValue = function(key) {
if (typeof key !== 'string') {
key = '';
} else {
key = key.toLowerCase();
}
var keyAndHash = location.hash.toLowerCase().match(new RegExp(key + '=([^&]*)'));
var value = '';
if (keyAndHash) {
value = keyAndHash[1];
}
return value;
};
if(getHashValue('lang')){
//setCookie.... etc etc.
} else {
// readCookie etc.
}
必须注意的是,这可能对您的搜索引擎优化不利,因为抓取工具大多不执行javascript,因此谷歌的德语版本仍然会出现英文,德文和中文文本。< / p>