ICUメッセージでの数値フォーマット
ICU number引数を使用して、ロケール対応の桁区切り、通貨記号、パーセンテージ、整数丸めで数値をフォーマット。組み込みの数値スタイルをすべてカバー。
Formatting
詳細な説明
ロケール対応の数値フォーマット
ICU MessageFormatのnumber引数型は、対象ロケールのルールに従って数値をフォーマットします。桁区切り、小数点、通貨記号、パーセンテージフォーマットを自動的に処理します。
基本的な数値フォーマット
{count, number}
| ロケール | 入力 | 出力 |
|---|---|---|
| en-US | 1234567.89 | 1,234,567.89 |
| de-DE | 1234567.89 | 1.234.567,89 |
| ja-JP | 1234567.89 | 1,234,567.89 |
| fr-FR | 1234567.89 | 1 234 567,89 |
数値スタイル
通貨(Currency)
The total is {amount, number, currency}.
| ロケール | 入力 | 出力 |
|---|---|---|
| en-US | 42.5 | $42.50 |
| de-DE | 42.5 | 42,50 EUR |
| ja-JP | 42.5 | 43 JPY |
パーセント(Percent)
Completion: {ratio, number, percent}
注意:入力値は分数として扱われます(0.856 = 85.6%)。
整数(Integer)
About {count, number, integer} items
最寄りの整数に丸められます:42.7 -> 43、42.2 -> 42
文中での使用
Your cart: {itemCount, number} {itemCount, plural, one {item} other {items}} totaling {total, number, currency}.
なぜコードでフォーマットしないのか?
メッセージに渡す前にアプリケーションコードで数値をフォーマットすると、ローカリゼーションの契約が壊れます。翻訳者は異なるロケールでの数値の表示方法を制御できません。常に生の数値を渡し、ICUフォーマッターにロケール固有のフォーマットを処理させてください。
ユースケース
マルチ通貨のECサイト、ダッシュボードのメトリクス表示、価格・パーセンテージ・カウントなどのロケールフォーマットされた数値を表示するあらゆるアプリケーションを構築する開発者。