Constructeur Intl.PluralRules()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2019.

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);

Parameters

locales Facultatif

Une chaîne de caractères représentant une balise de langue BCP 47 ou un tableau de telles balises. Pour la forme générale et l'interprétation de cet argument, voir la page Intl.

options Facultatif

Un objet avec une ou plusieurs des propriétés suivantes :

localeMatcher

L'algorithme de correspondance des locales à utiliser. Les valeurs possibles sont "lookup" et "best fit" ; la valeur par défaut est "best fit". Pour plus d'information, voir la page Intl.

type

Le type à utiliser. Les valeurs possibles sont :

  • "cardinal" pour les nombres cardinaux (qui indiquent une quantité de choses). C'est la valeur par défaut.
  • "ordinal" pour les nombres ordinaux (qui indiquent un ordre ou un classement comme "1er", "2e", "3e").

Les propriétés suivantes appartiennent à deux groupes distincts : minimumIntegerDigits, minimumFractionDigits, et maximumFractionDigits pour le premier et minimumSignificantDigits et maximumSignificantDigits dans l'autre. Si au moins une des propriétés du second groupe est définie, le premier groupe est ignoré.

minimumIntegerDigits

Le nombre minimal de chiffres à utiliser. Les valeurs possibles vont de 1 à 21 ; la valeur par défaut est 1.

minimumFractionDigits

Le nombre minimal de chiffres décimaux (derrière la virgule) à utiliser. Les valeurs possibles vont de 0 à 20 ; la valeur par défaut pour les nombres normaux et les pourcentages est 0 ; la valeur par défaut pour la mise en forme des montants en devises correspond au nombre de chiffres fourni par la liste ISO 4217 pour les devises (et 2 si la liste ne fournit pas cette information).

maximumFractionDigits

Le nombre maximal de chiffres décimaux (derrière la virgule) à utiliser. Les valeurs possibles vont de 0 à 20 ; la valeur par défaut pour les nombres normaux correspond au maximum entre minimumFractionDigits et 3 ; la valeur par défaut pour les montants en devises correspond au maximum entre minimumFractionDigits et au nombre de chiffres fourni par la liste ISO 4217 pour les devises (et 2 si la liste ne fournit pas cette information) ; la valeur par défaut pour le formatage des pourcentages correspond au maximum entre minimumFractionDigits et 0.

minimumSignificantDigits

Le nombre minimal de chiffres significatifs à utiliser. Les valeurs possibles vont de 1 à 21 ; la valeur par défaut est 1.

maximumSignificantDigits

Le nombre maximal de chiffres significatifs à utiliser. Les valeurs possibles vont de 1 à 21 ; la valeur par défaut 21.

Exemples

Usage 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 renvoyée. Cela permet de distinguer les formes du singulier et du pluriel.

js
var pr = new Intl.PluralRules();

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

pr.select(2);
// → 'other' 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
var 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

Specification
ECMAScript Internationalization API Specification
# sec-intl-pluralrules-constructor

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi