Intl.Locale.prototype.collation

Intl.Locale.prototype.collation プロパティは、 Locale照合種別を返すアクセサープロパティです。

解説

照合順序とは、文字列を順番に並べる処理のことです。検索クエリーの結果やデータベース内のレコードの順序など、文字列を一定の順序に並べ替える必要がある場合に使用されます。文字列を順番に並べるという考えは些細なことと思えるかもしれませんが、順番の考え方は地域や言語によって異なる場合があります。 collation プロパティは、 JavaScript プログラマーが特定のロケールで使用される照合順序の種類に簡単にアクセスできるようにするためのものです。

利用可能な照合種別は下記の表にあります。 Unicode 照合仕様書から引用したものです。

有効な照合種別

照合種別 説明
big5han ラテン文字はピンイン順、漢字は big5 文字セット順(中国語向け)

注: `big5han` 照合種別は Chrome や Edge では使用できません。

compat 前の版の順序で、互換性のため(アラビア語向け)
dict 辞書形式の順序(シンハラ語向け)

警告: direct 照合種別は非推奨です。使用しないでください。

direct

バイナリコードポイント順
ducet 既定の Unicode 照合順で、要素表順

警告: `ducet` 照合種別はウェブでは利用できません。代わりに `und` ロケールを照合種別指定子なしで使用してください。 `und` は DUCET に最も近い照合種別です。

emoji 絵文字に推奨される順序(`und` ロケール向け)
eor ヨーロッパ語の順序の規則(`und` ロケール向け)
gb2312 ラテン文字はピンイン順、漢字は gb2312han 文字セット順(中国語向け)

注: gb2313 照合種別は Chrome や Edge では使用できません。

phonebk 電話帳形式の順序(ドイツ語向け)
phonetic 発音順(発音に基づく順序、リンガラ語向け)
pinyin ラテン文字と漢字はピンイン順(中国語向け)
reformed リフォーム順(スウェーデン語向け)

注: これは、 2022 年 5 月現在、スウェーデン語の既定の順序ですが、照合順序の名前が異常です。これは既定値なので、 `sv-u-co-reformed` をリクエストするのではなく、 `sv` をリクエストしてください。

search 文字列検索のための特殊な照合種別

警告: 使用しないでください。 Intl.Collator ではこの照合種別は `usage` オプションで `search` の値を設定すると有効になります。 さらに、この照合を検索で使用する API は今のところありません。

searchjl 韓国語の頭文字子音検索用の特殊な照合種別
standard 各言語の既定の照合順。ただし、中国語と、 2022 年 5 月時点ではスウェーデン語を除きます。

警告: 明示的に使用しないでください。一般に、明示的に指定する必要はありません。また、スウェーデン語に対してこれを指定すると、将来、スウェーデン語の照合順序の命名が他の言語と整合するように変更された場合に問題があります。

stroke ラテン文字はピンイン順、漢字は画数順(中国語向け)
trad 歴史的なスタイルの順序(スペイン語など)
unihan 漢字の部首の画数順(中国語、日本語、韓国語向け)。 中国語の場合はラテン文字はピンイン順。

注: unihan 照合種別は Chrome や Edge では使用できません。

zhuyin

ラテン語はピンイン順、ボポモフォと漢字は竹簡順(中国語向け)

他のロケールのサブタグと同様、照合種別はロケール文字列やコンストラクターの構成オブジェクトの引数で Intl.Locale オブジェクトに追加することができます。

ロケール文字列による照合種別の追加

Unicode ロケール文字列仕様書では、照合種別はロケールキーの「拡張子サブタグ」となります。これらのサブタグは、ロケールに関するデータを追加するもので、 -u 拡張を使用してロケール識別子に追加されます。つまり、照合種別は、ロケールのコンストラクターに渡される初期のロケール識別子文字列に追加することができます。照合種別を追加するには、まず文字列に -u 拡張を追加します。次に、照合順序の型を追加することを示すために -co 拡張を追加します。最後に、照合順序を文字列に追加します。

js
let locale = new Intl.Locale("zh-Hant-u-co-zhuyin");
console.log(locale.collation); // "zhuyin" と表示

構成オブジェクト引数による照合種別の追加

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

js
let locale = new Intl.Locale("zh-Hant", { collation: "zhuyin" });
console.log(locale.collation); // "zhuyin" と表示

仕様書

Specification
ECMAScript Internationalization API Specification
# sec-Intl.Locale.prototype.collation

ブラウザーの互換性

BCD tables only load in the browser

関連情報