recursal/MDN huggingface dataset:
Intl.DateTimeFormat.supportedLocalesOf()
========================================

**`Intl.DateTimeFormat.supportedLocalesOf()`** メソッドは、ランタイムの既定のロケールで代替する必要なく日時の書式で対応されているものを含む配列を返します。

試してみましょう
--------

構文
--


```js
Intl.DateTimeFormat.supportedLocalesOf(locales);
Intl.DateTimeFormat.supportedLocalesOf(locales, options);
```

### 引数

`locales`

BCP 47 言語タグを持つ文字列、またはそのような文字列の配列です。 `locales` 引数の一般的な形式については、 Intl のページを参照してください。

`options` 省略可

省略可能です。以下のプロパティを持つことがあるオブジェクトです。

`localeMatcher`

使用するロケールの一致アルゴリズムです。指定可能な値は `lookup` および `best fit` で、既定値は `best fit` です。このオプションの詳細は、 Intl のページを参照してください。


### 返値

指定したロケールタグのサブセットを表す文字列の配列で、ランタイムの既定のロケールで代替する必要なく日時の書式で対応されているものを含みます。

解説
--

`locales` で提供されている言語タグのサブセットを含む配列を返します。返される言語タグは、ランタイムが日時のロケールに対応しているもので、使用しているロケール照合アルゴリズムで一致しているとみなされているものです。

例
-

### supportedLocalesOf() の使用

日時の書式でインドネシア語とドイツ語に対応しており、バリ語に対応していないランタイムを想定すると、 `supportedLocalesOf` はインドネシア語とドイツ語の言語タグを変更せずに返しますが、 pinyin の照合は日時の書式には関係なく、インドネシア語でも使用されません。ここでの `lookup` アルゴリズムの仕様に注意してください — バリ語話者のほとんどはインドネシア語も理解しているので、 `best fit` のマッチャーはインドネシア語がバリ語に適切に一致すると判断し、バリ語の言語タグも返すかもしれません。


```js
const locales = ["ban", "id-u-co-pinyin", "de-ID"];
const options = { localeMatcher: "lookup" };
console.log(
  Intl.DateTimeFormat.supportedLocalesOf(locales, options).join(", "),
);
// → "id-u-co-pinyin, de-ID"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.supportedlocalesof |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.DateTimeFormat`
Intl.DateTimeFormat.prototype.format()
======================================

The **`Intl.DateTimeFormat.prototype.format()`** メソッドは、この `Intl.DateTimeFormat` オブジェクトのロケールと整形オプションに従って日付や時刻を整形します。

試してみましょう
--------

構文
--


```js
format(date);
```

### 引数

`date`

整形する日付です。

解説
--

`format` ゲッター関数は、この `Intl.DateTimeFormat` オブジェクトのロケールと整形オプションに従って日付や時刻を整形し、文字列に格納します。

例
-

### format の使用

`format` ゲッター関数を使用して単一の日付値を整形します。こちらはセルビアの例です。


```js
var options = {
  weekday: "long",
  year: "numeric",
  month: "long",
  day: "numeric",
};
var dateTimeFormat = new Intl.DateTimeFormat("sr-RS", options);
console.log(dateTimeFormat.format(new Date()));
// → "недеља, 7. април 2013."
```

### format と map の使用

`format` ゲッター関数を使用して、配列内のすべての日付を整形することができます。なお、この関数は供給元である `Intl.DateTimeFormat` に結び付けられているので、直接 `Array.prototype.map()` に渡すことができます。


```js
var a = [new Date(2012, 08), new Date(2012, 11), new Date(2012, 03)];
var options = { year: "numeric", month: "long" };
var dateTimeFormat = new Intl.DateTimeFormat("pt-BR", options);
var formatted = a.map(dateTimeFormat.format);
console.log(formatted.join("; "));
// → "setembro de 2012; dezembro de 2012; abril de 2012"
```

### 書式化された日付値を固定値と比較することは避ける

ほとんどの場合、 `format()` が返す書式は一貫しています。しかし、これは将来的に変更される可能性があり、すべての言語で保証されているわけではありません — 出力のバリエーションは設計上のものであり、仕様上は許容されています。最も注目すべきは、 IE や Edge ブラウザは日付の周りに双方向の制御文字を挿入するため、他のテキストと連結したときに出力テキストが適切に流れることです。

