recursal/MDN huggingface dataset:
Intl.NumberFormat.prototype.format()
====================================

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

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

構文
--


```js
format(number);
```

### 引数

`number`

整形する `Number` または `BigInt` です。

解説
--

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

例
-

### `format` の使用

`format` ゲッター関数を使用して単一の通貨値を整形しましょう。こちらはロシアの例です。


```js
var options = { style: "currency", currency: "RUB" };
var numberFormat = new Intl.NumberFormat("ru-RU", options);
console.log(numberFormat.format(654321.987));
// → "654 321,99 руб."
```

### `format` と `map` の使用

`format` ゲッター関数を使用して、配列内のすべての数値を整形することができます。
 なお、この関数は供給元である `Intl.NumberFormat` に結び付けられているので、直接 `Array.prototype.map` に渡すことができます。これは、新しい機能に従わない習慣の一部として、歴史的な人工物と考えられていますが、既存のプログラムとの互換性のために保守されています。


```js
var a = [123456.789, 987654.321, 456789.123];
var numberFormat = new Intl.NumberFormat("es-ES");
var formatted = a.map((n) => numberFormat.format(n));
console.log(formatted.join("; "));
// → "123.456,789; 987.654,321; 456.789,123"
```

仕様書
---

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

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

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

関連情報
----

* `Intl.NumberFormat`
* `Number.prototype.toLocaleString()`
Intl.NumberFormat.prototype.formatToParts()
===========================================

**`Intl.Numberformat.prototype.formatToParts()`** メソッドは `NumberFormat` フォーマッターによって生成された文字列のロケールに応じた書式設定を可能にします。

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

構文
--
```

Intl.NumberFormat.prototype.formatToParts(number)
```

### 引数

`number` 省略可

書式化する `Number` または `BigInt`。

### 返値

書式化された数値を含む要素のオブジェクトの `Array`。

解説
--

`formatToParts()` メソッドは、数値文字列のカスタム書式設定を行うときに便利です。ロケール固有のトークンを含むオブジェクトの `Array` を返します。その `formatToParts()` メソッドが返す構造体は、次のようになります。


```js
[
  { type: "integer", value: "3" },
  { type: "group", value: "." },
  { type: "integer", value: "500" },
];
```


可能なタイプは以下のとおりです。

currency

通貨の文字列です。 "$" や "€" のような記号または "Dollar", "Euro" の文字列です。これらの文字列は `currencyDisplay` の特定方法に依存します。

decimal

小数点区切り文字 (".")。

fraction

小数点以下の数値。

group

グループ区切り文字 (",")。

infinity

`Infinity` 文字列 ("∞")。

integer

整数。

literal

書式設定された数字のリテラル文字列または空白。

minusSign

マイナス記号の文字列 ("-")。

nan

`NaN` の文字列 ("NaN")。

plusSign

プラス記号の文字列 ("+")。


percentSign

パーセント文字列 ("%")。

unit

単位の文字列、例えば "l" または "litres" で、 `unitDisplay` がどのように指定されているかに依存します。

例
-

### format と formatToParts の比較

`NumberFormat` はローカライズされた、直接操作できない文字列を出力します。


```js
var number = 3500;

var formatter = new Intl.NumberFormat("de-DE", {
  style: "currency",
  currency: "EUR",
});

formatter.format(number);
// "3.500,00 €"
```


しかし、多くのユーザーインターフェースでは、この文字列の書式形式をカスタマイズしたいと要望があります。 `formatToParts` メソッドは `NumberFormat` フォーマッターによって生成された文字列を要素ごとの文字列として提供することでロケールに応じた書式設定を可能にします。


```js
formatter.formatToParts(number);

// 返値:
[
  { type: "integer", value: "3" },
  { type: "group", value: "." },
  { type: "integer", value: "500" },
  { type: "decimal", value: "," },
  { type: "fraction", value: "00" },
  { type: "literal", value: " " },
  { type: "currency", value: "€" },
];
```


これで情報は個別に利用可能となり、カスタマイズされた方法でフォーマットして連結することができます。例えば `Array.prototype.map()`, アロー関数, switch 文, テンプレートリテラル, `Array.prototype.reduce()` を使います。


```js
var numberString = formatter
  .formatToParts(number)
  .map(({ type, value }) => {
    switch (type) {
      case "currency":
        return `<strong>${value}</strong>`;
      default:
        return value;
    }
  })
  .reduce((string, part) => string + part);
```


上記は`formatToParts()`メソッドを使い、通貨を太字にします。


```js
console.log(numberString);
// "3.500,00 <strong>€</strong>"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.prototype.formattoparts |

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

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

関連情報
----

* `Intl.NumberFormat`
* `Intl.NumberFormat.prototype.format`
* 日付の書式化: `Intl.DateTimeFormat.prototype.formatToParts()`
Intl.DisplayNames() コンストラクター
============================

**`Intl.DisplayNames()`** コンストラクターは、言語、地域、文字体系の表示名の一貫した翻訳を可能にする `Intl.DisplayNames` オブジェクトを生成します。

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

構文
--


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

### 引数

`locales` 省略可

BCP 47 言語タグの文字列、または、そのような文字列の配列です。 `locales` 引数の一般的な形式と解釈は、 Intl のページをご覧ください。次の Unicode 拡張キーが利用できます。

`nu`

 使用する数値書式です。
 "`arab`", "`arabext`", "`bali`",
 "`beng`", "`deva`", "`fullwide`",
 "`gujr`", "`guru`", "`hanidec`",
 "`khmr`", "`knda`", "`laoo`",
 "`latn`", "`limb`", "`mlym`",
 "`mong`", "`mymr`", "`orya`",
 "`tamldec`", "`telu`", "`thai`",
 "`tibt`" です。



`options` 省略可

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

`localeMatcher`

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


`style`

使用する書式化スタイルです。既定値は "`long`" です。

* "`narrow`"
* "`short`"
* "`long`"

`type`

使用する種類です。

* "`language`"
* "`region`"
* "`script`"
* "`currency`"

`fallback`

使用する代替法です。既定値は "`code`" です。

* "`code`"
* "`none`"


例
-

### 基本的な使用法

ロケールを指定しない基本的な使用法では、既定のロケールと既定のオプションで書式化された文字列が返されます。


```js
console.log(new Intl.DisplayNames([], { type: "language" }).of("US"));
// 期待される出力: 'us'
```

仕様書
---

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

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

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

関連情報
----

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

**`Intl.DisplayNames.supportedLocalesOf()`** メソッドは、指定されたロケールのうち、ランタイムの既定のロケールで代替せずに表示名に対応しているものの配列を返します。

構文
--


```js
Intl.DisplayNames.supportedLocalesOf(locales);
Intl.DisplayNames.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.DisplayNames.supportedLocalesOf(locales, options).join(", "));
// → "id-u-co-pinyin, de-ID"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.DisplayNames.supportedLocalesOf |

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

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

関連情報
----

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

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

構文
--


```js
resolvedOptions();
```

### 返値

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

解説
--

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

`locale`

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

`style`

コンストラクターの `options` 引数でこのプロパティに与えられた値、または既定値 ("`long`") です。値は "`long`"、"`short`"、"`narrow`" のいずれかです。

`type`

コンストラクターの `options` 引数でこのプロパティに与えられた値、または既定値 ("`language`") です。値は "`language`"、"`region`"、"`script`"、"`currency`" のいずれかです。

`fallback`

コンストラクターの `options` 引数でこのプロパティに与えられた値、または既定値 ("`code`") です。値は "`code`" または "`none`" のどちらかです。

例
-

### resolvedOptions の使用


```js
const displayNames = new Intl.DisplayNames(["de-DE"], { type: "region" });

const usedOptions = displayNames.resolvedOptions();
console.log(usedOptions.locale); // "de-DE"
console.log(usedOptions.style); // "long"
console.log(usedOptions.type); // "region"
console.log(usedOptions.fallback); // "code"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.DisplayNames.prototype.resolvedOptions |

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

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

関連情報
----

* `Intl.DisplayNames`
Intl.DisplayNames.prototype.of()
================================

**`Intl.DisplayNames.prototype.of()`** メソッドは、コードを受け取り、Intl.DisplayNames をインスタンス化するときに指定されたロケールとオプションに基づいて文字列を返します。

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

構文
--


```js
of(code);
```

### 引数

`code`

与える `code` は、 `type` によって変わります。

* type が "region" である場合、コードは ISO-3166 地域の 2 文字コードまたは three digits UN M49 Geographic Regions である必要があります。
* type が "script" である場合、コードは ISO-15924 文字体系の 4 文字コードである必要があります。
* type が "language" である場合、コードは *languageCode* ["-" *scriptCode*] ["-" *regionCode* ] \*("-" *variant* ) の形である必要があり、これは UTS 35's Unicode Language and Locale Identifiers grammar の unicode\_language\_id の構文です。 *languageCode* は 2 文字の ISO 639-1 言語コードまたは 3 文字の ISO 639-2 言語コードです。
* type が "currency" である場合、コードは 3 文字の ISO 4217 通貨コードである必要があります。

### 返値

その言語における書式化された文字列です。

例
-

### of メソッドの使用


```js
let regionNames = new Intl.DisplayNames(["en"], { type: "region" });
regionNames.of("419"); // "Latin America"

let languageNames = new Intl.DisplayNames(["en"], { type: "language" });
languageNames.of("fr"); // "French"

let currencyNames = new Intl.DisplayNames(["en"], { type: "currency" });
currencyNames.of("EUR"); // "Euro"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.DisplayNames.prototype.of |

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

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

関連情報
----

* `Intl.DisplayNames`
Intl.Locale.prototype.hourCycles
================================

**`Intl.Locale.prototype.hourCycles`** プロパティは、この `Locale` に固有の時制識別子のリストを返すアクセサープロパティです。

解説
--

世界中で使用されている時刻保持規則（時制）には、主に 12 時制と 24 時制の 2 つの種類があります。 `hourCycles` プロパティを使用すると、特定のロケールで利用できるすべての時制に簡単にアクセスできるようになります。他の追加ロケールデータと同様に、時制種別は拡張サブタグであり、ロケール文字列に含まれるデータを拡張したものです。時制種別には、以下の表にある通り、いくつかの異なる値を設定することができます。

### 有効な時制種別

| 時制種別 | 説明 |
| --- | --- |
| `h12` | 1–12 を使用する時制で、パターンの 'h' に対応します。 12 時制で、正子は午前 12:00 から始まります。 |
| `h23` | 0–23 を使用する時制で、パターンの 'H' に対応します。 24 時制で、正子は 0:00 から始まります。 |
| `h11` | 0–11 を使用する時制で、パターンの 'K' に対応します。 12 時制で、正子は午前 0:00 から始まります。 |
| `h24` | 1–24 を使用する時制で、パターンの 'k' に対応します。 24 時制で、正子は 24:00 から始まります。 |

例
-

### 対応しているカレンダーを取得

指定された `Locale` で対応している時制のリストを出力します。


```js
let arEG = new Intl.Locale("ar-EG");
console.log(arEG.hourCycles); // logs ["h12"]
```



```js
let jaJP = new Intl.Locale("ja-JP");
console.log(jaJP.hourCycles); // logs ["h23"]
```

仕様書
---

| Specification |
| --- |
| Intl Locale Info Proposal # sec-Intl.Locale.prototype.getHourCycles |

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

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

関連情報
----

* `Intl.Locale`
* Unicode 時制拡張キー仕様書
Intl.Locale.prototype.minimize()
================================

**`Intl.Locale.prototype.minimize()`** メソッドは、 `Locale.maximize()` を呼び出したことで追加されるロケールに関する情報を削除しようとします。

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

構文
--


```js
minimize();
```

### 返値

`Locale` インスタンスで、 `baseName` プロパティが、 Remove Likely Subtags アルゴリズムを *`locale.baseName`* に対して実行された結果になったものを返します。

解説
--

このメソッドは `maximize()` の逆の処理を行い、ロケールの言語識別子 (基本的には `baseName` の内容) から言語、文字体系、地域のサブタグをすべて削除します。これは、言語識別子の中に余分なサブタグがある場合に便利です。例えば "en-Latn" は "en" に簡略化できます。英語では "Latn" が書き言葉に使われる唯一の文字体系だからです。 `minimize()` が影響を与えるのは、言語識別子を構成する主要なサブタグである言語、文字体系、地域の各サブタグのみです。ロケール識別子の "-u" の後にあるその他のサブタグは拡張サブタグと呼ばれ、 `minimize()` メソッドの影響を受けません。これらのサブタグの例としては、`Locale.hourCycle`、`Locale.calendar`、`Locale.numeric` などがあります。

例
-

### minimize の使用


```js
let myLocale = new Intl.Locale("ja-Jpan-JP", {
  hourCycle: "h24",
  calendar: "gregory",
});
console.log(myLocale.baseName); // "ja-Jpan-JP" と表示
console.log(myLocale.toString()); // "ja-Jpan-JP-u-ca-gregory-hc-h24" と表示

let myLocMinimized = myLocale.minimize();

// "ja" のみを表示します。日本語は主に漢字かな交じり文 (Jpan) で
// 表記され、またほとんど日本で話されているためです。
console.log(myLocMinimized.baseName);

// "ja-u-ca-gregory-hc-h24" と表示します。
// なお、拡張タグ ("-u" 以降) はそのまま残ります。
console.log(myLocMinimized.toString());
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.Locale.prototype.minimize |

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

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

関連情報
----

* `Intl.Locale`
* `Intl.Locale.baseName`
Intl.Locale.prototype.maximize()
================================

**`Intl.Locale.prototype.maximize()`** メソッドは、既存の値に基づいてロケールの言語、文字体系、地域の最も可能性の近い値を取得します。

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

構文
--


```js
maximize();
```

### 返値

`Locale` インスタンスのうち、 `baseName` プロパティが Add Likely Subtags アルゴリズムを *`locale.baseName`*.に対して実行した結果になっているものを返します。

解説
--

不完全な言語識別子をもとに、最も可能性の高いロケール言語識別子サブタグを識別できると便利な場合があります。 Add Likely Subtags アルゴリズムはこの機能を提供してくれます。例えば、言語識別子 "en" が与えられた場合、アルゴリズムは "en-Latn-US" を返すことになります。英語はラテン文字でしか書けませんし、世界最大の英語圏の国であるアメリカで使われている可能性が高いからです。この機能は、 `maximize()` メソッドを介して JavaScript プログラマーに提供されています。 `maximize()` は、言語識別子を構成する主要なサブタグのうち言語サブ、文字体系、地域の各サブタグにのみ影響を与えます。ロケール識別子の "-u" の後にあるその他のサブタグは拡張サブタグと呼ばれ、 `maximize()` メソッドの影響を受けません。これらのサブタグの例としては、`Locale.hourCycle`、`Locale.calendar`、`Locale.numeric` などがあります。

例
-

### maximize の使用


```js
let myLocale = new Intl.Locale("ja", { hourCycle: "h24", calendar: "gregory" });
console.log(myLocale.baseName); // "ja" と表示
console.log(myLocale.toString()); // "ja-u-ca-gregory-hc-h24" と表示
let myLocMaximized = myLocale.maximize();

// "ja-Jpan-JP"。 "Jpan" と "JP" タグが追加されます。
// これは、日本語が主に漢字かな交じり文 (Jpan) で書かれ、また主に日本 (JP) で話されているためです。
console.log(myLocMaximized.baseName);

// "ja-Jpan-JP-u-ca-gregory-hc-h24" と表示します。
// なお、拡張タグ ("-u" 以降) はそのまま残ります。
console.log(myLocMaximized.toString());
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.Locale.prototype.maximize |

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

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

関連情報
----

* `Intl.Locale`
* `Intl.Locale.baseName`
* Unicode's Likely
Subtags spec
Intl.Locale.prototype.language
==============================

**`Intl.Locale.prototype.language`** プロパティは、ロケールに関連付けられた言語を返すアクセサープロパティです。

解説
--

言語はロケールの中核的な特徴の一つです。 Unicode 仕様書では、ロケールの言語識別子を言語と地域を合わせたものとして扱います（イギリス英語とアメリカ英語などの方言や変化形を区別するためです）。 `Locale` の `language` プロパティは、ロケールの言語サブタグを厳密に返します。

例
-

### ロケール識別子の文字列引数で言語を設定

有効な Unicode 言語識別子となるためには、文字列は言語サブタグで始めなければなりません。 `Locale` コンストラクターの主要な引数には、有効な Unicode ロケール識別子がなければならないので、コンストラクターを使用する際には必ず言語サブタグを持つ識別子を渡さなければなりません。


```js
let locale = new Intl.Locale("en-Latn-US");
console.log(locale.language); // "en" と表示
```

### 構成オブジェクトにより言語を上書き

言語サブタグは指定する必要がありますが、 `Locale` コンストラクターは構成オブジェクトを取り、これを用いて言語サブタグを上書きすることができます。


```js
let locale = new Intl.Locale("en-Latn-US", { language: "es" });
console.log(locale.language); // "es" と表示
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.Locale.prototype.language |

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

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

関連情報
----

* `Intl.Locale`
* Unicode 言語サブタグ仕様書
Intl.Locale.prototype.calendars
===============================

**`Intl.Locale.prototype.calendars`** プロパティは、 `Locale` のカレンダー識別子の配列を返すアクセサープロパティです。

解説
--

`calendar` プロパティは、 `Locale` で対応しているすべてのカレンダーを配列で返します。配列の項目は、 `Locale` オブジェクトの暦年代を表します。以下の表は、有効なすべての Unicode 暦キー文字列と、それらが表す暦の時代の説明を示しています。

### Unicode 暦キー

`buddhist`

タイの仏教暦

`chinese`

古来の中国の暦

`coptic`

コプト暦

`dangi`

古来の韓国の暦

`ethioaa`

Ethiopic calendar, Amete Alem (epoch approx. 5493 B.C.E)

`ethiopic`

Ethiopic calendar, Amete Mihret (epoch approx, 8 C.E.)

`gregory`

グレゴリオ暦

`hebrew`

古来のヘブライ暦

`indian`

インド暦

`islamic`

イスラム暦

`islamic-umalqura`

イスラム暦、ウンムアルクーラ

`islamic-tbla`

イスラム暦、表形式 (閏年 [2,5,7,10,13,16,18,21,24,26,29] - 天体暦)

`islamic-civil`

イスラム暦、表形式 (閏年 [2,5,7,10,13,16,18,21,24,26,29] - 市民暦)

`islamic-rgsa`

イスラム暦、サウジアラビア地方

`iso8601`

ISO カレンダー (ISO 8601 カレンダーの曜日規則を使用したグレゴリオ暦)

`japanese`

日本の皇紀

`persian`

ペルシャ暦

`roc`

中華民国暦 (中華民国)

`islamicc`

シビル（アルゴリズム）アラビア暦

**警告:** `islamicc` 暦は非推奨です。 `islamic-civil` を使用してください。

例
-

### 対応しているカレンダーを取得

この `Locale` が対応しているカレンダーをリスト出力します。


```js
let arEG = new Intl.Locale("ar-EG");
console.log(arEG.calendars); // logs ["gregory", "coptic", "islamic", "islamic-civil", "islamic-tbla"]
```



```js
let jaJP = new Intl.Locale("ja-JP");
console.log(jaJP.calendars); // logs ["gregory", "japanese"]
```

仕様書
---

| Specification |
| --- |
| Intl Locale Info Proposal # sec-Intl.Locale.prototype.getCalendars |

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

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

関連情報
----

* `Intl.Locale`
* Unicode カレンダー識別子
Intl.Locale.prototype.textInfo
==============================

**`Intl.Locale.prototype.textInfo`** プロパティは、関連する `Locale` に対して `ltr` （左書き）または `rtl` （右書き）で示される文字の並び順を返すアクセサープロパティです。

解説
--

UTS 35's Layouts Elements で定義されているロケールのデータに結び付けた `Locale` 情報を返します。

例
-

### テキスト情報の取得

指定された `Locale` で対応している書字方向を返します。


```js
let ar = new Intl.Locale("ar");
console.log(ar.textInfo); // logs { direction: "rtl" }
console.log(ar.textInfo.direction); // logs "rtl"
```



```js
let es = new Intl.Locale("es");
console.log(es.textInfo); // logs { direction: "ltr" }
console.log(es.textInfo.direction); // logs "ltr"
```

仕様書
---

| Specification |
| --- |
| Intl Locale Info Proposal # sec-Intl.Locale.prototype.getTextInfo |

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

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

関連情報
----

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

**`Intl.Locale`** コンストラクターは、 Intl オブジェクトの標準組み込みプロパティで、 Unicode ロケール識別子を表します。

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

構文
--


```js
new Intl.Locale(tag);
new Intl.Locale(tag, options);
```

### 引数

`tag`

Unicode ロケール識別子の文字列です。

`options`

ロケールの構成を含むオブジェクトです。キーは Unicode ロケールタグで、値は有効な Unicode タグ値です。

例
-

### 基本的な使用

もっとも単純なものでは、`Intl.Locale` コンストラクターはロケール識別子の文字列を引数に取ります。


```js
let us = new Intl.Locale("en-US");
```

### Locale コンストラクターに options オブジェクトを渡して使用

コンストラクターには、オプションで構成オブジェクトの引数を取ることができ、そこに複数の拡張型を指定することができます。たとえば、設定オブジェクトの `hourCycle` プロパティに任意の時間周期を設定し、それをコンストラクターに渡します。


```js
let locale = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(locale.hourCycle); // Prints "h12"
```

仕様書
---

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

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

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

関連情報
----

* `Intl.Collator`
* Unicode ロケール識別子の仕様書
* FormatJS における `Intl.Locale` のポリフィル
Intl.Locale.prototype.timeZones
===============================

**`Intl.Locale.prototype.timeZones`** プロパティはアクセサープロパティで、選択した `Locale` で対応しているタイムゾーンの配列を返します。

解説
--

関連付けられた `Locale` で対応しているタイムゾーンを配列で返します。返されるタイムゾーンは IANA タイムゾーン を表します。

**メモ:** Unicode 言語識別子が Unicode 地域サブタグシーケンスの `-` を含んでいない場合、返される値は `undefined` です。

例
-

### 対応しているタイムゾーンの取得

指定された `Locale` で対応しているタイムゾーンをリストアップします。


```js
let arEG = new Intl.Locale("ar-EG");
console.log(arEG.timeZones); // logs ["Africa/Cairo"]
```



```js
let jaJP = new Intl.Locale("ja-JP");
console.log(jaJP.timeZones); // logs ["Asia/Tokyo"]
```



```js
let ar = new Intl.Locale("ar");
console.log(ar.timeZones); // logs undefined
```

仕様書
---

| Specification |
| --- |
| Intl Locale Info Proposal # sec-Intl.Locale.prototype.getTimeZones |

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

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

関連情報
----

* `Intl.Locale`
* IANA タイムゾーンデータベース
Intl.Locale.prototype.hourCycle
===============================

**`Intl.Locale.prototype.hourCycle`** プロパティは、ロケールで使用される時刻保持書式の規則を返すアクセサープロパティです。

解説
--

世界中で使用されている時刻保持規則（時制）には、主に 12 時制と 24 時制の 2 つの種類があります。 `hourCycle` プロパティを使用すると、 JavaScript のプログラマーが特定のロケールで使用されている時制に簡単にアクセスできるようになります。他の追加ロケールデータと同様に、時制種別は拡張サブタグであり、ロケール文字列に含まれるデータを拡張したものです。時制種別には、以下の表にある通り、いくつかの異なる値を設定することができます。

### 有効な時制種別

| 時制種別 | 説明 |
| --- | --- |
| `h12` | 1–12 を使用する時制で、パターンの 'h' に対応します。 12 時制で、正子は午前 12:00 から始まります。 |
| `h23` | 0–23 を使用する時制で、パターンの 'H' に対応します。 24 時制で、正子は 0:00 から始まります。 |
| `h11` | 0–11 を使用する時制で、パターンの 'K' に対応します。 12 時制で、正子は午前 0:00 から始まります。 |
| `h24` | 1–24 を使用する時制で、パターンの 'k' に対応します。 24 時制で、正子は 24:00 から始まります。 |

例
-

これらの例は、時制データを `Locale` オブジェクトに追加する方法を示しています。

### ロケール文字列による時制の追加

Unicode ロケール文字列仕様書では、時制はロケール文字列の「拡張サブタグ」です。これらのサブタグはロケールについての追加データであり、拡張キー `-u` を使用してロケール識別子に追加されます。このようして、時制の種類を `Locale` コンストラクターに渡される初期のロケール識別子文字列に追加することができます。時制種別の値を設定するには、まず文字列に `-u` 拡張キーを追加します。次に、 `-hc` 拡張キーを追加して、時制種別の値を追加していることを示します。最後に、時制種別の値を文字列に追加します。


```js
let locale = new Intl.Locale("fr-FR-u-hc-h23");
console.log(locale.hourCycle); // "h23" と表示
```

### 構成オブジェクト引数から時制を追加

`Intl.Locale` コンストラクターには、オプションで構成オブジェクトの引数があり、これには時制種別を含む任意の拡張の種類をいくつか含めることができます。構成オブジェクトの `hourCycle` プロパティを任意の時制種別に設定し、コンストラクターに渡します。


```js
let locale = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(locale.hourCycle); // "h12" と表示
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.Locale.prototype.hourCycle |

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

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

