アラビア語・ヘブライ語の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などの地域通貨で正しい通貨フォーマットが必要です。双方向テキスト処理を理解することで、数値が反転したり不正確に配置される表示問題を防止できます。

試してみる — Locale String Tester

フルツールを開く