このことから、 `format()` の結果と固定値を比較することができると期待してはいけません。


```js
let d = new Date("2019-01-01T00:00:00.000000Z");
let formattedDate = Intl.DateTimeFormat(undefined, {
  year: "numeric",
  month: "numeric",
  day: "numeric",
  hour: "numeric",
  minute: "numeric",
  second: "numeric",
}).format(d);

"1.1.2019, 01:00:00" === formattedDate;
// true in Firefox and others
// false in IE and Edge
```


**メモ:** この StackOverflow のスレッドに詳細や例があります。

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.prototype.format |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.DateTimeFormat`
* `Date.prototype.toLocaleString()`
* `Date.prototype.toLocaleDateString()`
* `Date.prototype.toLocaleTimeString()`
Intl.DateTimeFormat.prototype.formatRange()
===========================================

**`Intl.DateTimeFormat.prototype.formatRange()`** は、 `Intl.DateTimeFormat` オブジェクトがインスタンス化されたときに提供された **`locale`** と **`options`** に基づいて、もっとも簡明な方法で日付の範囲を書式化します。

試してみましょう
--------

構文
--


```js
formatRange(startDate, endDate);
```

例
-

### 基本的な formatRange の使用

このメソッドは 2 つの `Date` を受け取り、 `Intl.DateTimeFormat` オブジェクトがインスタンス化されたときに提供された `locale` と `options` に基づいて日付の範囲を書式化します。


```js
let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
let date3 = new Date(Date.UTC(2007, 0, 20, 10, 0, 0));
// > 'Wed, 10 Jan 2007 10:00:00 GMT'
// > 'Wed, 10 Jan 2007 11:00:00 GMT'
// > 'Sat, 20 Jan 2007 10:00:00 GMT'

let fmt1 = new Intl.DateTimeFormat("en", {
  year: "2-digit",
  month: "numeric",
  day: "numeric",
  hour: "numeric",
  minute: "numeric",
});
console.log(fmt1.format(date1));
console.log(fmt1.formatRange(date1, date2));
console.log(fmt1.formatRange(date1, date3));
// > '1/10/07, 10:00 AM'
// > '1/10/07, 10:00 – 11:00 AM'
// > '1/10/07, 10:00 AM – 1/20/07, 10:00 AM'

let fmt2 = new Intl.DateTimeFormat("en", {
  year: "numeric",
  month: "short",
  day: "numeric",
});
console.log(fmt2.format(date1));
console.log(fmt2.formatRange(date1, date2));
console.log(fmt2.formatRange(date1, date3));
// > 'Jan 10, 2007'
// > 'Jan 10, 2007'
// > 'Jan 10 – 20, 2007'
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.prototype.formatRange |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.DateTimeFormat`
Intl.DateTimeFormat.prototype.resolvedOptions()
===============================================

**`Intl.DateTimeFormat.prototype.resolvedOptions()`** メソッドは、この `Intl/DateTimeFormat` オブジェクトの初期化時に計算されたロケールや日付と時刻の整形オプションを反映したプロパティを持つ新しいオブジェクトを返します。

試してみましょう
--------

構文
--


```js
resolvedOptions();
```

### 返値

この `Intl/DateTimeFormat` オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトです。

解説
--

返されるオブジェクトには以下のプロパティがあります。

`locale`

実際に使用したロケールの BCP 47 言語タグ。このロケールにつながる入力 BCP 47 言語タグに Unicode 拡張値が要求された場合、要求されたキーと値のペアのうち、このロケールで対応しているものが `locale` に含まれます。

`calendar`

例: "gregory"

`numberingSystem`

Unicode 拡張キーの `"ca"` および `"nu"` で要求された値、または既定値が入ります。

`timeZone`

`options` 引数の同名のプロパティで要求された値です。提供された値がなければ `undefined` (ランタイムの既定のタイムゾーン) です。警告: アプリケーションは `undefined` が返されることに依存しないでください。将来のバージョンではランタイムの既定のタイムゾーンを識別する `String` 値が返されるようになる可能性があるからです。

`hour12`

`options` 引数の同名のプロパティで要求された値、または既定値が入ります。

`weekday`, `era`, `year`, `month`, `day`, `hour`, `minute`, `second`, `timeZoneName`

`options` 引数の対応するプロパティと、選択したロケールでの日付時刻の書式設定に利用可能な組み合わせや表現との間で、書式のマッチングを行った結果の値。これらのプロパティの中には、対応するコンポーネントが書式化された出力では表現されないものもあります。

例
-

### resolvedOptions メソッドの使用


```js
var germanFakeRegion = new Intl.DateTimeFormat("de-XX", { timeZone: "UTC" });
var usedOptions = germanFakeRegion.resolvedOptions();

