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")。
説明
プロパティ
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 Plural Rules Draft | ドラフト | 初回定義 |
ブラウザーの対応
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 未対応 なし | nodejs 完全対応 10.0.0 |
PluralRules() constructor | Chrome 完全対応 63 | Edge 完全対応 あり | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 完全対応 10.0.0 |
prototype | Chrome 完全対応 63 | Edge 完全対応 あり | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 完全対応 10.0.0 |
resolvedOptions | Chrome 完全対応 63 | Edge 完全対応 あり | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 完全対応 10.0.0 |
select | Chrome 完全対応 63 | Edge 完全対応 あり | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 完全対応 10.0.0 |
supportedLocalesOf | Chrome 完全対応 63 | Edge 完全対応 あり | Firefox 完全対応 58 | IE 未対応 なし | Opera 完全対応 50 | Safari 未対応 なし | WebView Android 完全対応 63 | Chrome Android 完全対応 63 | Firefox Android 完全対応 58 | Opera Android 完全対応 46 | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 完全対応 10.0.0 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応