Intl.PluralRules() コンストラクター

Intl.PluralRules() コンストラクターは Intl.PluralRules オブジェクトを作成します。

構文

js
new Intl.PluralRules();
new Intl.PluralRules(locales);
new Intl.PluralRules(locales, options);

引数

locales 省略可

BCP 47 言語タグの文字列、またはそのような文字列の配列です。 locales 引数の一般的な形式と解釈ついては、 Intl のページを参照してください。

options 省略可

以下のプロパティの全部または一部を持つオブジェクトです。

localeMatcher

使用するロケールの照合アルゴリズムです。指定可能な値は "lookup" および "best fit" で、既定値は "best fit" です。このオプションの詳細は、 Intl のページを参照してください。

type

使用する種別です。指定可能な値は次の通りです。

  • "cardinal" は基数です(物の数量を表します)。これが既定値です。
  • "ordinal" は序数です(物事の順序や順位を表します。たとえば英語では "1st", "2nd", "3rd" です)。

以下のプロパティは 2 つのグループに分けられます。 minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits が 1 つのグループで、 minimumSignificantDigitsmaximumSignificantDigits がもう一方です。第 2 のグループから 1 つでもプロパティが定義されると、第 1 のグループは無視されます。

minimumIntegerDigits

使用する整数部の最小桁数です。取りうる値は 1 から 21 までです。既定値は 1 です。

minimumFractionDigits

使用する小数部の最小桁数です。取りうる値は 0 から 20 までです。通常の数とパーセントの形式の既定値は 0 です。通貨形式の既定値は、 ISO 4217 通貨コードリストで提供される下位単位の桁数です(リストに情報がない場合は 2 です)。

maximumFractionDigits

使用する小数部の最大桁数です。取りうる値は 0 から 20 までです。通常の数の形式では既定値は minimumFractionDigits と 3 の大きい方です。通貨形式の既定値は、 minimumFractionDigitsISO 4217 通貨コードリストで提供される下位単位の桁数(リストに情報がない場合は 2)の大きい方です。パーセント形式の既定値は、 minimumFractionDigits と 0 の大きい方です。

minimumSignificantDigits

使用する有効数字の最小桁数です。使用可能な値は 1 から 21 までです。既定値は 1 です。

maximumSignificantDigits

使用する有効数字の最大桁数です。使用可能な値は 1 から 21 までです。既定値は 21 です。

基本的な使い方

ロケールを指定しない基本的な使い方では、既定のロケールと既定のオプションで書式化された文字列が返されます。これは、例えば "dog" と "dogs" のように単数形と複数形を区別するのに便利です。

js
var 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" などのように、序数を把握するのに便利です。

js
var 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'

仕様書

Specification
ECMAScript Internationalization API Specification
# sec-intl-pluralrules-constructor

ブラウザーの互換性

BCD tables only load in the browser

関連情報