尝试格式化有效的 ICU 消息时
'您的开放票数是 {n, number}'
jquery/globalize 抛出异常:fmt is not defined(…)
使用 globalize-compiler 编译消息时没有错误,但在运行时失败。
使用 jquery/globalize 1.0.0 和 1.1.1
问题类似于:github.com/jquery/globalize/issues/563
更改 jquery/globalize ... globalize/message.js 源文件(添加单词 customFormatters)可以消除错误...但是在项目中更改第三方源文件是不可接受的。
Globalize.messageFormatter =
Globalize.prototype.messageFormatter = function( path, customFormatters ) {
...
formatter = new MessageFormat( cldr.locale, pluralGenerator, customFormatters ).compile( message )
下面的 npm 包还按预期处理消息格式。
https://www.npmjs.com/package/format-message
(我已经 PM'ed Rafael 的 jquery/globalize 并且他要求我在这里发布问题)
问题:
有没有其他人遇到过这个问题,你的解决方法是什么?
是否有人将 jquery/globalize 用于基数/日期/单位/等格式化程序和另一个库,如“format-message”用于消息格式化?
它将用于的项目是 nodejs 和基于浏览器的 (spa)。切换到 Intl 和 polyfill 是一个有效的选择。(需要 Safari 支持http://caniuse.com/#search=intl)
是否有测试来评估通过 PR 将“customFormatters”添加到源的性能成本。