This article is in need of an editorial review.
This translation is incomplete. Please help translate this article from English.
概要
Intl オブジェクトは、ECMAScriptの国際化APIの名前空間です。それは、言語に依存した文字列の比較、数値フォーマット、日付フォーマットを提供します。Collator、NumberFormat、DateTimeFormatオブジェクトに対するコンストラクタは、Intlオブジェクトのプロパティです。このページでは、国際コンストラクタと他の言語に依存する機能に共通の機能と同様に、これらのプロパティを文書化しています。.
プロパティ
Intl.Collator- 言語に依存した文字列の比較を可能にするオブジェクトであるcollatorsに対するコンストラクタ。
Intl.DateTimeFormat- 言語に依存した日時フォーマットを可能にするオブジェクトに対するコンストラクタ。
Intl.NumberFormat- 言語に依存した日時フォーマットを可能にするオブジェクトに対するコンストラクタ。
ロケールの識別と折衝
他のコンストラクタのいくつかの言語に依存したメソッド(See alsoにリストされています)だけでなく国際コンストラクタもロケールを識別し、実際に使用しているローケルを判断するための共通パターンを使用する。: すなわち、locales引数とoptions引数をすべて受け入れます。そして、options.localeMatcherプロパティで指定されたアルゴリズムを使用してサポートするローケルに対して要求されたロケールをネゴシエートします。
locales引数
locales引数はBCP 47 language tagを保持している文字列、または、そのような言語タグの配列のどちらかでなければならない。locales引数が与えられない、または、未定義の場合、ランタイムのデフォルトローケルが使用されます。
BCP 47言語タグは言語またはローケルを識別します(その二つの間の違いはあいまいです)。ほとんどのの共通フォームでは、下記の順番で含まれています。: 言語コード、スクリプトコード、国コード、ハイフンですべて分割されています。例:
"hi": ヒンディー語。"de-AT": オーストリアで使用されているドイツ語。"zh-Hans-CN": 中国で使用されている簡体字で書かれる中国語。
言語、スクリプト、国(地域)、BCP 47言語タグで(まれに使用される)バリアントがIANA Language Subtag Registryで見つかります。
BCP47はまた、拡張を可能にし、そのうちの一つは、JavaScriptの国際化機能に重要です。: "u" (Unicode) 拡張。それは、Collator、NumberFormat、DateTimeFormatオブジェクトのロケール固有の動作のカスタマイズを要求するために使用することができます。例:
"de-DE-u-co-phonebk": ドイツのソート順の電話帳バリアントを使用します。それは、文字ペアに母音を拡大します。: ä → ae, ö → oe, ü → ue."th-TH-u-nu-thai": 数値フォーマットで、タイの数字 (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) を使用します。"ja-JP-u-ca-japanese": 日時フォーマットで日本語のカレンダーを使用します。すなわち、2013は、平成期間の25年として表現されます。または 平成25として表現されます。
ロケール折衝
locales引数は、すべてのUnicode拡張を剥離した後、アプリケーションからの優先順位要求として解釈されます。ランタイムは、利用可能なローケルと比較し、一番利用可能なローケルを選びます。二つのマッチングアルゴリズムが存在します: "lookup" matcherは、BCP 47で指定された検索アルゴリズムに従います。"best fit" matcherによって、ランタイムは、検索アルゴリズムの結果よりも、要求に少なくとも、しかし、おそらくもっと適したロケールを提供できます。アプリケーションがlocales引数を提供しない場合、または、ランタイムが要求に一致したローケルを持たない場合、ランタイムのデフォルトローケルが使用されます。matcherは、options引数のプロパティを使用して選択されます(下を見てください)。
選択した言語タグがUnicodeの拡張部分を持っている場合、その拡張は構築されたオブジェクト、または、関数の振る舞いをカスタマイズするために現在使用されます。各コンストラクタ、または、関数は、Unicode拡張に対するキー定義のサブセットのみサポートし、サポートされた値は、しばしば言語タグに依存します。例えば、"co" キー (コレクション)は、Collatorによってのみサポートされ、"phonebk"値はドイツ語に対してのみサポートされます。
options 引数
options 引数は、コンストラクタと関数の間で異なるプロパティをもつオブジェクトである必要があります。options引数が与えられない場合、または、未定義の場合、デフォルト値はすべてのプロパティに対して使用されます。
あるプロパティが、すべての言語に依存したコンストラクタや関数によってサポートされます。: それは、localeMatcherプロパティです。その値は、"lookup"または"best fit"文字列である必要があり、上述のロケールマッチングアルゴリズムの一つを選択します。
仕様
| 仕様 | 状況 | コメント |
|---|---|---|
| ECMAScript Internationalization API 1.0 (ECMA-402) The definition of 'Intl' in that specification. |
Standard | 初期定義。 |
ブラウザ実装状況
| 機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| 基本サポート | 24 | 29 (29) | 11 | 15 | 未実装 (参照 WebKit bug 90906) |
| 機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本サポート | 未サポート | 26 | 未サポート バグ 864843 |
未サポート | 未サポート | 未サポート |