Intl.PluralRules オブジェクトは、複数形が影響する書式や言語ルールを可能にするオブジェクトのコンストラクターです。
構文
new Intl.PluralRules([locales[, options]])
引数
locales- 任意です。 BCP 47 言語タグと一緒の文字列、もしくは文字列の配列です。
locales引数の一般的な形や解釈のされ方については Intl page を参照してください。 options-
任意です。引数は以下のプロパティを 1 つ以上持ったオブジェクトです。
localeMatcher- 言語を選択するアルゴリズムを指定します。許可される値は "
lookup" および "best fit" のどちらかです。既定値は "best fit" です。このオプションに関する詳細は Intl page を参照してください。 type- 使用する型。以下のいずれかです。
- "
cardinal" 基本的な数字 (ものの数量を参照する)。これは既定値です。 - "
ordinal" 序数 (ものの順序や順位を参照する。英語の例では "1st", "2nd", "3rd")。
- "
以下のプロパティは
minimumIntegerDigits,minimumFractionDigits,maximumFractionDigitsのグループとminimumSignificantDigitsおよびmaximumSignificantDigitsのグループとに分類できます。後者のグループの一つ以上が設定された場合、前者のグループは無視されます。minimumIntegerDigits- 使用する整数の桁数の最小値です。設定可能な値は 1 から 21 の範囲です。既定値は 1 です。
minimumFractionDigits- 使用する小数点以下の桁数の最小値です。設定可能な値は 0 から 20 の範囲です。既定値はただの数値やパーセント形式の場合は 0 です。通貨形式の既定値は、 ISO 4217 currency code list で定義されている小数点以下の桁数です (そのような情報がなければ 2 です)。
maximumFractionDigits- 使用する小数点以下の桁数の最大値です。設定可能な値は 0 から 20 の範囲です。ただの数値形式の場合の既定値は
minimumFractionDigitsと 3 の大きい方です。通貨形式の場合の既定値は、minimumFractionDigitsと ISO 4217 currency code list で定義されている小数点以下の桁数 (そのような情報がなければ 2) の大きい方です。パーセント形式の場合は既定値はminimumFractionDigitsと 0 の大きい方です。 minimumSignificantDigits- 使用する最小有効桁数です。設定可能な値は 1 から 21 の範囲です。既定値は 1 です。
maximumSignificantDigits- 使用する最大有効桁数です。設定可能な値は 1 から 21 の範囲です。既定値は 21 です。
解説
プロパティ
Intl.PluralRules.prototype- すべてのオブジェクトにプロパティ追加を許可する
メソッド
Intl.PluralRules.supportedLocalesOf()- ランタイムの既定のロケールにフォールバックすることなく、対応しているロケールを含む配列を返す。
PluralRules インスタンス
プロパティ
PluralRules インスタンスはプロトタイプから下記のプロパティを継承します。
Intl.PluralRules.prototype.constructor- A reference to
Intl.PluralRules.
メソッド
PluralRules インスタンスはプロトタイプから下記のメソッドを継承します。
Intl.PluralRules.prototype.resolvedOptions()- Returns a new object with properties reflecting the locale and collation options computed during initialization of the object.
Intl.PluralRules.prototype.select()- Returns a
Stringindicating which plural rule to use for locale-aware formatting.
例
基本的な使用
ロケールを指定しない基本的な使用では、デフォルトロケールのデフォルトオプションでのフォーマット文字列が返されます。これは単数形と複数形を判定するのに便利です。例えば "dog" と "dogs"。
var pr = new Intl.PluralRules(); pr.select(0); // → 'other' if in US English locale pr.select(1); // → 'one' if in US English locale pr.select(2); // → 'other' if in US English locale
locales の使用
この例ではローカライズされた複数形ルールのいくつかをお見せします。アプリケーションのUIで使う言語のフォーマットを取得するには、 locales 引数に言語(とフォールバック言語の場合もある)を指定します。
// Arabic has different plural rules
new Intl.PluralRules('ar-EG').select(0);
// → 'zero'
new Intl.PluralRules('ar-EG').select(1);
// → 'one'
new Intl.PluralRules('ar-EG').select(2);
// → 'two'
new Intl.PluralRules('ar-EG').select(6);
// → 'few'
new Intl.PluralRules('ar-EG').select(18);
// → 'many'
options の使用
options 引数を使って結果をカスタマイズできます。この引数は ordinal を設定する type という 1 つの引数があります。これは序数の指定を理解するのに便利です。例えば "1st", "2nd", "3rd", "4th", "42nd" など。
var pr = new Intl.PluralRules('en-US', { type: 'ordinal' });
pr.select(0);
// → 'other'
pr.select(1);
// → 'one'
pr.select(2);
// → 'two'
pr.select(3);
// → 'few'
pr.select(4);
// → 'other'
pr.select(42);
// → 'two'
仕様書
| 仕様書 | 状態 | 備考 |
|---|---|---|
| Intl.PluralRules Constructor | ドラフト | 初回定義 |
ブラウザーの互換性
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PluralRules | Chrome 完全対応 63 | Edge 完全対応 18 | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 完全対応 8.0 | nodejs 完全対応 10.0.0 |
PluralRules() constructor | Chrome 完全対応 63 | Edge 完全対応 18 | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 完全対応 8.0 | nodejs 完全対応 10.0.0 |
prototype | Chrome 完全対応 63 | Edge 完全対応 18 | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 完全対応 8.0 | nodejs 完全対応 10.0.0 |
resolvedOptions | Chrome 完全対応 63 | Edge 完全対応 18 | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 完全対応 8.0 | nodejs 完全対応 10.0.0 |
select | Chrome 完全対応 63 | Edge 完全対応 18 | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 完全対応 8.0 | nodejs 完全対応 10.0.0 |
supportedLocalesOf | Chrome 完全対応 63 | Edge 完全対応 18 | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 完全対応 8.0 | nodejs 完全対応 10.0.0 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応