Intl.Locale.prototype.maximize()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

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

試してみましょう

const english = new Intl.Locale("en");
const korean = new Intl.Locale("ko");
const arabic = new Intl.Locale("ar");

console.log(english.maximize().baseName);
// Expected output: "en-Latn-US"

console.log(korean.maximize().baseName);
// Expected output: "ko-Kore-KR"

console.log(arabic.maximize().baseName);
// Expected output: "ar-Arab-EG"

構文

js
maximize();

返値

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

解説

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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
maximize

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報