グローバル化を使用して作成しようとしている2つの方法があります。 1つは数値をフォーマットし、もう1つは通貨をフォーマットします。私はcurrencyFormatterまたはのための「INR」通貨コードで「en」とロケールを使用する場合数値と通貨をグローバル化する:en-IN/INR形式が期待どおりに機能しない
function currencyFormatter(value, locale, fieldDefinition) {
var formatter = Globalize('en').currencyFormatter('INR')
return formatter(value)
}
function numberFormatter(value, locale, fieldDefinition){
var formatter = Globalize('en').numberFormatter()
return formatter(value)
}
(EN)て、NumberFormatterのために私は両方のケースで得るものが₹12,34,567.89のようなものを見て期待してい₹1,234,567.89(マイナス通貨記号)のようなものです。私は、メイン/ EN-IN/numbers.json /私のnode_modulesフォルダCLDRデータ内を見て、これを見つけた:
"percentFormats-numberSystem-latn": {
"standard": "#,##,##0%"
},
"currencyFormats-numberSystem-latn": {
"currencySpacing": {
"beforeCurrency": {
"currencyMatch": "[:^S:]",
"surroundingMatch": "[:digit:]",
"insertBetween": " "
},
"afterCurrency": {
"currencyMatch": "[:^S:]",
"surroundingMatch": "[:digit:]",
"insertBetween": " "
}
},
"standard": "¤ #,##,##0.00",
"accounting": "¤#,##0.00;(¤#,##0.00)",
私もCLDRのウェブサイトに行って、私は形式のファイルであると考えているものを掘っ(JA-IN .xmlファイル)とこれを見つけた:
<rulesetGrouping type="OrdinalRules">
<ruleset type="digits-ordinal">
<rbnfrule value="-x">−→→;</rbnfrule>
<rbnfrule value="0">=#,##0=$(ordinal,one{st}two{nd}few{rd}other{th})$;</rbnfrule>
</ruleset>
</rulesetGrouping>
これらの両方は、我々が得ている結果が正しいと私たちが期待するもので、当社の仮定が間違っているサポートされています。しかし、あなたがインターネットで見ている場合、私たちの仮定が正しいと結果が間違っていると言う多くの評判の良いサイトがあります。
これは私が何をすべきかを知らない状態に陥ります。誰が正しい?あなたは私たちがこの質問に答えるのを助けることができますか?
また、何らかの理由で変更したい場合は、デフォルトの形式を上書きする方法がありますか?
'en-IN'を使用すると、エラーが発生します。エラー:E_MISSING_BUNDLE:{"locale": "en-IN"} – johnsontroye
en-IN番号CLDRデータをロードしましたか? –
はい、CLDRデータが読み込まれました(再度検証されました)。私はそれがルピーの通貨記号を表示する通貨のため、正しいルールを見つけると信じています。問題は千単位区切り記号のカンマです。 ##、###、###のように表示され、ルピの期待値は#、##、##、###となります。## – johnsontroye