コンテンツにスキップ

JavaScript/Intl

出典: フリー教科書『ウィキブックス(Wikibooks)』

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オブジェクトやメソッドは、国際化対応のアプリケーション開発において、ロケール固有のフォーマットや処理を簡単に行うための重要なツールです。

下位階層のページ

[編集]


脚註

[編集]


外部リンク

[編集]