为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕雪6442864 2021-03-30 17:14:03
为了确定当前的语言环境,我发现了不同的方法:在浏览器中,大多数人建议查看HTTP标头(Accept-Language)有人建议咨询 navigator.language在后端(Node.js)和HTTP之外,建议参考(取决于系统) process.env另一方面,ECMAScript国际化API将locales每个Intl构造函数的参数定义为可选参数:如果locales未提供参数或未定义参数,则使用运行时的默认语言环境。因此,似乎应该有一种与浏览器无关且与操作系统无关的方式来获取“运行时的默认语言环境”。是否有比获取运行时的默认语言环境更直接的方法new Intl.NumberFormat().resolvedOptions().locale?这个问题如何/在哪里的JavaScript检测默认语言环境?有所不同,因为它要求实现检测默认语言环境(在浏览器主机中)。与此相反,我的问题不是关于实现,而是关于标准API是否存在。
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

我不知道有什么更直接的方法,但是正如您已经指出的那样,

  1. new Intl.NumberFormat().resolvedOptions().locale 是一个解决方案

  2. DefaultLocale 是一个抽象操作,将来可能会实现,也可能不会实现。

因此,我主张将其填充function为:

if (typeof DefaultLocale === "undefined") {

    function DefaultLocale() {

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

    }

}

因此,您的代码将合理地假定存在并调用this function。在将来的某个时候,如果function以标准方式实施此操作,则可以通过从上方删除块来进行清理。


查看完整回答
反对 回复 2021-04-08
  • 2 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信