多言語化する際に気をつけなければいけないのは、国によってカンマの区切り方が違う点です。ピリオドで区切る国もあるようです。
地域 | 数値 | 通貨 | 桁の区切り |
---|---|---|---|
日本 | 123,456,789.00 | ¥123,456,789 | ,(カンマ・コンマ) |
アメリカ | 123,456,789.00 | $123,456,789.00 | ,(カンマ・コンマ) |
イギリス | 123,456,789.00 | £123,456,789.00 | ,(カンマ・コンマ) |
ドイツ | 123.456.789,00 | 123.456.789,00 € | .(ピリオド) |
フランス | 123 456 789,00 | 123 456 789,00 € | スペース |
韓国 | 123,456,789.00 | ₩123,456,789 | ,(カンマ・コンマ) |
中国 | 123,456,789.00 | HK$123,456,789.00 | ,(カンマ・コンマ) |
アルゼンチン | 123.456.789,00 | $ 123.456.789,00 | .(ピリオド) |
イタリア | 123.456.789,00 | € 123.456.789,00 | .(ピリオド) |
インドネシア | 123.456.789,00 | Rp123.456.789 | .(ピリオド) |
オランダ | 123.456.789,00 | € 123.456.789,00 | .(ピリオド) |
オーストラリア | 123,456,789.00 | $123,456,789.00 | ,(カンマ・コンマ) |
オーストリア | 123.456.789,00 | € 123.456.789,00 | .(ピリオド) |
ギリシャ | 123.456.789,00 | 123.456.789,00 € | .(ピリオド) |
スイス | 123’456’789.00 | SFr. 123’456’789.00 | ‘(アポストロフィ) |
スウェーデン | 123 456 789,00 | 123.456.789,00 kr | .(ピリオド) |
スペイン | 123.456.789,00 | 123.456.789,00 € | .(ピリオド) |
デンマーク | 123.456.789,00 | kr 123.456.789,00 | .(ピリオド) |
トルコ | 123.456.789,00 | 123.456.789,00 TL | .(ピリオド) |
ブラジル | 123.456.789,00 | R$ 123.456.789,00 | .(ピリオド) |
ボスニア ヘルツェゴビナ | 123.456.789,00 | 123.456.789,00 КМ | .(ピリオド) |
メキシコ | 123,456,789.00 | $123,456,789.00 | ,(カンマ・コンマ) |
ロシア | 123 456 789,00 | 123 456 789,00р. | スペース |
各国に合わせた数字の区切りを標準ライブラリで実現する
Intl オブジェクトを使って、各言語に合わせた区切りに自動的に変換します。
使い方は以下のとおり、 new Intl.NumberFormat(languageTag);
に ja-JP
のような言語コードを渡して、 formatter
を作り、その formatter
を使って、 format
します。
JavaScript
import { getLocales } from 'expo-localization';
const languageTag = getLocales()[0].languageTag;
const formatter = new Intl.NumberFormat(languageTag);
console.log(formatter.format(4567000))
結果として、以下のイメージのように、自動でカンマ区切りで表示できました。