JavaScript/Intl
Intlオブジェクトは、 ECMAScript の国際化 APIですが ECMAScript(ECMA-262)とは別の ECMA-402 として規格としては独立しています。 Intlオブジェクトは、言語に依存した文字列の比較、数値フォーマット、日付フォーマットを提供します。
関数プロパティ
[編集]Intl.Collator
[編集]Intl.Collator
は、文字列の並べ替えや比較を言語やロケールに応じて行うためのオブジェクトです。
- 概要
- 文字列比較を行う際に、ロケールに応じた並べ替え順序を提供します。デフォルトのUnicode Collation Algorithm(UCA)を基に動作します。
- 使用例
const collator = new Intl.Collator('ja-JP'); console.log(['た', 'し', 'す'].sort(collator.compare)); // 出力: ["し", "す", "た"]
Intl.DateTimeFormat
[編集]Intl.DateTimeFormat
は、日付および時刻をロケールに基づいてフォーマットするためのオブジェクトです。
- 概要
- 指定されたロケールおよびオプションに応じて日付・時刻を表示形式に変換します。
- 使用例
const formatter = new Intl.DateTimeFormat('ja-JP', { dateStyle: 'long' }); console.log(formatter.format(new Date('2024-07-01'))); // 出力: "2024年7月1日"
Intl.DisplayNames
[編集]Intl.DisplayNames
は、言語、地域、スクリプト、および通貨名などの表示名をロケールに応じて取得するためのオブジェクトです。
- 概要
- ロケールに基づいて、特定の表示名を取得します。
- 使用例
const displayNames = new Intl.DisplayNames(['ja-JP'], { type: 'language' }); console.log(displayNames.of('fr')); // 出力: "フランス語"
Intl.ListFormat
[編集]Intl.ListFormat
は、リストを指定されたロケールの文法ルールに基づいてフォーマットするためのオブジェクトです。
- 概要
- 言語ごとのリスト結合ルール(「および」や「または」)を使用してリストをフォーマットします。
- 使用例
const list = new Intl.ListFormat('ja-JP', { style: 'long', type: 'conjunction' }); console.log(list.format(['りんご', 'バナナ', 'みかん'])); // 出力: "りんご、バナナ、およびみかん"
== Intl.Locale == Intl.Locale
は、ロケール(言語タグ)を解析およびカスタマイズするためのオブジェクトです。
- 概要
- 言語、地域、スクリプト、カレンダー設定などを含むロケール情報を管理します。
- 使用例
const locale = new Intl.Locale('ja-JP-u-ca-japanese'); console.log(locale.language); // 出力: "ja" console.log(locale.calendar); // 出力: "japanese"
== Intl.NumberFormat == Intl.NumberFormat
は、数値をロケールに基づいてフォーマットするためのオブジェクトです。
- 概要
- 数値を通貨、パーセント、標準形式など、指定された形式にフォーマットします。
- 使用例
const numberFormat = new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }); console.log(numberFormat.format(1234567.89)); // 出力: "¥1,234,568"
Intl.PluralRules
[編集]Intl.PluralRules
は、数値に対して適切な複数形の形式をロケールに基づいて取得するためのオブジェクトです。
- 概要
- 言語ごとの複数形ルールに応じてカテゴリ(one, otherなど)を返します。
- 使用例
const plural = new Intl.PluralRules('ja-JP'); console.log(plural.select(1)); // 出力: "other" console.log(plural.select(5)); // 出力: "other"
Intl.RelativeTimeFormat
[編集]Intl.RelativeTimeFormat
は、相対的な時間表現をロケールに基づいてフォーマットするためのオブジェクトです。
- 概要
- 「1日前」「3か月後」など、相対的な時間表現を生成します。
- 使用例
const rtf = new Intl.RelativeTimeFormat('ja-JP', { numeric: 'auto' }); console.log(rtf.format(-1, 'day')); // 出力: "昨日" console.log(rtf.format(2, 'year')); // 出力: "2 年後"
Intl.Segmenter
[編集]Intl.Segmenter
は、テキストを文、単語、または文字単位で分割するためのオブジェクトです。
- 概要
- 言語ごとの分割ルールに基づいてテキストをセグメント化します。
- 使用例
const segmenter = new Intl.Segmenter('ja-JP', { granularity: 'word' }); const segments = segmenter.segment('今日は良い天気ですね。'); for (const segment of segments) { console.log(segment.segment); } // 出力: "今日", "は", "良い", "天気", "です", "ね", "。"
Intl.getCanonicalLocales
[編集]Intl.getCanonicalLocales
は、指定されたロケールのリストを正規化し、標準形式に変換する静的メソッドです。
- 概要
- 入力されたロケールタグを正規化し、重複を取り除いて返します。
- 使用例
const locales = Intl.getCanonicalLocales(['ja-JP', 'en-US', 'ja-jp']); console.log(locales); // 出力: ["ja-JP", "en-US"]
これらのIntl
オブジェクトやメソッドは、国際化対応のアプリケーション開発において、ロケール固有のフォーマットや処理を簡単に行うための重要なツールです。
下位階層のページ
[編集]
脚註
[編集]