usedOptions.locale; // "de"
usedOptions.calendar; // "gregory"
usedOptions.numberingSystem; // "latn"
usedOptions.timeZone; // "UTC"
usedOptions.month; // "numeric"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.prototype.resolvedoptions |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.DateTimeFormat`
Intl.DateTimeFormat.prototype.formatRangeToParts()
==================================================

**`Intl.DateTimeFormat.prototype.formatRangeToParts()`** メソッドは、 `Intl.DateTimeFormat` フォーマッターで生成される期間の各部品を表すロケール特有のトークンを提供します。

試してみましょう
--------

構文
--


```js
formatRangeToParts(startDate, endDate);
```

例
-

### 基本的な formatRangeToParts の使い方

このメソッドは2つの `Date` を受け取り、期間を書式化する際の各部品を表す*ロケール特有*のトークンを含む `Array` オブジェクトを返します。

**メモ:** 返値は現在のロケールで表示されるので、以下のものとは異なる可能性があります。


```js
let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
// > 'Wed, 10 Jan 2007 10:00:00 GMT'
// > 'Wed, 10 Jan 2007 11:00:00 GMT'

let fmt = new Intl.DateTimeFormat("en", {
  hour: "numeric",
  minute: "numeric",
});

console.log(fmt.formatRange(date1, date2));
// > '10:00 – 11:00 AM'

fmt.formatRangeToParts(date1, date2);
// return value:
// [
// { type: 'hour', value: '10', source: "startRange" },
// { type: 'literal', value: ':', source: "startRange" },
// { type: 'minute', value: '00', source: "startRange" },
// { type: 'literal', value: ' – ', source: "shared" },
// { type: 'hour', value: '11', source: "endRange" },
// { type: 'literal', value: ':', source: "endRange" },
// { type: 'minute', value: '00', source: "endRange" },
// { type: 'literal', value: ' ', source: "shared" },
// { type: 'dayPeriod', value: 'AM', source: "shared" }
// ]
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.DateTimeFormat.prototype.formatRangeToParts |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.DateTimeFormat.prototype.formatRange()`
* `Intl.DateTimeFormat`
Intl.PluralRules.selectRange()
==============================

**`Intl.PluralRules.prototype.selectRange()`** メソッドは 2 つの値を受け取り、ロケールを考慮した書式設定に使用する複数形ルールを示す文字列を返します。

構文
--


```js
selectRange(startRange, endRange);
```

### 返値

数字の複数形のカテゴリーを表す文字列で、 `zero`, `one`, `two`, `few`, `many`, `other` のいずれかで、 LDML 言語複数ルールで指定されたローカライズのロケールに関連するものです。

解説
--

この関数は、 `Intl.PluralRules` オブジェクトのロケールおよび書式化オプションに従って、複数形カテゴリーを選択するものです。

例
-

### selectRange() の使用


```js
new Intl.PluralRules("sl").selectRange(102, 201);
// → 'few'

new Intl.PluralRules("pt").selectRange(102, 102);
// → 'other'
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.pluralrules.prototype.selectrange |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.PluralRules`
Intl.PluralRules.supportedLocalesOf()
=====================================

**`Intl.PluralRules.supportedLocalesOf()`** メソッドは、ランタイムの既定のロケールのうち、代替する必要なく複数形の書式で対応されているものが入った配列を返します。

試してみましょう
--------

構文
--


```js
Intl.PluralRules.supportedLocalesOf(locales);
Intl.PluralRules.supportedLocalesOf(locales, options);
```

### 引数

`locales`

BCP 47 言語タグを持つ文字列、またはそのような文字列の配列です。 `locales` 引数の一般的な形式については、 Intl のページを参照してください。

`options` 省略可

省略可能です。以下のプロパティを持つことがあるオブジェクトです。

`localeMatcher`

