将默认语言环境设置为国际化API?

4
ECMAScript国际化API使得货币、日期、时间以及其他值的本地化成为可能。以下是一个小例子:

var date = new Date();

alert(new Intl.DateTimeFormat('en-US').format(date));
alert(new Intl.DateTimeFormat('de-CH').format(date));

如何覆盖浏览器默认的区域设置,以便可以在整个网站上设置区域设置?目前我有一些帮助程序,它们包装了Intl API并设置了本地化。是否有更简单的解决方案?

2个回答

4
由于潜在的安全风险和嵌入式应用程序的干扰可能性,您采取了正确的方法,用自己的API封装API,并且没有标准的设置默认语言环境的方式。
引用国际化API的这篇综合文章,作者在涉及公开允许设置默认语言环境的API时有以下说法:
“两个问题阻止了这一点:首先,可设置的默认语言环境列表将在同一环境中运行的不同脚本之间创建一个全局通信渠道,这被认为是一种安全风险。其次,应用程序可能包括不同的组件,例如嵌入式应用程序,需要不同的默认语言环境。ECMAScript对这些组件没有了解,也没有管理它们的适当上下文的方法。因此,我们决定将默认语言环境留给更高级别的系统。例如,YUI库已经包括了一个Intl模块,该模块管理请求的区域设置列表,该列表作用域限制在包含YUI对象中并用于加载资源包。该模块可以轻松地修改为保持语言环境列表对象,以便在包含YUI对象的范围内用作默认值。”
此外,如果您查看官方规范,则默认语言环境是实现特定的。目前,没有浏览器公开API以设置默认语言环境。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接