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サイト、ダッシュボードのメトリクス表示、価格・パーセンテージ・カウントなどのロケールフォーマットされた数値を表示するあらゆるアプリケーションを構築する開発者。

試してみる — ICU Message Format Tester

フルツールを開く