HTML两种语言输入标签,是否可能?

时间:2017-06-15 14:57:49

标签: javascript html css html5 multilingual

我的问题非常简单,但我无法弄明白,因为我对网络编程不太满意。

是否可以为.html页面提供MultiLanguage标签/输入值?

如果默认浏览器语言是意大利语,我需要显示一些文本;如果浏览器使用其他语言,则需要显示另一个文本。 例如,我需要自动从Ciao切换到Hello。

有没有办法实现这一目标?也许我可以用Javascript ...

来做到这一点

谢谢大家。

2 个答案:

答案 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更改所有内容,使其保存在语言中。