jquery/globalizeのウェブアプリケーションでは、CLDR 29のデータをJSON formatに問題なく使用しています。ちょうど最近、UnicodeはCLDR 30をリリースしました(そして少し後に、バージョン30.0.1といくつかの修正が加えられました)。バグ狩り:CLDR 30 JSONデータにcurrencySpacingの情報がありません
CLDR 30(.0.1)データにアップグレードすると、多くの文化でnumbers.jsonの「currencySpacing」情報がなくなるため、クライアント側の通貨フォーマットテストに失敗しています。例えば、培養AR-AEと仮定して、グローバル化ライブラリは...パスにCLDRデータをロードしようとし/ currencySpacing/beforeCurrency
/メイン/ AR-AE /数字/ currencyFormats-numberSystemアラブ
...この(および他の多くの)文化の最新のCLDR 30 numbers.jsonデータには存在しません。
この問題の原因を調べるためにスタックをトラバースしようとしました。私たちはDTDを使い始めました。 DTD for CLDR 30(CLDR 29のそれと一緒に)線を含む...
<!ELEMENT currencyFormats (alias | (default*, currencySpacing*, currencyFormatLength*, unitPattern*, special*)) >
... currencySpacingは任意の要素であることを意味します。つまり、CLDR 30 release notesまたはDeltaには、この情報が多数の文化のために変更されたことが示唆されるものは見つかりませんでした。
currencySpacing
要素は、CLDR 29とCLDR 30の両方のmain/root.xmlでのみ使用されていることがわかります。つまり、この点でXMLでは明らかに大きな変更はありません。
これは、XMLデータからJSONデータを生成するために使用されるtoolの問題であるかどうか疑問に思っています。このツールはldml2json
と呼ばれ、cldr-jsonプロジェクトでも使用されています。 cldr-jsonプロジェクトのバグを排除するために、私たちは自分自身でツールを構築し、自分自身でJSONデータを生成しました。この生成されたデータは、numbers.jsonファイルの "currencySpacing"情報も欠落していました。だから、cldr-jsonプロジェクトの問題ではないようです。
我々は正しく理解していれば、これは問題がいずれかであることを意味します
- ldml2jsonツールは/グローバル化バグ
- jqueryのは、この情報は常に
が存在すると仮定することは間違っていました後者が真であれば、これはjquery/globalizeバグとして提起されるべきだと思います。前者を調べると、恐らくソースからデバッグする必要があります。いずれかの時間に投資する前に、私たちは質問したかった:誰かがこの問題を見ているのですか?私たちの希望は、CLDR + JSON + Globalizeスタックでもう少し経験豊富な人がいるということです。これは、この変更によって引き起こされた
はそれがより多くのコンテキストのためのGitHubの問題で、このSO質問を参照する価値があるかもしれません。すごい仕事! – sammy34
私はそれを行いました。また、http://unicode.org/cldr/trac/ticket/9040#comment:37 – user1431317