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 String indicating which plurar 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 ドラフト 初期定義

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 63Edge 完全対応 ありFirefox 完全対応 58IE 未対応 なしOpera 完全対応 50Safari 未対応 なしWebView Android 完全対応 63Chrome Android 完全対応 63Edge Mobile 未対応 なしFirefox Android 完全対応 58Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
prototypeChrome 完全対応 63Edge 完全対応 ありFirefox 完全対応 58IE 未対応 なしOpera 完全対応 50Safari 未対応 なしWebView Android 完全対応 63Chrome Android 完全対応 63Edge Mobile 未対応 なしFirefox Android 完全対応 58Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
resolvedOptionsChrome 完全対応 63Edge 完全対応 ありFirefox 完全対応 58IE 未対応 なしOpera 完全対応 50Safari 未対応 なしWebView Android 完全対応 63Chrome Android 完全対応 63Edge Mobile 未対応 なしFirefox Android 完全対応 58Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
selectChrome 完全対応 63Edge 完全対応 ありFirefox 完全対応 58IE 未対応 なしOpera 完全対応 50Safari 未対応 なしWebView Android 完全対応 63Chrome Android 完全対応 63Edge Mobile 未対応 なしFirefox Android 完全対応 58Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし
supportedLocalesOfChrome 完全対応 63Edge 完全対応 ありFirefox 完全対応 58IE 未対応 なしOpera 完全対応 50Safari 未対応 なしWebView Android 完全対応 63Chrome Android 完全対応 63Edge Mobile 未対応 なしFirefox Android 完全対応 58Opera Android 完全対応 50Safari iOS 未対応 なしSamsung Internet Android 未対応 なしnodejs 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: dskmori, Uemmra3, frodo821, YojiIzumi
最終更新者: dskmori,