【发布时间】:2021-06-30 02:53:57
【问题描述】:
我正在使用navigator.languages 来检测浏览器的language & country 代码,格式为en-US。
如果我将浏览器语言设置为英语,那么我会得到en-US,但如果我将其设置为日语,它只会返回ja,而没有国家代码JP。显然,日语在全世界只在日本说,所以他们一定省略了它。韩语也是如此,因为我得到ko 而不是ko_KR。
但我需要这两个信息,因为我正在加载的 Facebook SDK 脚本需要ll_cc 格式,如下所示:
https://connect.facebook.net/en_US/sdk.jshttps://connect.facebook.net/ja_JP/sdk.js
根据Facebook Documentation,在脚本地址中放入ja_JP是实现显示语言变化的唯一途径。
我想根据用户的浏览器语言设置更改显示语言。 (例如,日语、韩语等)
那么我应该如何从浏览器获取国家代码JP?
在一对一的情况下,我正在考虑创建一个表格以将语言与国家/地区代码匹配,但我很好奇是否有更好的方法来解决这个问题。
提前感谢您的帮助。
【问题讨论】:
-
这个
broswer.languages是怎么定义的?我的浏览器中当然没有这样的属性 -
哦,我没有注意到错字(我只是不假思索地复制粘贴)......但我的浏览器中也没有 browser.languages - 这是某种浏览器网络扩展你在说什么?
-
我的错。它是
navigator.languages。我也更新了标题。谢谢 -
你不能没有用户许可。您可以尝试使用地理编码从 IP 派生它,但它不是超级可靠的。如果用户允许您使用 html5 地理定位 API developer.mozilla.org/en-US/docs/Web/API/Geolocation_API
-
@Matt 在大多数情况下可能会起作用。但在某些情况下,地理位置不一定与用户的浏览器语言国家代码相同。
标签: javascript browser locale