如何检测客户端´s的计算机语言/或其他什么,以便自动更改网站中的语言

How to detect client´s computer language / or what ever in order to change language in my web site automatically

本文关键字:什么 其他 语言 网站 检测 何检测 客户端 计算机语言 #180      更新时间:2023-09-26

有什么方法可以检测客户端的计算机语言吗?我已经用两种语言开发了我的网站:英语和德语。如果德国人打开我的网站,它应该打开德语版本,否则它将为任何其他原籍国打开英语版本。

我试过在谷歌上搜索,但只有一个检测浏览器语言的功能。这是最好的方法吗?

Ps。我不是在这里询问你的代码,只是关于如何实现这一点的建议,但如果你们想向我展示真实的例子,我们将不胜感激!

在最近的浏览器中,navigator.language就是您想要的:

if (navigator.language == "de") {
    alert("Guten Tag!");
} else {
    alert("Good Morning!");
}

使用Accept-Language标头。这是用户通过在浏览器选项中设置明确要求的语言(否则默认为浏览器的安装语言)。标题可以包含多种具有评级的语言,例如:

fr,ja,de-AT;q=0.8,de;q=0.6

因此,您需要选择以"en"answers"de"开头的语言中评分最高的(或并列第一的)。

不幸的是,Accept-Language标头不容易被JavaScript访问。

在最新版本的Firefox中,navigator.language将为您提供该列表中评分最高的语言。不幸的是,如果用户按照"法语、德语"的顺序请求语言,这对您没有帮助,因为您只会看到fr

在其他浏览器中,它会为您提供浏览器安装语言,这是一个合理的猜测,但不如用户实际要求的语言好。在IE上,browserLanguage也是一样的,还有与Windows区域设置相关的userLanguagesystemLanguage,这通常是一个更糟糕的猜测。

因此,如果您想要"除英语和德语之外的最高评分的用户配置语言",最好的方法是在服务器端读取并解析Accept-Language标头,然后将该语言以字符串形式返回到JS代码。http_negotiate_language是一个PHP函数,它将帮助您正确解析(来自$_SERVER['HTTP_ACCEPT_LANGUAGE']的)标头。

无论你做什么,都要提供一种手动切换语言的方法,因为即使是最好的猜测也可能是错误的。

相关文章: