我想创建一个小菜单来更改静态网站的语言。有两种语言,德语,它是放置在我项目的基本文件夹和英语中的主要语言。我将英文版本放入子文件夹/ en。现在我想能够在没有将绝对URL硬编码到每个htlm文件中的情况下切换语言,这就是为什么我写了一些JS。但我认为这只是一个肮脏的解决方案:
例如,两个索引文件的URL就像这样:
德语:http://www.somedomain.de/project/index.html
英语:http://www.somedomain.de/project/en/index.html
用于选择语言的html,简化:
<h3>Please select your language</h3>
<button class="deutsch">Deutsch</button>
<button class="english">English</button>
以下是我在点击时操作网址的方法:
var path = window.location.href;
var filename = path.replace(/^.*[\\\/]/, '');
var base = path.split("ct")[0]; //"ct" is simply taken from the end of the path "/project/"
$('.english').click(function(){
window.location.href = base + 'ct/en/' + filename; // For English
});
$('.deutsch').click(function(){
window.location.href = base + 'ct/' + filename; // For German
});
丑陋的部分属于&#34; var base&#34;。我需要复制/filename.html之前的url而我除了分割整个路径之外别无其他想法,而是在有或没有语言目录的情况下再次将所有内容放在一起。它工作正常但对我来说看起来真的很麻烦。
有人可以建议一种更好的方法来实现相同的结果吗?