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.hourCycleLocale.calendarLocale.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

関連情報