L'objet Intl.PluralRules est un constructeur d'objets qui permettent de mettre en forme des chaînes de caractères en fonction des règles de nombre (pluriel) d'une langue donnée.

Syntaxe

new Intl.PluralRules([locales[, options]])

Paramètres

locales

Une chaine de caractères avec un identifiant de langue BCP 47, ou un tableau de ce type de chaine de caractères. Pour le format général et l'interprétation de l'argument locales, voir la page Intl.

options Facultatif

Optionnel, un objet possédant tout ou partie des propriétés suivantes :

localeMatcher
L'algorithme de correspondance à utiliser pour la locale. Les valeurs possibles sont "lookup" et "best fit" ; le défaut est "best fit". Pour des informations sur cette option, voir la page Intl
type
Le type de numérotation à utiliser. Les valeurs possibles sont :
  • "cardinal" pour les nombres cardinaux (la quantité de telle ou telle chose). Cette valeur est la valeur par défaut.
  • "ordinal" pour les nombres ordinaux (l'ordre relatif de différentes choses « premier », « deuxième », « troisième »).

Description

Propriétés

Intl.PluralRules.prototype
Cette propriété permet d'ajouter des propriétés aux objets Intl.PluralRules.

Méthodes

Intl.PluralRules.supportedLocalesOf()
Cette méthode renvoie un tableau contenant les locales prises en charge sans que le moteur ait à utiliser la locale par défaut du système d'exécution.

Instances de PluralRules

Propriétés

Les instances de PluralRules héritent des propriétés suivantes de par leur prototype :

Intl.PluralRules.prototype.constructor
Une référence à Intl.PluralRules.

Méthodes

Les instances de PluralRules héritent des méthodes suivantes de par leur prototype :

Intl.Plural.prototype.resolvedOptions()
Cette méthode renvoie un nouvelle objet dont les propriétés reflètent la locale et les options de collations calculées lors de l'initialisation de l'objet.
Intl.PluralRules.prototype.select()
Cette méthode renvoie une chaîne de caractères (String) qui indique quelle forme de règle de nombre est utilisée pour le formatage.

Exemples

Exemple simple

Sans indiquer de locale, une chaîne formatée dans la locale par défaut et avec les options par défaut est renvoyée. On peut ainsi différencier entre le singulier et le pluriel (par exemple "chien" et "chiens").

var pr = new Intl.PluralRules();

pr.select(0);
// → 'one' si utilisée avec une locale anglais américain

pr.select(1); 
// → 'one' si utilisée avec une locale anglais américain

pr.select(2);
// → 'other' si utilisée avec une locale anglais américain

Utiliser locales

Dans cet exemple, on voit l'impact de la locale sur les règles de nombre. Afin de respecter la langue de l'utilisateur dans votre application, assurez vous d'indiquer cette langue (et éventuellement une langue de secours) grâce à l'argument locales :

// L'arabe possède plusieurs règles
// de nombre

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'

Utiliser options

Les résultats obtenus peuvent être adaptés grâce à l'argument options. Celui-ci possède une propriété appelée type qui peut valoir ordinal. Cela peut être utile afin de déterminer la forme d'un indicateur ordinal (par exemple, "1er", "2e", etc.).

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'

Spécifications

Spécification État Commentaires
Brouillon pour les règles de nombre avec Intl Projet Définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet 63Edge Support complet OuiFirefox Support complet 58IE Aucun support NonOpera Support complet 50Safari Aucun support NonWebView Android Support complet 63Chrome Android Support complet 63Edge Mobile Aucun support NonFirefox Android Support complet 58Opera Android Support complet 50Safari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non
prototypeChrome Support complet 63Edge Support complet OuiFirefox Support complet 58IE Aucun support NonOpera Support complet 50Safari Aucun support NonWebView Android Support complet 63Chrome Android Support complet 63Edge Mobile Aucun support NonFirefox Android Support complet 58Opera Android Support complet 50Safari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non
resolvedOptionsChrome Support complet 63Edge Support complet OuiFirefox Support complet 58IE Aucun support NonOpera Support complet 50Safari Aucun support NonWebView Android Support complet 63Chrome Android Support complet 63Edge Mobile Aucun support NonFirefox Android Support complet 58Opera Android Support complet 50Safari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non
selectChrome Support complet 63Edge Support complet OuiFirefox Support complet 58IE Aucun support NonOpera Support complet 50Safari Aucun support NonWebView Android Support complet 63Chrome Android Support complet 63Edge Mobile Aucun support NonFirefox Android Support complet 58Opera Android Support complet 50Safari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non
supportedLocalesOfChrome Support complet 63Edge Support complet OuiFirefox Support complet 58IE Aucun support NonOpera Support complet 50Safari Aucun support NonWebView Android Support complet 63Chrome Android Support complet 63Edge Mobile Aucun support NonFirefox Android Support complet 58Opera Android Support complet 50Safari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,