使用するロケールの照合アルゴリズムです。指定可能な値は "`lookup`" および "`best fit`" で、既定値は "`best fit`" です。このオプションの詳細は、 Intl のページを参照してください。


### 返値

指定したロケールタグのサブセットを表す文字列の配列で、ランタイムの既定のロケールのうち、代替する必要なく複数形の書式で対応されているものが入ります。

解説
--

`locales` で提供されている言語タグのサブセットを含む配列を返します。返される言語タグは、ランタイムが複数形のロケールに対応しているもので、使用しているロケール照合アルゴリズムで一致しているとみなされているものです。

例
-

### supportedLocalesOf() の使用

複数形の書式でインドネシア語とドイツ語に対応しており、バリ語に対応していないランタイムを想定すると、 `supportedLocalesOf` はインドネシア語とドイツ語の言語タグを変更せずに返しますが、 `pinyin` の照合は複数形の書式には関係なく、インドネシア語でも使用されません。ここでの "`lookup`" アルゴリズムの仕様に注意してください — バリ語話者のほとんどはインドネシア語も理解しているので、 "`best fit`" の照合はインドネシア語がバリ語に適切に一致すると判断し、バリ語の言語タグも返すかもしれません。


```js
const locales = ["ban", "id-u-co-pinyin", "de-ID"];
const options = { localeMatcher: "lookup" };
console.log(Intl.PluralRules.supportedLocalesOf(locales, options).join(", "));
// → "id-u-co-pinyin, de-ID"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.pluralrules.supportedlocalesof |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.PluralRules`
Intl.PluralRules.prototype.resolvedOptions()
============================================

**`Intl.PluralRules.prototype.resolvedOptions()`** メソッドは、この `Intl.PluralRules` オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトを返します。

試してみましょう
--------

構文
--


```js
resolvedOptions();
```

### 返値

この `Intl.PluralRules` オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトです。

解説
--

返されるオブジェクトには以下のプロパティがあります。

`locale`

実際に使用したロケールの BCP 47 言語タグ。このロケールにつながる入力 BCP 47 言語タグに Unicode 拡張値が要求された場合、要求されたキーと値の組のうち、このロケールで対応しているものが `locale` に含まれます。

`pluralCategories`

指定されたロケールで使用される複数形カテゴリーの `Array` で、 "zero", "one", "two", "few", "many", "other" のリストの中から選択します。

`type`

使用される種類です (`cardinal` または `ordinal`)。

以下の 2 つのプロパティのグループの中では、 1 つだけしか設定できません。

`minimumIntegerDigits`, `minimumFractionDigits`, `maximumFractionDigits`

これらのプロパティには、 `options` 引数で指定された値が入るか、既定値で埋められます。これらのプロパティは `minimumSignificantDigits` と `maximumSignificantDigits` のどちらも `options` 引数で指定されなかった場合のみ存在します。

`minimumSignificantDigits`, `maximumSignificantDigits`

これらのプロパティには、 `options` 引数で指定された値が入るか、既定値で埋められます。これらのプロパティは、少なくとも 1 つのプロパティが `options` 引数で提供された場合にのみ表示されます。

例
-

### resolvedOptions() メソッドの使用


```js
var de = new Intl.PluralRules("de-DE");
var usedOptions = de.resolvedOptions();

usedOptions.locale; // "de-DE"
usedOptions.maximumFractionDigits; // 3
usedOptions.minimumFractionDigits; // 0
usedOptions.minimumIntegerDigits; // 1
usedOptions.pluralCategories; // Array [ "one", "other" ]
usedOptions.type; // "cardinal"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.pluralrules.prototype.resolvedoptions |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.PluralRules`
Intl.PluralRules.select()
=========================

**`Intl.PluralRules.prototype.select()`** メソッドは、ロケールを考慮した書式設定に使用する複数形ルールを示す文字列を返します。

試してみましょう
--------

構文
--


```js
select(number);
```

### 引数

`number`

複数のルールを取得するための数値です。

### 返値

数字の複数形のカテゴリーを表す文字列で、 `zero`, `one`, `two`, `few`, `many`, `other` のいずれかになります。

解説
--

この関数は、 `Intl.PluralRules` オブジェクトのロケールや書式オプションに応じて、複数形のカテゴリーを選択します。

例
-

### select() の使用


