是否存在使用javascript检测操作系统语言的方法?
我需要使用javascript检测操作系统语言,以便根据语言查看我的页面 我知道我们可以检测到浏览器语言,但这对我来说还不够 我需要操作系统语言是否存在使用javascript检测操作系统语言的方法?,javascript,javascript-framework,Javascript,Javascript Framework,我需要使用javascript检测操作系统语言,以便根据语言查看我的页面 我知道我们可以检测到浏览器语言,但这对我来说还不够 我需要操作系统语言 提前感谢您可以使用用户代理。但是,它很容易被欺骗,不能保证包含语言信息,而且navigator.language和navigator.browserLanguage可能更可靠。没有跨浏览器的方法来做到这一点。Internet Explorer支持以下功能: navigator.browserLanguage:浏览器语言 navigator.syste
提前感谢您可以使用用户代理。但是,它很容易被欺骗,不能保证包含语言信息,而且
navigator.language
和navigator.browserLanguage
可能更可靠。没有跨浏览器的方法来做到这一点。Internet Explorer支持以下功能:
:浏览器语言navigator.browserLanguage
:Windows系统语言navigator.systemLanguage
:Windows用户特定语言navigator.userLanguage
但是,无法从任何其他浏览器(我可以说)访问这些设置,因此不要使用它们:如果要保持跨浏览器功能,请坚持使用标准的
navigator.language
(对应于浏览器语言)。如果您确实使用了它们,您将把您的网站与特定的操作系统系列(即Windows)和特定的浏览器(即Internet Explorer)联系起来。你真的想这么做吗
为什么浏览器语言不适合你的应用程序?
每个人都要考虑的一件事,不是所有的用户都知道如何设置他们的浏览器语言偏好。因此,如果你正在制作一个你想让人们看到的网站,那么如果他们使用的语言与他们熟悉的语言不同,那就是你的问题,因为这会增加他们将离开的变化。这在很大程度上取决于你的目标人群,但对于一个网页,我认为如果你至少可以检测到系统语言,那么最好是检测到,如果你不能,那么就求助于浏览器语言。它更可能是准确的。考虑到以下几个因素,您可能只需猜测操作系统的语言: Windows操作系统 Internet Explorer
:IE语言(菜单、帮助等),与操作系统显示语言相同(如果用户未更改)。如控制面板->区域和语言->键盘和键盘->显示语言navigator.browserLanguage
:如控制面板->区域和语言->位置navigator.systemLanguage
:与控制面板->区域和语言->格式中一样navigator.userLanguage
浏览器。语言
,我想是因为它有自己的Flash
Firefox和Chrome
navigator.language
告诉您浏览器的UI语言(菜单、帮助等),您可以假设在绝大多数情况下它与操作系统语言相匹配(尤其是家用电脑):下载FF或Chrome时,会根据用户当时的浏览器显示下载页面-在Windows上,它是IE,使用与操作系统相同的语言
在处理浏览器的环境参数时,Chrome本身就是一件很奇怪的事情,唉。我想他说的是区域设置。
navigator.language
或navigator.browserLanguage
,它从来没有被标准化过:,IE还提供了systemLanguage
和userLanguage
,这是你做不到的。您可以让您的用户明确选择一种语言,或者您可以遵守“接受语言”标题中列出的语言。我正在寻找navigator.systemLanguage,我可以将它与firefox一起使用,还是只使用IE?不,恐怕只有IE。然而,这些东西是复杂的。但是,我认为您应该仔细思考为什么浏览器的语言不够。@SzamDev:Firefox提供了navigator.language
,这与Matthew的回答差不多。@T.J.navigator.language
相当于navigator.browserLanguage
@SzamDev:这是您用户的问题,不是你的。如果他们对你撒谎,那么,他们应该纠正这一点。你要处理的是浏览器,所以这是你应该处理的语言。(在寻找这个设置之前,作为一个说英语的人,我不知道如何更改它。这对我在意大利咖啡馆度假时来说真的是一件痛苦的事,即使我用语言栏更改了系统语言。)
var d=new Date(Date.UTC(2014,1,26,3,0,0));
var dateFormat={weekday:"long",year:"numeric",month:"long",day:"numeric"};
var result = d.toLocaleDateString("i-default",dateFormat);
alert(result);
//e.g. for Russian format ( Control Panel -> Region and Language -> Formats )
//result == 'среда, 26 февраля 2014 г.'