Intl.supportedValuesOf()

Expérimental: Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La méthode Intl.supportedValuesOf() renvoie un tableau qui contient le calendrier, la collation, la devise, les systèmes de numérations ou les unités prises en charge par l'implémentation.

Les doublons sont omis et le tableau est trié selon l'ordre lexicographique (plus précisément par Array.prototype.sort() avec undefined comme fonction de comparaison).

Cette méthode peut être utilisée afin de tester les fonctionnalités prises en charge par une implémentation donnée afin de les surcharger par une prothèse d'implémentation si nécessaire. Elle peut également être utilisée pour construire des interfaces utilisateur permettant aux personnes de choisir leurs préférences pour la localisation (par exemple lorsque l'interface est construite dynamiquement en WebGL ou côté serveur).

Exemple interactif

Syntaxe

js
Intl.supportedValuesOf(cle);

Paramètres

cle

Une clé qui indique la catégorie de valeurs à renvoyer. Il peut s'agir de : "calendar", "collation", "currency","numberingSystem", "timeZone", "unit".

Valeur de retour

Un tableau trié, contenant des chaînes de caractères uniques indiquant les valeurs prises en charge par l'implémentation pour la clé demandée.

Exceptions

RangeError

Une clé non prise en charge a été passée en paramètre.

Exemples

Test de fonctionnalité

On peut vérifier que la méthode est prise en charge en la comparant à undefined :

js
if (typeof Intl.supportedValuesOf !== "undefined") {
  // la méthode est prise en charge
}

Obtenir toutes les valeurs d'une clé donnée

Pour obtenir les valeurs prises en charge pour les représentations calendaires, on pourra appeler la méthode avec la clé "calendar" et parcourir le tableau obtenu :

js
Intl.supportedValuesOf("calendar").forEach(function (calendar) {
  // "buddhist", "chinese", "coptic", "dangi", ...
});

Note : Le tableau renvoyé pour les calendriers contiendra toujours la valeur "gregory" (calendrier grégorien).

Les autres valeurs peuvent être obtenues de la même façon :

js
Intl.supportedValuesOf("collation").forEach(function (collation) {
  // "big5han", "compat", "dict", "emoji", ...
});

Intl.supportedValuesOf("currency").forEach(function (currency) {
  // "ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", ...
});

Intl.supportedValuesOf("numberingSystem").forEach(function (numberingSystem) {
  // "adlm", "ahom", "arab", "arabext", "bali", ...
});

Intl.supportedValuesOf("timeZone").forEach(function (timeZone) {
  // "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", ...
});

Intl.supportedValuesOf("unit").forEach(function (unit) {
  // "acre", "bit", "byte", "celsius", "centimeter", ...
});

Exception à l'utilisation d'une clé invalide

js
try {
  Intl.supportedValuesOf("uneCleInvalide");
} catch (err) {
  // Error: RangeError: invalid key: "uneCleInvalide"
}

Prothèse d'émulation (polyfill)

Spécifications

Specification
ECMAScript Internationalization API Specification
# sec-intl.supportedvaluesof

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi