Intl.NumberFormatによる単位フォーマット(メートル、リットル、バイト)

Intl.NumberFormatのunitスタイルを使用して、キロメートル、リットル、キログラム、バイトなどの測定単位を任意のロケールでフォーマットします。unitDisplay モードとサポートされる単位識別子について学びます。

Intl.NumberFormat

詳細な説明

Intl.NumberFormatによる単位フォーマット

Intl.NumberFormatunitスタイルは、ロケールに適した単位ラベルで値をフォーマットします。物理的な測定値、デジタルストレージ、速度、温度などをサポートしています。

基本的な単位フォーマット

new Intl.NumberFormat('en-US', {
  style: 'unit', unit: 'kilometer', unitDisplay: 'long',
}).format(42);  // "42 kilometers"

new Intl.NumberFormat('de-DE', {
  style: 'unit', unit: 'kilometer', unitDisplay: 'long',
}).format(42);  // "42 Kilometer"

new Intl.NumberFormat('ja-JP', {
  style: 'unit', unit: 'kilometer', unitDisplay: 'long',
}).format(42);  // "42 キロメートル"

単位表示モード

unitDisplayオプションはラベル形式を制御します:

const opts = { style: 'unit', unit: 'liter' };

// "long":   "3.5 liters"
// "short":  "3.5 L"
// "narrow": "3.5L"

サポートされる単位識別子

一般的な単位:

  • 長さ: meter, kilometer, centimeter, mile, foot, inch
  • 質量: kilogram, gram, pound, ounce
  • 容積: liter, milliliter, gallon
  • 温度: celsius, fahrenheit
  • 速度: kilometer-per-hour, mile-per-hour
  • デジタル: byte, kilobyte, megabyte, gigabyte, terabyte

複合単位

-per-で2つの単位を組み合わせることができます:

new Intl.NumberFormat('en-US', {
  style: 'unit',
  unit: 'mile-per-gallon',
  unitDisplay: 'short',
}).format(30);  // "30 mpg"

ユースケース

単位フォーマットは、物理的な測定値、ファイルサイズ、速度値を国際的なユーザーに表示するアプリケーションにとって不可欠です。フィットネスアプリがメトリックロケールで「5 km」、インペリアルロケールで「3.1 mi」と表示する必要があります。クラウドストレージダッシュボードが英語で「1.5 GB」、フランス語で「1,5 Go」と表示する必要があります。単位フォーマットを使用することで、ラベルがすべてのロケールで正しく翻訳・フォーマットされます。

試してみる — Locale String Tester

フルツールを開く