使用互联网和Stack Overflow资源,我设法编写了一个粗略的HTML网站,允许用户使用Javascript,jQuery和XML即时切换它的语言。
现在,我遇到的问题是在整个门户网站上保留首选语言,而不需要在每次导航时更改它。我决定使用一个简单的cookie来跟踪它,但似乎我搞砸了一些东西,我无法弄清楚我做错了什么。
基本上,页面本身在代码本身中有文本(作为备份以防万一),但是文本在引导站点时变得不可见,直到我切换语言,当我导航门户时也不保留语言。对于前者,我假设脚本正在读取一些空的或整体错误的cookie,所以我试图将其过滤掉并使用默认语言,但是徒劳无功。至于后一个问题,我想我也错误地保存了cookie,但我似乎无法弄清楚它有什么问题。
任何帮助/建议都将不胜感激。
function changeLanguage(lang) {
$(function() {
$.ajax({
url: 'jezyki.xml',
success: function(xml) {
$(xml).find('translation').each(function(){
var id = $(this).attr('id');
var text = $(this).find(lang).text();
$("." + id).html(text);
if (lang === "") { }
else {
var title = lang;
createCookie("language", title, 365);
}
});
}
});
});
}
$(document).ready(function () {
$("input[name='radio-language']").click(function () {
changeLanguage($(this).val());
});
});
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 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;
}
window.onload = function (e) {
var cookie = readCookie("language");
var domyslny = "english";
if (title === "") { changeLanguage(domyslny); } else { changeLanguage(title); }
}
道歉,如果这是愚蠢的话,我在Javascript / jQuery方面相当新手。