有効な ICU メッセージをフォーマットしようとした場合
「あなたのオープン チケット数は {n, number} です」
jquery/globalize は例外をスローします: fmt が定義されていません(…)
メッセージは 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
(jquery/globalize の Rafael に PM を依頼しましたが、彼はここに質問を投稿するように要求しました)
質問:
他の誰かがこれに遭遇しましたか?あなたの回避策は何ですか?
ベース番号/日付/単位/などのフォーマッタにjquery/globalizeを使用し、メッセージのフォーマットに「format-message」などの別のライブラリを使用している人はいますか?
これが使用されるプロジェクトは、nodejs およびブラウザー ベース (spa) です。Intl と polyfill に切り替えることは、有効な代替手段になります。(Safari のサポートが必要ですhttp://caniuse.com/#search=intl )
PR を介して「customFormatters」をソースに追加するパフォーマンス コストを評価するテストはありますか。