我是一名JavaScript初学者,并设法将以下代码拼凑在一起。它完成了工作,但我想继续学习,我想知道是否有更有效/更优雅的方式来完成任务。
我有一个翻译成意大利语的英文网站。翻译的页面具有相同的文件名,并且位于“IT”目录中。所以我在每个页面上都添加一个链接,触发脚本添加/ IT /,同时保留当前URL的其余部分。在意大利语页面上,补充脚本会删除目录以返回英文页面。
以下是代码:
(注意:我的网站部分位于domain.com/site/,以防您想知道为什么代码不会在根级别添加/ IT /目录。)
function italian(){
var str;
var str = document.URL;
arr = str.split("/");
var URLparts;
var URLparts = arr.length;
var count;
var count = 0;
var newURL;
newURL = "";
while (count < URLparts){
newURL = newURL + arr[count];
count = count + 1;
if (count < URLparts){
newURL = newURL + "/";
}
switch(count){
case 4:
newURL = newURL + "IT/";
break;
}
}
window.location = newURL;
}
我可以做些什么来改进它?我当然愿意投入腿部工作。如果你能指出我要研究的方向,我很高兴从那里开始。
谢谢!
答案 0 :(得分:1)
稍微简洁的版本可能会使用正则表达式从URL中插入/删除/ IT / part,即:
function italian() {
# make domain.com/site/ -> domain.com/site/IT/
window.location = document.URL.replace(/site\//, "site/IT/")
}
答案 1 :(得分:0)
取决于您使用哪种服务器端语言,但大多数语言都支持良好的i18n(国际化)。这样,您就可以在一个布局中创建多语言网站。这样做的好处是,如果发生变化,您不必再更改代码两次。
我意识到我的答案并不是改善你的剧本的答案,但我认为这对你的完整网站来说是一个很好的改进。