Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测客户端´;s计算机语言/或其他任何语言,以便自动更改我的网站中的语言_Javascript - Fatal编程技术网

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

Javascript 如何检测客户端´;s计算机语言/或其他任何语言,以便自动更改我的网站中的语言,javascript,Javascript,有没有办法检测客户端的计算机语言? 我已经用两种语言开发了我的网站:英语和德语。如果德国人打开我的网站,它应该打开德语版本,否则它将打开任何其他来源国的英语版本 我试着搜索谷歌,但只有一个检测浏览器语言的功能。这是最好的方式吗 顺便说一句,我不是在这里要求你的代码,只是关于如何实现这一点的建议,但如果你们想给我展示真实的例子,将不胜感激 在最近的浏览器中,这是您想要的: if (navigator.language == "de") { alert("Guten Tag!"); } el

有没有办法检测客户端的计算机语言? 我已经用两种语言开发了我的网站:英语和德语。如果德国人打开我的网站,它应该打开德语版本,否则它将打开任何其他来源国的英语版本

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

顺便说一句,我不是在这里要求你的代码,只是关于如何实现这一点的建议,但如果你们想给我展示真实的例子,将不胜感激

在最近的浏览器中,这是您想要的:

if (navigator.language == "de") {
    alert("Guten Tag!");
} else {
    alert("Good Morning!");
}
在最近的浏览器中,您想要的是:

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

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

fr,ja,de-AT;q=0.8,de;q=0.6
因此,您需要选择以“en”和“de”开头的语言中评级最高的(或并列第一的)

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

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

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

因此,如果您想要“英语和德语之外的最高级别用户配置语言”,最好的方法是读取并解析服务器端的
Accept language
头,然后将该语言以字符串形式返回给JS代码。是一个PHP函数,它将帮助您正确解析标题(来自
$\u服务器['HTTP\u ACCEPT\u LANGUAGE']


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

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

fr,ja,de-AT;q=0.8,de;q=0.6
因此,您需要选择以“en”和“de”开头的语言中评级最高的(或并列第一的)

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

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

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

因此,如果您想要“英语和德语之外的最高级别用户配置语言”,最好的方法是读取并解析服务器端的
Accept language
头,然后将该语言以字符串形式返回给JS代码。是一个PHP函数,它将帮助您正确解析标题(来自
$\u服务器['HTTP\u ACCEPT\u LANGUAGE']


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

一种常见的方法是在服务器端处理此问题,并检查客户端的IP地址。请参阅,我会看看这个,谢谢。一种常见的方法是在服务器端处理此问题,并检查客户端的IP地址。请参阅,我会看看这个,谢谢。我已经把它放在我的网站上测试了。。为什么它总是提醒“早上好!”?附言。我已经用safari、Chrome和fire fox对它进行了测试……只有Chrome在corect工作!对不起,我不能在歌剧中使用CMD-K。。我已经把它放在了我的网站上并进行了测试。。为什么它总是提醒“早上好!”?附言。我已经用safari、Chrome和fire fox对它进行了测试……只有Chrome在corect工作!对不起,我不能在歌剧中使用CMD-K。。我现在明白了…谢谢我现在明白了…谢谢