Intl.PluralRules() コンストラクター
Baseline
広く利用可能
*
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2019年9月以降、すべてのブラウザーで利用可能です。
* この機能の一部は、対応レベルが異なる場合があります。
Intl.PluralRules() コンストラクターは Intl.PluralRules オブジェクトを生成します。
構文
new Intl.PluralRules()
new Intl.PluralRules(locales)
new Intl.PluralRules(locales, options)
引数
locales省略可-
BCP 47 言語タグまたは
Intl.Localeインスタンスを持つ文字列、あるいはそのようなロケール識別子の配列。undefinedが渡された場合、または指定されたロケール識別子のいずれも対応していない場合は、ランタイムのデフォルトのロケールが使用されます。locales引数の一般的な形と解釈については、Intlメインページの引数の説明を参照してください。 options省略可-
以下のプロパティ(取得順、すべてオプション)が含まれているオブジェクトです。
localeMatcher
-
使用するロケール照合アルゴリズムです。使用可能な値は
"lookup"および"best fit"です。既定値は"best fit"です。このオプションについての情報は、ロケールの識別とネゴシエーションを参照してください。type-
使用する種別です。指定可能な値は次の通りです。
"cardinal"(デフォルト)-
数値です(物の数量を表します)。
"ordinal"-
序数です(物事の順序や順位を表します。たとえば英語では "1st", "2nd", "3rd" です)。
Intl.PluralRulesはIntl.NumberFormat()の桁オプションにも対応しています(詳しくはIntl.NumberFormat()を参照してください)。minimumIntegerDigitsminimumFractionDigitsmaximumFractionDigitsminimumSignificantDigitsmaximumSignificantDigitsroundingPriorityroundingIncrementroundingMode
これらのオプションは、
Intl.NumberFormatのnotationオプションが"standard"、styleが"decimal"であるかのように解釈されます。
例外
RangeError-
localesまたはoptionsに無効な値が含まれている場合に発生します。
例
>基本的な使い方
ロケールを指定しない基本的な使い方では、既定のロケールと既定のオプションで書式化された文字列が返されます。これは、例えば "dog" と "dogs" のように単数形と複数形を区別するのに便利です。
const pr = new Intl.PluralRules();
pr.select(0); // 'other' (アメリカ英語のロケールの場合)
pr.select(1); // 'one' (アメリカ英語のロケールの場合)
pr.select(2); // 'other' (アメリカ英語のロケールの場合)
options の使用
引数 options には type というプロパティがあり、ordinal に設定することで結果をカスタマイズすることができます。これは、例えば "1st", "2nd", "3rd", "4th", "42nd" などのように、序数を把握するのに便利です。
const pr = new Intl.PluralRules("en-US", { type: "ordinal" });
const suffixes = new Map([
["one", "st"],
["two", "nd"],
["few", "rd"],
["other", "th"],
]);
const formatOrdinals = (n) => {
const rule = pr.select(n);
const suffix = suffixes.get(rule);
return `${n}${suffix}`;
};
formatOrdinals(0); // '0th'
formatOrdinals(1); // '1st'
formatOrdinals(2); // '2nd'
formatOrdinals(3); // '3rd'
formatOrdinals(4); // '4th'
formatOrdinals(11); // '11th'
formatOrdinals(21); // '21st'
formatOrdinals(42); // '42nd'
formatOrdinals(103); // '103rd'
仕様書
| 仕様書 |
|---|
| ECMAScript® 2027 Internationalization API Specification> # sec-intl-pluralrules-constructor> |