L'objet Intl est l'espace de noms pour l'API d'Internationalisation de l'ECMAScript, qui fournit la comparaison de chaînes de caractères, le formatage des nombres, des dates et de l'heure spécifiques aux langues. Les constructeurs pour Collator, NumberFormat, et DateTimeFormat sont des propriétés de l'objet Intl. Cette page documente ces propriétés ainsi que les fonctionnalités communes aux constructeurs d'internationalisation et aux autres fonctions spécifiques aux langues.

Propriétés

Intl.Collator
Le constructeur pour les ordonnanceurs (collators en anglais) et les objets qui permettent la comparaison de chaînes de caractères spécifique à une langue.
Intl.DateTimeFormat
Le constructeur pour les objets qui permettent le formatage des dates et de l'heure spécifique à une langue.
Intl.NumberFormat
Le constructeur pour les objets qui permettent le formatage des nombres spécifique à une langue.
Intl.PluralRules
À faire

Méthodes

Intl.getCanonicalLocales()
Méthode renvoyant les noms canoniques des locales.

Identification et choix de la locale

Les constructeurs d'internationalisation, ainsi que plusieurs autres méthodes spécifiques à une langue dans d'autres constructeurs (voir ci-dessous Voir aussi), utilisent un schéma commun pour identifier les locales et déterminer celle qu'ils utiliseront effectivement : ils acceptent tous les arguments locales et options, et ils négocient les locales demandées face aux locales qu'ils supportent, en utilisant un algorithme spécifié dans la propriété options.localeMatcher.

Argument locales

L'argument locales peut être, soit une chaîne de caractères comportant une balise de langue BCP 47, soit un tableau de telles balises. Si l'argument n'est pas fourni ou est indéfini, la locale par défaut de l'environnement d'exécution est utilisée.

Une balise de langue BCP 47 définit un langage et contient au minimum un code de langue principale. Dans sa forme la plus fréquente, elle peut contenir, dans l'ordre : un code de langue, un code de script et un code de pays ou de région, tous séparés par des tirets. Bien que la balise ne soit sensible à la casse, il est recommandé d'utiliser des initiales majuscules pour le code de script, des majuscules pour les codes de pays et de région, et des minuscules pour tout le reste.

Exemples :

  • "hi" : Hindi (langue principale).
  • "de-AT" : Allemand tel qu'utilisé en Autriche (langue principale avec un code pays).
  • "zh-Hans-CN" : Le chinois écrit en caractères simplifiés tel qu'utilisé en Chine (langue principale avec des codes de script et de pays).

Les sous balises identifiant les langues, les scripts, les pays (régions) et les variantes (rarement utilisées) dans les balises de langue BCP 47 peuvent être trouvées dans le registre IANA des Sous balises de Langues

La BCP 47 permet également des extensions. Les fonctions d'internalisation de JavaScrip utilisent l'extension "u" (Unicode), qui peut utilisée pour demander une personnalisation supplémentaire des objets Collator, NumberFormat, ou DateTimeFormat. Exemples :

  • "de-DE-u-co-phonebk" : utiliser la variante annuaire de l'ordre de tri allemand, qui décompose les voyelles à umlaut en paires de caractères : ä → ae, ö → oe, ü → ue.
  • "th-TH-u-nu-thai" : utiliser les chiffres thaïs (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) dans le formatage des nombres.
  • "ja-JP-u-ca-japanese" : utiliser le calendrier japonais dans le formatage des dates et des heures, de sorte que 2013 soit exprimé comme l'an 25 de l'ère Heisei, ou 平成25.
  • "en-GB-u-ca-islamic" : utiliser l'anglais britannique avec le calendrier islamique (Hijri), où la date grégorienne 14 octobre 2017 est la date Hijri 24 Muharram ,1439.

Négotiation de la locale

L'argument locales, après retrait de toutes les extensions Unicode, est interprété comme une requête classée par priorité émanant de l'application. L'environnement d'exécution le compare aux locales dont il dispose et choisit la meilleure disponible. Il existe deux algorithmes d'association : l'apparieur "lookup" suit l'algorithme Lookup spécifié dans BCP 47; l'apparieur "meilleure correspondance" laisse l'environnement d'exécution fournir une locale qui est au moins aussi, mais possiblement mieux, adaptée à la demande que le résultat de l'algorithme Lookup. Si l'application ne fournit pas d'argument locales ou que l'environnement d'exécution ne dispose pas d'une locale qui corresponde à la requête, alors la locale par défaut de l'environnement d'exécution est utilisée. L'apparieur peut être choisi en utilisant une propriété de l'argument options (voir ci-dessous).

Si la balise de la langue choisie comporte une sous chaîne d'extension Unicode, cette extension est maintenant utilisée pour personnaliser l'objet construit ou le comportement de la fonction. Chaque constructeur ou fonction ne supporte qu'un sous-ensemble des clés définies pour le extension Unicode, et les valeurs supportées dépendent souvent de la balise de langue. Par exemple, la clé "co" (collation) n'est supportée que par le constructeur Collator, et sa valeur "phonebk" n'est supportée que pour l'allemand.

Argument options

L'argument options doit être un objet ayant des propriétés qui varient suivant qu'il s'agit des constructeurs ou des fonctions. Si l'argument options n'est pas fourni ou est indéfini, des valeurs par défaut seront utilisées pour toutes les propriétés.

Une propriété est supportée par tous les constructeurs et toutes les fonctions basés sur les locales : la propriété localeMatcher, dont la valeur doit être la chaîne "lookup" ou "best fit", et qui sélectionne l'un des algorithmes d'appariement décrits ci-dessus.

Spécifications

Spécification Statut Commentaire
ECMAScript Internationalization API 1.0 (ECMA-402)
La définition de 'Intl' dans cette spécification.
Standard Définition initiale.
ECMAScript Internationalization API 2.0 (ECMA-402)
La définition de 'Intl' dans cette spécification.
Standard  
ECMAScript Internationalization API 4.0 (ECMA-402)
La définition de 'Intl' dans cette spécification.
Projet Ajout de Intl.getCanonicalLocales dans la 4ème édition.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple24 Oui29111510
getCanonicalLocales54 Non48 Non Non11
Collator24 Oui29111510
DateTimeFormat24 Oui29111510
NumberFormat24 Oui29111510
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Support simple Non26 Oui56 Non ?10
getCanonicalLocales Non Non Non56 Non Non11
Collator Non26 Oui56 Non ?10
DateTimeFormat Non26 Oui56 Non ?10
NumberFormat4.426 Oui56 Non3710

Voir aussi

Étiquettes et contributeurs liés au document

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