JavaScript的标准API获取运行时的默认语言环境?

为了确定当前的语言环境,我发现了不同的方法:

  1. 在浏览器中,大多数人建议查看HTTP标头(Accept-Language

  2. 有人建议咨询 navigator.language

  3. 在后端(Node.js)和HTTP之外,建议参考(取决于系统) process.env

另一方面,ECMAScript国际化API将locales每个Intl构造函数的参数定义为可选参数:

如果locales未提供参数或未定义参数,则使用运行时的默认语言环境。

因此,似乎应该有一种与浏览器无关且与操作系统无关的方式来获取“运行时的默认语言环境”。

是否有比获取运行时的默认语言环境更直接的方法

new Intl.NumberFormat().resolvedOptions().locale


这个问题如何/在哪里的JavaScript检测默认语言环境?有所不同,因为它要求实现检测默认语言环境(在浏览器主机中)。与此相反,我的问题不是关于实现,而是关于标准API是否存在。


慕雪6442864
浏览 223回答 2
2回答

有只小跳蛙

我不知道有什么更直接的方法,但是正如您已经指出的那样,new Intl.NumberFormat().resolvedOptions().locale 是一个解决方案DefaultLocale 是一个抽象操作,将来可能会实现,也可能不会实现。因此,我主张将其填充function为:if (typeof DefaultLocale === "undefined") {    function DefaultLocale() {        return new Intl.NumberFormat().resolvedOptions().locale;    }}因此,您的代码将合理地假定存在并调用this function。在将来的某个时候,如果function以标准方式实施此操作,则可以通过从上方删除块来进行清理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript