Intl.Locale
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年9月.
* Some parts of this feature may have varying levels of support.
Intl.Locale オブジェクトは、 Unicode ロケール識別子を表す Intl オブジェクトの標準組み込みプロパティです。
試してみましょう
const korean = new Intl.Locale("ko", {
script: "Kore",
region: "KR",
hourCycle: "h23",
calendar: "gregory",
});
const japanese = new Intl.Locale("ja-Jpan-JP-u-ca-japanese-hc-h12");
console.log(korean.baseName, japanese.baseName);
// Expected output: "ko-Kore-KR" "ja-Jpan-JP"
console.log(korean.hourCycle, japanese.hourCycle);
// Expected output: "h23" "h12"
解説
Intl.Locale オブジェクトは、 Unicode ロケールをより簡単に操作できるようにするために作成されました。 Unicode は、ロケールを「ロケール識別子」と呼ばれる文字列で表します。ロケール識別子は、「言語識別子」と「拡張タグ」から構成されます。言語識別子はロケールの中核となるもので、言語、文字体系、地域、バリアントのサブタグから構成されます。ロケールに関する追加情報は、オプションの拡張タグに格納されます。「拡張タグ」には、暦の種類や時制の種類、記数法の種類などのロケールに関する情報が格納されています。
従来、 Intl API は Unicode と同様に文字列を使用してロケールを表していました。これはシンプルで軽量な解決策であり、うまく機能します。しかし、 Locale クラスを追加することで、言語、文字体系、地域、拡張タグの解析や操作が容易になります。以下の Intl.Locale のプロパティは、 Unicode ロケール識別子のサブタグに対応しています。
| プロパティ | 対応するサブタグ |
|---|---|
language |
言語 ID の最初の部分 |
script |
言語 ID の language の後の部分 |
region |
言語 ID の script の後の部分 |
variants |
言語 ID の region の後の部分 |
calendar |
ca (拡張) |
caseFirst |
kf (拡張) |
collation |
co (拡張) |
hourCycle |
hc (拡張) |
numberingSystem |
nu (拡張) |
numeric |
kn (拡張) |
上記の情報は、外部データベースを参照することなく、Locale オブジェクトが構築されたときにそのまま提供されます。Intl.Locale オブジェクトは、利用可能な暦、照合順序、記数法など、ロケールの実際の情報に関する情報を返すメソッドも追加で提供しています。
コンストラクター
Intl.Locale()-
新しい
Localeオブジェクトを生成します。
インスタンスプロパティ
Intl.Locale.prototype.baseName-
この
Localeに関する基本的な情報を、完全なデータ文字列の部分文字列の形で返します。 Intl.Locale.prototype.calendar-
このロケールの暦年を示す
Localeの部分を返します。 Intl.Locale.prototype.calendars-
ロケールの規則に従い、利用可能なカレンダー識別子の
Arrayを返します。 Intl.Locale.prototype.caseFirst-
ロケールの照合規則に大文字・小文字を考慮しているかどうかを返します。
Intl.Locale.prototype.collation-
この
Localeの照合の種類を返します。これは、ロケールの規則に従って文字列を並べ替えるために使用します。 Intl.Locale.prototype.hourCycle-
このロケールが使用している時刻保持書式の規則を返します。
Intl.Locale.prototype.hourCycles-
Arrayで 12 時制 ("h11", "h12") または 24 時制 ("h23", "h24") を示す時周期識別子を返します。 Intl.Locale.prototype.language-
このロケールに関連づけられた言語を返します。
Intl.Locale.prototype.numberingSystem-
このロケールが使用している数値表記法を返します。
Intl.Locale.prototype.numberingSystems-
ロケールの規則に従って利用できる数値表記法の識別子の
Arrayを返します。 Intl.Locale.prototype.numeric-
このロケールが数字に対して特殊な照合順序を持っているかどうかを返します。
Intl.Locale.prototype.region-
このロケールに関連付けられた世界の地域 (通常は国) を返します。
Intl.Locale.prototype.script-
このロケールで使われている特定の言語を書く際に使用する文字体系を返します。
Intl.Locale.prototype.variants-
ロケールに関連付けられたバリアントサブタグ(異なる表記法など)を返します。
Intl.Locale.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]プロパティの初期値は、文字列"Intl.Locale"です。このプロパティは、Object.prototype.toString()で使用されます。
インスタンスメソッド
Intl.Locale.prototype.getCalendars()-
このロケールのルールにより、利用可能な暦の配列 (
Array) を返します。 Intl.Locale.prototype.getCollations()-
この
Localeの照合型の配列 (Array) を返します。 Intl.Locale.prototype.getHourCycles()-
時間周期の配列 (
Array) を返します。 12 時制 ("h12")、日本の 12 時制 ("h11")、24 時制 ("h23")、未使用の書式 "h24" のいずれかです。 Intl.Locale.prototype.getNumberingSystems()-
このロケールのルールに基づいて利用可能な記数法識別子の配列 (
Array) を返します。 Intl.Locale.prototype.getTextInfo()-
ltr(左書き)またはrtl(右書き)で、文字の並び順を示す部分を返します。 Intl.Locale.prototype.getTimeZones()-
この
Localeに関連付けられたタイムゾーン識別子の配列 (Array) を返します。 Intl.Locale.prototype.getWeekInfo()-
ロケールのルールに従い、 UTS 35 の週要素を返します。
Intl.Locale.prototype.maximize()-
既存の値に基づいて、ロケールの言語、文字体系、地域の最も可能性の高い値を取得します。
Intl.Locale.prototype.minimize()-
Locale.maximize()を呼び出すことで追加されるロケールに関する情報を削除しようとします。 Intl.Locale.prototype.toString()-
このロケールの完全なロケール識別子文字列を返します。
例
>基本的な使用
Intl.Locale のコンストラクターは、もっとも簡単なものでは、ロケール識別子の文字列を引数に取ります。
let us = new Intl.Locale("en-US");
Locale コンストラクターの options オブジェクト付きでの使用
このコンストラクターは、オプションで構成オブジェクトの引数を取ることができます。たとえば、構成オブジェクトの hourCycle プロパティに任意の時間サイクル種別を設定し、それをコンストラクターに渡します。
let us12hour = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(us12hour.hourCycle); // Prints "h12"
仕様書
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # locale-objects> |