```js
new Intl.PluralRules("ar-EG").select(0);
// → 'zero'

new Intl.PluralRules("ar-EG").select(1);
// → 'one'

new Intl.PluralRules("ar-EG").select(2);
// → 'two'

new Intl.PluralRules("ar-EG").select(6);
// → 'few'

new Intl.PluralRules("ar-EG").select(18);
// → 'many'
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.pluralrules.prototype.select |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.PluralRules`
Intl.PluralRules() コンストラクター
===========================

**`Intl.PluralRules()`** コンストラクターは `Intl.PluralRules` オブジェクトを作成します。

構文
--


```js
new Intl.PluralRules();
new Intl.PluralRules(locales);
new Intl.PluralRules(locales, options);
```

### 引数

`locales` 省略可

BCP 47 言語タグの文字列、またはそのような文字列の配列です。 `locales` 引数の一般的な形式と解釈ついては、 Intl のページを参照してください。

`options` 省略可

以下のプロパティの全部または一部を持つオブジェクトです。

`localeMatcher`

使用するロケールの照合アルゴリズムです。指定可能な値は "`lookup`" および "`best fit`" で、既定値は "`best fit`" です。このオプションの詳細は、 Intl のページを参照してください。

`type`

使用する種別です。指定可能な値は次の通りです。

* "`cardinal`" は基数です（物の数量を表します）。これが既定値です。
* "`ordinal`" は序数です（物事の順序や順位を表します。たとえば英語では "1st", "2nd", "3rd" です）。


 以下のプロパティは 2 つのグループに分けられます。
 `minimumIntegerDigits`, `minimumFractionDigits`, `maximumFractionDigits` が 1 つのグループで、
 `minimumSignificantDigits` と `maximumSignificantDigits` がもう一方です。第 2 のグループから 1 つでもプロパティが定義されると、第 1 のグループは無視されます。


`minimumIntegerDigits`

使用する整数部の最小桁数です。取りうる値は 1 から 21 までです。既定値は 1 です。

`minimumFractionDigits`

使用する小数部の最小桁数です。取りうる値は 0 から 20 までです。通常の数とパーセントの形式の既定値は 0 です。通貨形式の既定値は、 ISO 4217 通貨コードリストで提供される下位単位の桁数です（リストに情報がない場合は 2 です）。

`maximumFractionDigits`

使用する小数部の最大桁数です。取りうる値は 0 から 20 までです。通常の数の形式では既定値は `minimumFractionDigits` と 3 の大きい方です。通貨形式の既定値は、 `minimumFractionDigits` と ISO 4217 通貨コードリストで提供される下位単位の桁数（リストに情報がない場合は 2）の大きい方です。パーセント形式の既定値は、 `minimumFractionDigits` と 0 の大きい方です。

`minimumSignificantDigits`

使用する有効数字の最小桁数です。使用可能な値は 1 から 21 までです。既定値は 1 です。

`maximumSignificantDigits`

使用する有効数字の最大桁数です。使用可能な値は 1 から 21 までです。既定値は 21 です。


例
-

### 基本的な使い方

ロケールを指定しない基本的な使い方では、既定のロケールと既定のオプションで書式化された文字列が返されます。これは、例えば "dog" と "dogs" のように単数形と複数形を区別するのに便利です。


```js
var pr = new Intl.PluralRules();

pr.select(0);
// → 'other' （アメリカ英語のロケールの場合）

pr.select(1);
// → 'one' （アメリカ英語のロケールの場合）

pr.select(2);
// → 'other' （アメリカ英語のロケールの場合）
```

### options の使用

引数 `options` には `type` というプロパティがあり、`ordinal` に設定することで結果をカスタマイズすることができます。これは、例えば "1st", "2nd", "3rd", "4th", "42nd" などのように、序数を把握するのに便利です。


```js
var pr = new Intl.PluralRules("en-US", { type: "ordinal" });

const suffixes = new Map([
  ["one", "st"],
  ["two", "nd"],
  ["few", "rd"],
  ["other", "th"],
]);
const formatOrdinals = (n) => {
  const rule = pr.select(n);
  const suffix = suffixes.get(rule);
  return `${n}${suffix}`;
};

formatOrdinals(0); // '0th'
formatOrdinals(1); // '1st'
formatOrdinals(2); // '2nd'
formatOrdinals(3); // '3rd'
formatOrdinals(4); // '4th'
formatOrdinals(11); // '11th'
formatOrdinals(21); // '21st'
formatOrdinals(42); // '42nd'
formatOrdinals(103); // '103rd'
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl-pluralrules-constructor |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.PluralRules`
* `Intl`
Intl.Collator.supportedLocalesOf()
==================================

**`Intl.Collator.supportedLocalesOf()`** メソッドは、ランタイムの既定のロケールで代替しなくても照合で対応するロケールを含む配列を返します。

試してみましょう
--------

構文
--


```js
Intl.Collator.supportedLocalesOf(locales);
Intl.Collator.supportedLocalesOf(locales, options);
```

### 引数

`locales`

BCP 47 言語タグを持つ文字列、またはそのような文字列の配列です。 `locales` 引数の一般的な形式については、 Intl のページを参照してください。

`options` 省略可

省略可能です。以下のプロパティを持つことがあるオブジェクトです。

`localeMatcher`

使用するロケールの照合アルゴリズムです。指定可能な値は "`lookup`" および "`best fit`" で、既定値は "`best fit`" です。このオプションの詳細は、 Intl のページを参照してください。


### 返値

指定したロケールタグのサブセットを表す文字列の配列で、ランタイムの既定のロケールで代替する必要なく複数形の書式で対応されているものを含みます。

解説
--

`locales` で指定されている言語タグのサブセットを含む配列を返します。返される言語タグは、ランタイムがロケールの照合に対応しているもので、使用しているロケール照合アルゴリズムが、既定のロケールで代替することなく一致するとみなすものです。

例
-

### supportedLocalesOf() の使用

インドネシア語とドイツ語に対応しているもの、バリ語に対応していないランタイムを想定すると、ピンインの照合がインドネシア語では使用されておらず、インドネシアに特化したドイツ語に対応している可能性が低いとしても、 `supportedLocalesOf` はインドネシア語とドイツ語の言語タグを変更せずに返します。これは "`lookup`" アルゴリズムの仕様であることに注意してください。 "`best fit`" マッチャーは、ほとんどのバリ語話者がインドネシア語も理解しているので、インドネシア語がバリ語に適切であると判断し、バリ語の言語タグも返すかもしれません。


```js
const locales = ["ban", "id-u-co-pinyin", "de-ID"];
const options = { localeMatcher: "lookup" };
console.log(Intl.Collator.supportedLocalesOf(locales, options).join(", "));
// → "id-u-co-pinyin, de-ID"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.collator.supportedlocalesof |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.Collator`
Intl.Collator.prototype.resolvedOptions()
=========================================

**`Intl.Collator.prototype.resolvedOptions()`** メソッドは、この `Intl.Collator` オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトを返します。

試してみましょう
--------

構文
--


```js
resolvedOptions();
```

### 返値

この `Intl.Collator` オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトです。

解説
--

返されるオブジェクトには、以下のプロパティがあります。

`locale`

実際に使用したロケールの BCP 47 言語タグ。このロケールにつながる入力 BCP 47 言語タグに Unicode 拡張値が要求された場合、要求されたキーと値のペアのうち、このロケールで対応しているものが `locale` に含まれます。

`usage`, `sensitivity`, `ignorePunctuation`

`options` 引数の同名のプロパティで提供された値、または既定値が入ります。

`collation`

`locale` が対応している場合は、 Unicode 拡張キー "`co`" を使用して要求された値、そうでなければ "`default`" です。

`numeric`, `caseFirst`

`options` 引数の同名のプロパティ、または Unicode 拡張キーの "`kn`" および "`kf`" で要求された値、または既定値が入ります。実装がこれらのプロパティに対応していない場合は、省略されます。

例
-

### resolvedOptions メソッドの使用


```js
var de = new Intl.Collator("de", { sensitivity: "base" });
var usedOptions = de.resolvedOptions();

usedOptions.locale; // "de"
usedOptions.usage; // "sort"
usedOptions.sensitivity; // "base"
usedOptions.ignorePunctuation; // false
usedOptions.collation; // "default"
usedOptions.numeric; // false
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.collator.prototype.resolvedoptions |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.Collator`
Intl.Collator.prototype.compare()
=================================

**`Intl.Collator.prototype.compare()`** メソッドは、 2 つの文字列をこの `Intl.Collator` オブジェクトのソート順に従って比較します。

試してみましょう
--------

構文
--


```js
compare(string1, string2);
```

### 引数

`string1`, `string2`

互いに比較する文字列です。

解説
--

`compare` ゲッター関数は、 `string1` と `string2` をこの `Intl.Collator` オブジェクトのソート順に従って比較した結果を数値で返します。 `string1` が `string2` の前にくる場合は負の値、 `string1` が `string2` の後にくる場合は正の値、等しいとみなされる場合は 0 を返します。

例
-

### 配列の並べ替えにおける compare の使用

配列の並べ替えのために `compare` ゲッター関数を使用します。なお、この関数は、取得元の collator にバインドされているので、直接 `Array.prototype.sort()` に渡すことができます。


```js
var a = ["Offenbach", "Österreich", "Odenwald"];
var collator = new Intl.Collator("de-u-co-phonebk");
a.sort(collator.compare);
console.log(a.join(", "));
// → "Odenwald, Österreich, Offenbach"
```

### 配列の検索における compare の使用

配列内の文字列の検索のために `compare` ゲッター関数を使用します。


```js
var a = ["Congrès", "congres", "Assemblée", "poisson"];
var collator = new Intl.Collator("fr", {
  usage: "search",
  sensitivity: "base",
});
var s = "congres";
var matches = a.filter((v) => collator.compare(v, s) === 0);
console.log(matches.join(", "));
// → "Congrès, congres"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.collator.prototype.compare |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.Collator`
* `String.prototype.localeCompare()`
Intl.RelativeTimeFormat() コンストラクター
==================================

**`Intl.RelativeTimeFormat()`** コンストラクターは、 `Intl.RelativeTimeFormat` オブジェクトを生成します。

構文
--


```js
new Intl.RelativeTimeFormat([locales[, options]])
```

### 引数

`locales` 省略可

BCP 47 言語タグを持つ文字列か、そのような文字列の配列です。 `locales` 引数の一般的な形式と解釈については、 Intl のページを参照してください。

`options` 省略可

以下のプロパティのうち一部またはすべてを持つオブジェクトです。

`localeMatcher`

使用するロケールの一致アルゴリズムです。使用可能な値は "`lookup`" および "`best fit`" で、既定値は "`best fit`" です。このオプションの詳細は、 Intl のページを参照してください。

`numeric`

メッセージを出力する書式です。使用可能な値は次の通りです。

* "`always`" (既定値、例えば `1 日前`)
* "`auto`" (例えば `昨日`)。 "`auto`" にすると、出力に常に数値が入るとは限りません。

`style`

国際化されたメッセージの長さです。使用可能な値は次の通りです。

* "`long`" (既定値、例えば `in 1 month`)
* "`short`" (例えば `in 1 mo.`)
* "`narrow`" (例えば `in 1 mo.`) narrow スタイルは同じロケールでは short スタイルと同様になることがあります。


例
-

### 基本的な書式の使い方

以下の例は、英語を使用した相対時間のフォーマッターの生成方法を示しています。


```js
// Create a relative time formatter in your locale
// with default values explicitly passed in.
const rtf = new Intl.RelativeTimeFormat("en", {
  localeMatcher: "best fit", // other values: "lookup"
  numeric: "always", // other values: "auto"
  style: "long", // other values: "short" or "narrow"
});

// 負の値 (-1) を使った相対時間のフォーマット
rtf.format(-1, "day");
// > "1 day ago"

// 正の値 (1) を使った相対時間のフォーマット
rtf.format(1, "day");
// > "in 1 day"
```

### auto オプションの使用

`numeric:auto` オプションが渡された場合は、 `yesterday` や `tomorrow` の文字列が `1 day ago` や `in 1 day` の代わりに生成されます。これにより、出力に数値が含まれなくなることがあります。


```js
// Create a relative time formatter in your locale
// with numeric: "auto" option value passed in.
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// Format relative time using negative value (-1).
rtf.format(-1, "day");
// > "yesterday"

// Format relative time using positive day unit (1).
rtf.format(1, "day");
// > "tomorrow"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl-relativetimeformat-constructor |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.RelativeTimeFormat`
* `Intl`
* The Intl.RelativeTimeFormat API