琐碎检测某个操作是否支持特定区域,或者一个区域是否被支持,会很有用。Intl在每个构造函数上都提供了supportedLocales()函数,在每个原型上提供了resolvedOptions()函数来公开这些信息。
遗留行为ES5的toLocaleString和localeCompar函数之前没有特定语义,不接受特定选项,基本上没有任何用处。因此i18n API根据Intl操作重组了它们。现在每个方法都接受附加的尾随locales和options参数,它们会像Intl构造函数一样被解释。(除了toLocaleTimeString 和 toLocaleDateString, 如果options没有,它们就会使用不同的默认组件) 对并不关心精确行为的简单应用,这没关系,老方法也可以用。但是如果需要更多控制或者多次格式化、比较的话,最好直接使用Intl。 结论国际化是个非常有意思的话题,它的复杂性仅在于人们沟通方式的多样性。国际化API解释了这个复杂性的一小部分但是非常有用的部分,使创建区域设置有关的web应用更加方便。所以赶紧使用吧! (非常感谢Norbert Lindenberg, Anas El Husseini, Simon Montagu, Gary Kwong, Shu-yu Guo, Ehsan Akhgari, #mozilla.de的成员, 还有我可能忘掉的人[sorry!], 他们对本文提供了反馈或者帮助我编写或批评修正例子。英语和德语的例子已经超过了我的能力,对于其他例子,如果没有他们,我已经不知道怎么做了。如果还有错误,都责怪我吧。再次感谢!) |