gpt4 book ai didi

javascript - 通过 javaScript 获取 chrome 中当前的事件语言 (Chrome 66 Stable)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:39:32 24 4
gpt4 key购买 nike

我正在使用 chrome 并尝试检测当前使用的语言。

window.navigator.language 返回一种语言

window.navigator.languages 返回在 chrome 中添加的所有语言

我被告知 window.navigator.language 在整个 Internet 上广为流传,它负责寻找事件 语言。然而,情况已不再如此。它只返回列表中第一个的任何内容,即 en-US 但是正如您所见,它不能保证是事件语言,我怀疑是因为新设计。我想知道是否有人找到了更现代的 chrome 的解决方案。

也就是说,我没有得到任何信息来根据我的喜好区分哪一种是事件语言。

enter image description here

注意:我也向我的服务器发送了一个请求并检查了 header ,给出的信息与上面相同。 enter image description here

accept-language: en-AU,en-GB;q=0.9,en-US;q=0.8,en;q=0.7,es-ES;q=0.6,es;q=0.5

只是反射(reflect)了首选语言的显示顺序,并不能告诉我哪些是事件语言,哪些不是。

无论事件浏览器语言是 en-GB 还是 es-ES,相同的 header 信息都以相同的权重给出。

最佳答案

如果您想要第一个位置的语言,您可以使用此代码:

 var browserLanguage = navigator.language || navigator.userLanguage; 

适用于最新版本的 chrome: enter image description here

如果你想要显示的语言,那就是另一回事了:

javascript能看到的是HttpRequest头。例如:

Accept-language httprequest header

您可以看到一个字段 Accept-Language,它告诉服务器您希望看到哪些语言。 RFC 7231 5.3.1.

Note that some recipients treat the order in which language tags arelisted as an indication of descending priority, particularly for tagsthat are assigned equal quality values (no value is the same as q=1).However, this behavior cannot be relied upon. For consistency and tomaximize interoperability, many user agents assign each language taga unique quality value while also listing them in order of decreasingquality. Additional discussion of language priority lists can befound in Section 2.3 of [RFC4647].

这意味着浏览器会为每个标签增加权重,然后将它们降序排列(没有 q 是 q=1,所以最大值)。

因此您看不到显示的语言是正常的,因为这些是您的个人浏览器设置。移动设备上的应用可以访问浏览器设置,但常规网站不能。

关于javascript - 通过 javaScript 获取 chrome 中当前的事件语言 (Chrome 66 Stable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50405817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com