我对如何从Intl polyfill实际填充某些常见的区域设置数据(CLDR)感到有些困惑。
到目前为止,我所理解的是以下内容(如果我在这里错了,请纠正我):
Intl.min
没有任何区域设置数据Intl.complete
附带来自intl/locale-data
捆绑由于我们只需要支持某些区域设置(例如en
& de
),因此只需捆绑Intl.min
并在需要时动态加载CLDR即可:在应用程序启动时或用户更改语言时。)
如何在需要时动态加载CLDR&如何将其添加到Intl
?
我有aurelia-i18n
&已设置i18next
,以便仅在需要时使用i18next-xhr-backend
加载我们的自定义翻译。我可以以某种方式加入这个&还从Intl
polyfill?
intl/locale-data/jsonp/en.js
以IntlPolyfill.__addLocaleData(...);
开头)?答案 0 :(得分:0)
intl polyfills repo显示了如何通过CDN服务仅加载必要的CLDR数据described here
Aurelia本身会关注polyfill是needed at all唯一的例外,如果您要分发捆绑的生产版本,那么您必须确保该文件已包含在捆绑中。根据您的设置/模块加载程序,这可能会有所不同。
至于加载其他语言环境是的,你只是要求文件修补窗口对象以提供额外的翻译。 为了检查需要哪些,您可以使用数字/日期格式化程序的supportedLocalesOf method
所以打电话
console.log(Intl.NumberFormat.supportedLocalesOf("de-DE"))
如果它有必要的区域设置(你可以在节点中尝试)在空数组中,可能会在你的浏览器中产生[“de-DE”]