为了确定当前的语言环境,我发现了不同的方法:在浏览器中,大多数人建议查看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个赞
我不知道有什么更直接的方法,但是正如您已经指出的那样,
new Intl.NumberFormat().resolvedOptions().locale
是一个解决方案DefaultLocale
是一个抽象操作,将来可能会实现,也可能不会实现。
因此,我主张将其填充function
为:
if (typeof DefaultLocale === "undefined") {
function DefaultLocale() {
return new Intl.NumberFormat().resolvedOptions().locale;
}
}
因此,您的代码将合理地假定存在并调用this function。在将来的某个时候,如果function以标准方式实施此操作,则可以通过从上方删除块来进行清理。
添加回答
举报
0/150
提交
取消