アラビア語・ヘブライ語のRTL数値フォーマット
アラビア語やヘブライ語などの右から左(RTL)ロケールで数値がどのようにフォーマットされるかを理解します。東アラビア数字、双方向テキスト処理、RTL固有のフォーマットルールについて学びます。
Intl.NumberFormat
詳細な説明
RTL数値フォーマット:アラビア語とヘブライ語
右から左のロケールは数値フォーマットに独特な課題をもたらします。アラビア語テキストは右から左に読みますが、数値は左から右に読むか、東アラビア数字を使用します。
東アラビア数字
アラビア語ロケールは東アラビア・インド数字を使用する場合があります:
new Intl.NumberFormat('ar-SA').format(1234567.89);
// "١٬٢٣٤٬٥٦٧٫٨٩"
数字のマッピング:
| 西洋 | 東アラビア |
|---|---|
| 0 | ٠ |
| 1 | ١ |
| 2 | ٢ |
| 3 | ٣ |
| 4 | ٤ |
| 5 | ٥ |
ヘブライ語フォーマット
ヘブライ語は標準的な西洋数字を使用しますが、テキスト要素はRTLルールに従って配置されます:
new Intl.NumberFormat('he-IL', {
style: 'currency',
currency: 'ILS',
}).format(1234.5);
// "1,234.50 ₪"
アラビア語で西洋数字を強制する
new Intl.NumberFormat('ar-SA-u-nu-latn').format(1234567.89);
// "1,234,567.89"(アラビア語フォーマットルールでラテン数字)
-u-nu-latn Unicode拡張はラテン数字の表示を強制します。
ユースケース
RTL数値フォーマットは、アラビア語圏およびヘブライ語圏のユーザーにサービスを提供するアプリケーションにとって重要です。サウジアラビアやUAEの銀行アプリは東アラビア数字で金額を表示する必要があります。中東をターゲットとするECプラットフォームはSAR、AEDなどの地域通貨で正しい通貨フォーマットが必要です。双方向テキスト処理を理解することで、数値が反転したり不正確に配置される表示問題を防止できます。