関連情報
----

* `Intl.Locale`
* Unicode 時制拡張キー仕様書
Intl.Locale.prototype.weekInfo
==============================

**`Intl.Locale.prototype.weekInfo`** プロパティはアクセサープロパティで、関連する `Locale` の `firstDay`, `weekend`, `minimalDays` プロパティを持つ `weekInfo` オブジェクトを返します。

解説
--

UTS 35's Week Elements で指定されたロケールデータに関連する `Locale` 情報を返します。

例
-

### 週情報の取得

指定された `Locale` の週情報を返します。


```js
let he = new Intl.Locale("he");
console.log(he.weekInfo); // logs {firstDay: 7, weekend: [5, 6], minimalDays: 1}

let af = new Intl.Locale("af");
console.log(af.weekInfo); // logs {firstDay: 7, weekend: [6, 7], minimalDays: 1}

let enGB = new Intl.Locale("en-GB");
console.log(enGB.weekInfo); // logs {firstDay: 1, weekend: [6, 7], minimalDays: 4}

let msBN = new Intl.Locale("ms-BN");
console.log(msBN.weekInfo); // logs {firstDay: 7, weekend: [5, 7], minimalDays: 1} // ブルネイでは週末は金曜日と日曜日ですが、土曜日ではありません
```

仕様書
---

| Specification |
| --- |
| Intl Locale Info Proposal # sec-Intl.Locale.prototype.getWeekInfo |

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

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

関連情報
----

* `Intl.Locale`