我的问题很简单
我有一个英文静态HTML网站。
www.website.com
www.website.com/services
www.website.com/contacts
我也将其翻译成德语:
www.website.com/de /
www.website.com/de/services
www.website.com/de/contacts
我要更改语言的按钮(标志)位于我的导航旁边:
<ul class="language">
<li class="de"><a href="#"></a></li>
</ul>
选项1:我可以用页面的德语版本替换“#”。例如,在www.website.com上为<a href="www.website.com/de/">
,在www.website.com/services上为<a href="www.website.com/de/services">
但这是很多工作。有没有一种更简单的方法可以通过使用javascript或.htaccess ..或您提出的任何建议来调用页面。 我的页面使用.html,因此.php选项效率不高。并将“ id”添加到每个元素以进行翻译..比第一种选择还要复杂。
谢谢!
答案 0 :(得分:0)
理想情况下,您可能应该使用网站的服务器端语言(PHP / ASP / Java /…)来做到这一点。如果您仍想使用Javascript进行操作,则可以执行类似的操作以将class AddTask(celery.Task):
name = 'AddTask'
添加到当前位置的前面:
/de
答案 1 :(得分:0)
是的,我怀疑此javascript应该可以工作:
$(document).ready(() => {
let path = window.location.pathname;
if (path.startsWith('/de'))
$('a.lang-switch').attr('href', path.substr(3));
else
$('a.lang-switch').attr('href', '/de' + path);
console.log($('a').attr('href'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class="lang-switch">Change Language</a>
答案 2 :(得分:0)
您有两个不同的HTML副本吗?如果是这样,这可能很容易。
<meta>
标记,用于指示当前语言
let lang = document.getElementsByName('lang')[0].getAttribute('lang');
// Get the parent DIV, add click listener...
document.body.addEventListener("click", function(e) {
// e.target was the clicked element
if(e.target && e.target.nodeName == "A") {
e.target.href.replace('yourwebsite.com', `yourwebsite.com/${lang}/`);
}
});
<meta name='lang' lang='de'>