我的问题非常简单,但我无法弄明白,因为我对网络编程不太满意。
是否可以为.html页面提供MultiLanguage标签/输入值?
如果默认浏览器语言是意大利语,我需要显示一些文本;如果浏览器使用其他语言,则需要显示另一个文本。 例如,我需要自动从Ciao切换到Hello。
有没有办法实现这一目标?也许我可以用Javascript ...
来做到这一点谢谢大家。
答案 0 :(得分:2)
有很多不同的方法可以解决这个问题,我建议你花些时间搜索谷歌并找到最适合你需求的方式。
我会举一个我喜欢使用的例子,但请记住,我发布的信息只是多种可能方法中的一种。
首先,你必须得到用户的语言。要做到这一点,你可以使用地理位置,并根据用户所在的位置设置语言(请参阅this回答一个好方法,或搜索谷歌并使用其他许多方法之一),或者你可以从用户的浏览器(有关执行此操作的信息,请参阅this主题)。
完成后,只需向用户显示本地化内容即可。我首选的方法如下,它将所有变体组合到一个文件中(这样做的替代方法是使用多个不同的HTML文件):
首先,你有HTML:
<body>
<h2>
<span class="lang lang_en">This is in english!</span>
<span class="lang lang_it">Questo è in italiano!</span>
</h2>
</body>
每个版本的文本都存在于自己的范围内。然后在你的CSS中隐藏所有span
s:
.lang{
display:none;
}
最后,在JS中,我们只显示包含我们想要显示的语言的文本的span
:
var lang = ...; //language
switch (lang) {
case "en":
$(".lang_en").css("display", "inline");
break;
case "it":
$(".lang_it").css("display", "inline");
break;
default:
// Set your default language here
}
当然,这种方法是否适合您,取决于您的需求。我喜欢它,因为它不依赖于除JQuery之外的任何框架,并且易于理解。当然,根据您的需要,它甚至可能过于低效(例如非常非常大的网页)。这取决于你决定。
答案 1 :(得分:-1)
如果你想得到的是浏览器语言,你可以使用以下代码获得:
navigator.language || navigator.userLanguage
否则,只需创建一个下拉列表或onChange只需将变量更改为localStorage:
localStorage.setItem('language', languageValue)
然后每次都检查一下:
localStorage.getItem('language')
有了这个,您就可以使用js / redirect更改所有内容,使其保存在语言中。