Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Constructeur Intl.PluralRules()

Baseline Large disponibilité *

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2019.

* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.

Le constructeur Intl.PluralRules() permet de créer des objets Intl.PluralRules.

Syntaxe

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

Note : Intl.PluralRules() ne peut être construit qu'avec new. Tenter de l'appeler sans new génère une TypeError.

Paramètres

locales Facultatif

Une chaîne de caractères avec une balise de langue BCP 47 ou une instance de Intl.Locale, ou un tableau de tels identifiants de locale. La locale par défaut de l'environnement d'exécution est utilisée lorsque undefined est passé ou lorsqu'aucun des identifiants de locale définis n'est pris en charge. Pour la forme générale et l'interprétation de l'argument locales, voir la description du paramètre sur la page principale de Intl.

options Facultatif

Un objet contenant les propriétés suivantes, dans l'ordre dans lequel elles sont récupérées (toutes sont optionnelles) :

localeMatcher

L'algorithme de correspondance de locale à utiliser. Les valeurs possibles sont "lookup" et "best fit" ; la valeur par défaut est "best fit". Pour plus d'informations sur cette option, voir Identification et négociation de la locale.

type

Le type à utiliser. Les valeurs possibles sont :

"cardinal" (par défaut)

Pour les nombres cardinaux (se référant à la quantité de choses).

"ordinal"

Pour les nombres ordinaux (se référant à l'ordre ou au classement des choses, par exemple « 1er », « 2e », « 3e » en français).

Intl.PluralRules prend également en charge les options de chiffres de Intl.NumberFormat() (voir Intl.NumberFormat() pour plus de détails) :

  • minimumIntegerDigits
  • minimumFractionDigits
  • maximumFractionDigits
  • minimumSignificantDigits
  • maximumSignificantDigits
  • roundingPriority
  • roundingIncrement
  • roundingMode

Ces options sont interprétées comme si l'option notation de Intl.NumberFormat était "standard" et style était "decimal".

Exceptions

RangeError

Levée si locales ou options contiennent des valeurs invalides.

Exemples

Utilisation simple

Utilisé simplement sans fournir de locale, une chaîne de caractères formatée dans la locale par défaut et avec les options par défaut est retournée. Cela permet de distinguer les formes du singulier et du pluriel, par exemple « chien » et « chiens ».

js
const pr = new Intl.PluralRules();

pr.select(0); // 'autre' si en anglais américain

pr.select(1); // 'un' si en anglais américain

pr.select(2); // 'autre' si en anglais américain

Utiliser options

Les résultats peuvent être personnalisés avec l'argument options qui possède une propriété type qu'on peut fixer à ordinal. Cela s'avère utile pour déterminer l'indicateur ordinal (par exemple en anglais où il y a des variations entre « 1st », « 2nd », « 3rd », « 4th », « 42nd » et ainsi de suite).

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

Spécifications

Spécification
ECMAScript® 2027 Internationalization API Specification
# sec-intl-pluralrules-constructor

Compatibilité des navigateurs

Voir aussi