--- title: Intl slug: Web/JavaScript/Reference/Global_Objects/Intl tags: - Internationalization - Intl - JavaScript - Namespace - 名前空間 - 国際化 translation_of: Web/JavaScript/Reference/Global_Objects/Intl ---
{{JSRef}}

Intl オブジェクトは、 ECMAScript の国際化 API の名前空間で、言語に依存した文字列の比較、数値フォーマット、日付フォーマットを提供します。 Intl オブジェクトは、いくつかのコンストラクターに加え、国際化コンストラクターや他の言語に関する関数に共通する機能へのアクセスを提供します。

プロパティ

{{jsxref("Global_Objects/Collator", "Intl.Collator")}}
言語に依存した文字列の比較を可能にするオブジェクトである collator のためのコンストラクター。
{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}
言語に依存した日時の書式化を可能にするオブジェクトのためのコンストラクター。
{{jsxref("Global_Objects/ListFormat", "Intl.ListFormat")}}
言語に依存したリストの書式化を可能にするオブジェクトのためのコンストラクター。
{{jsxref("Global_Objects/Locale", "Intl.Locale")}}
Unicode ロケール識別子を表すオブジェクトのためのコンストラクター。
{{jsxref("Global_Objects/NumberFormat", "Intl.NumberFormat")}}
言語に依存した数値フォーマットを可能にするオブジェクトのためのコンストラクター。
{{jsxref("Global_Objects/PluralRules", "Intl.PluralRules")}}
複数形を意識した書式化や複数形の言語規則を可能にするオブジェクトのためのコンストラクター。
{{jsxref("Global_Objects/RelativeTimeFormat", "Intl.RelativeTimeFormat")}}
言語を意識した相対時刻の書式化を可能にするオブジェクトのためのコンストラクター。

メソッド

{{jsxref("Intl.getCanonicalLocales()")}}
正規のロケール名を返すメソッド。

ロケールの識別とネゴシエーション

国際化コンストラクターや他のコンストラクターの言語を意識したメソッド (関連情報に記載) は、ロケールを識別して実際に使用するものを決定するために共通のパターンを使用しています。これらはすべて、 localesoptions の引数を受け取り、 options.localeMatcher プロパティで指定したアルゴリズムを使用して 要求されたロケールと対応しているロケールとのネゴシエーションを行います。

locales 引数

locales 引数は、 BCP 47 言語タグを保持している文字列か、そのような言語タグの配列でなければなりません。 locales 引数が与えられていなかったり、 undefined であったりした場合は、実行時の既定のロケールが使用されます。

BCP 47 言語タグは、言語と、少なくとも主たる言語コードを含んでいます。ほとんどのよくある形式では、すべてハイフンで区切られたサブタグを、言語コード、文字体系コード、国または地域コードの順で含んでいます。タグは大文字小文字を区別しませんが、文字体系コードでは先頭が大文字で残りは小文字、国または地域コードでは大文字、その他はすべて小文字が推奨されています。

例:

言語、文字体系、国 (地域)、 (まれに使用される) 変化形を識別する BCP 47 言語タグのサブタグは IANA Language Subtag Registry で調べられます。

BCP 47 はまた、拡張を認めており、そのうちの一つ "u" (Unicode) 拡張は、 JavaScript の国際化機能にとって重要です。それは、{{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, {{jsxref("DateTimeFormat")}} オブジェクトのロケール固有の動作のカスタマイズを要求するために使用することができます。

BCP 47 拡張タグは Unicode CLDR Project にあります。

ロケールネゴシエーション

locales 引数は、すべての Unicode 拡張を除去した後、アプリケーションからの優先順位付き要求として解釈されます。ランタイムは、利用可能なロケールと比較し、利用可能なロケールのうち最適なものを選びます。マッチングアルゴリズムは二種類あります。 "lookup" マッチャーは、BCP 47 で指定された Lookup アルゴリズムに従います。 "best fit" マッチャーでは、ランタイムが少なくとも、あるいは場合によっては、 Lookup アルゴリズムの結果よりもリクエストに適合したロケールを提供します。アプリケーションが locales 引数を提供しなかった場合や、リクエストに一致するロケールをランタイムが持っていなかった場合は、ランタイムの既定のロケールが使用されます。マッチャーは、 options 引数のプロパティを使って選択することができます (後述)。

ネゴシエーションにより選択された言語タグが Unicode 拡張の部分文字列を持っているとき、その拡張はここで、構築されたオブジェクトや関数の振る舞いをカスタマイズするために使われます。それぞれのコンストラクターや関数は、 Unicode 拡張用のキーのごく一部分のみ対応しており、また、対応する値は、多くの場合言語タグに依存します。例えば、 "co" キー (コレクション)は、 {{jsxref("Collator")}} だけが対応しており、そのキーに対する "phonebk" の値はドイツ語だけが対応しています。

options 引数

options 引数は、コンストラクターや関数ごとに異なるプロパティをもつオブジェクトである必要があります。 options 引数が与えられなかった場合、または、未定義の場合、すべてのプロパティに対して既定値が使用されます。

言語を意識するすべてのコンストラクターや関数が対応しているプロパティが一つあります。 localeMatcher プロパティで、この値は "lookup" または "best fit" の文字列である必要があり、上記のロケールマッチングアルゴリズムのうちから一つを選択します。

仕様書

仕様書
{{SpecName('ES Int Draft', '#intl-object', 'Intl')}}

ブラウザーの互換性

{{Compat("javascript.builtins.Intl")}}

関連情報