我知道它真的很旧,但我陷入了这个问题,在我的一个项目遇到了很多麻烦之后,我找到了一个可行的解决方案。
对于两种不同的语言,希腊语和英语,我在每个页面中添加了每个元素的单独版本,一个是希腊语版本,一个是英语版本。在每一页中,我将希腊版本放入带有属性lang='el' 的div 中,将英语版本放入带有lang='en' 的div 中。我有一个函数可以将每个div 设置display 中的语言从none 更改为block,反之亦然,具体取决于语言。
function allagiglossas() {
const l = document.getElementsByTagName("*");
if(document.querySelector('html').lang === 'en'){
for(i = 0; i<l.length; i++) {
if (l[i].lang === 'el') {
l[i].style.display = 'none';
}
if (l[i].lang === 'en') {
l[i].style.display = 'block';
//location.reload();
}
}
}else{
for(i = 0; i<l.length; i++) {
if (l[i].lang === 'en') {
l[i].style.display = 'none';
}
if (l[i].lang === 'el') {
l[i].style.display = 'block';
}
}
}
}
另一个设置 HTML lang 属性的函数。
function bilingual() {
if(document.querySelector('html').lang === 'el'){
sessionStorage.setItem("language", "en");
}else{
sessionStorage.setItem("language", "el");
}
document.querySelector('html').setAttribute("lang",sessionStorage.getItem("language"));
allagiglossas();
}
还有一些代码可以在浏览器的会话存储中记住用户选择了什么语言,以便在我的网站上从一个页面导航到另一个页面时保持这种语言。
document.querySelector('html').setAttribute("lang",sessionStorage.getItem("language"));
document.getElementById("change").onclick = bilingual;//Με το κουμπί αλλάζει η γλώσσα
document.addEventListener('DOMContentLoaded', allagiglossas);
当然,我在每个页面都添加了一个按钮,每次点击都会改变语言。
希望这将帮助面临同样问题的人,如果有人告诉我我是否有问题或有什么方法可以让事情变得更好,我将非常感激。