カジュアルで非科学的な表示(たとえば、12,345を "12.3k"とする)の省略形で大きな数値をフォーマットするという概念は、SEで十分に検討されています。
しかし、これらはどれも国際化とローカリゼーションに対応していません。他の言語やロケールでこれを行う方法には、異なる標準がありますか?特に:
短い形式で大きな数を与えることには、まったく異なる基準があります。
人にやさしいリソースではありませんが、ソフトウェア開発者向けに開発されたリソースは、Unicode組織のCommon Locale Data Repositoryです。これらは、さまざまなロケールでの数値や日付などを表示するためのあらゆる種類のデータを持っています(たとえば、言語だけでなく、地域によって言語のバリエーションも異なります。たとえば、英国英語と米国英語は異なる場合があります)。それらには、 数値を簡単にフォーマットする方法 の概要を示すこれらのファイルがあります。
リポジトリに移動する で目的の言語のファイルを開き、「decimalFormats-numberSystem-latn
」を検索すると、数値の形式を指定する短いセクションが表示されますその言語。
だから、これが 'en_GB'(English for the UK)で見つけたもの) :
"short": {
"decimalFormat": {
"1000-count-one": "0K",
"1000-count-other": "0K",
"10000-count-one": "00K",
"10000-count-other": "00K",
"100000-count-one": "000K",
"100000-count-other": "000K",
"1000000-count-one": "0M",
"1000000-count-other": "0M",
"10000000-count-one": "00M",
"10000000-count-other": "00M",
"100000000-count-one": "000M",
"100000000-count-other": "000M",
"1000000000-count-one": "0B",
"1000000000-count-other": "0B",
"10000000000-count-one": "00B",
"10000000000-count-other": "00B",
"100000000000-count-one": "000B",
"100000000000-count-other": "000B",
"1000000000000-count-one": "0T",
"1000000000000-count-other": "0T",
"10000000000000-count-one": "00T",
"10000000000000-count-other": "00T",
"100000000000000-count-one": "000T",
"100000000000000-count-other": "000T"
}
'ja'ファイル(日本語の場合) を見ると、別のことがわかります。
"short": {
"decimalFormat": {
"1000-count-other": "0千",
"10000-count-other": "0万",
"100000-count-other": "00万",
"1000000-count-other": "000万",
"10000000-count-other": "0000万",
"100000000-count-other": "0億",
"1000000000-count-other": "00億",
"10000000000-count-other": "000億",
"100000000000-count-other": "0000億",
"1000000000000-count-other": "0兆",
"10000000000000-count-other": "00兆",
"100000000000000-count-other": "000兆"
}
(ブラウザでå…†
のような奇妙な文字が表示される場合は、ファイルエンコーディングが「Unicode」として表示されるようにブラウザを設定してください。)
...これは最もエレガントなソリューションではありませんが、探しているものを見つけるのに役立ちます。