[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Intl [Back]  [Original]

Intl - JavaScript | MDN

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

Intl

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 2017.

* Certaines parties de cette fonctionnalit peuvent bnficier de prise en charge variables.

L'objet espace de noms Intl contient plusieurs constructeurs ainsi que des fonctionnalits communes aux constructeurs d'internationalisation et aux autres fonctions sensibles la langue. Ensemble, ils constituent l'API d'internationalisation ECMAScript, qui fournit la comparaison de chanes de caractres sensible la langue, le formatage des nombres, le formatage des dates et heures, et plus encore.

Dans cet article

Description

Contrairement la plupart des objets globaux, Intl n'est pas un constructeur. Vous ne pouvez pas l'utiliser avec l'oprateur new ni invoquer l'objet Intl comme une fonction. Toutes les proprits et mthodes de Intl sont statiques (comme pour l'objet Math).

Les constructeurs d'internationalisation ainsi que plusieurs mthodes sensibles la langue d'autres constructeurs (listes dans la section Voir aussi) utilisent un schma commun pour identifier les locales et dterminer celle qui sera effectivement utilise : ils acceptent tous les arguments locales et options, et ngocient la ou les locales demandes avec celles qu'ils prennent en charge l'aide d'un algorithme dfini dans la proprit options.localeMatcher.

Argument locales

L'argument locales est utilis pour dterminer la locale utilise dans une opration donne. L'implmentation JavaScript examine locales, puis calcule une locale qu'elle comprend et qui se rapproche le plus de la prfrence exprime. locales peut tre :

  • undefined (ou omis) : la locale par dfaut de l'implmentation sera utilise.
  • Une locale : un identifiant de locale ou un objet Intl.Locale qui encapsule un identifiant de locale.
  • Une liste de locales : toute autre valeur, qui sera convertie en objet puis traite comme un tableau de locales.

Dans les deux derniers cas, la locale effectivement utilise est la locale la mieux prise en charge dtermine par la ngociation de locale. Si un identifiant de locale n'est ni une chane de caractres ni un objet, une exception TypeError est leve. Si un identifiant de locale est une chane de caractres syntaxiquement invalide, une exception RangeError est leve. Si un identifiant de locale est bien form mais que l'implmentation ne le reconnat pas, il est ignor et la locale suivante de la liste est considre, avec un retour ventuel la locale du systme. Cependant, il ne faut pas compter sur le fait qu'un nom de locale particulier soit ignor, car l'implmentation peut ajouter des donnes pour n'importe quelle locale l'avenir. Par exemple, new Intl.DateTimeFormat("default") utilise la locale par dfaut de l'implmentation uniquement parce que "default" est syntaxiquement valide mais n'est reconnue comme aucune locale.

Un identifiant de locale est une chane de caractres compose de :

  1. Un sous-tiquette de langue comportant 2 3 ou 5 8 lettres
  2. Un sous-tiquette d'criture comportant 4 lettres Facultatif
  3. Un sous-tiquette de rgion comportant soit 2 lettres, soit 3 chiffres Facultatif
  4. Une ou plusieurs sous-tiquettes de variante (toutes doivent tre uniques), chacune comportant soit 5 8 caractres alphanumriques, soit un chiffre suivi de 3 caractres alphanumriques Facultatif
  5. Une ou plusieurs squences d'extension de balise de langue BCP 47 Facultatif
  6. Une squence d'extension usage priv Facultatif

Chaque sous-tiquette et squence est spare par un tiret. Les identifiants de locale ne tiennent pas compte de la casse ASCII. Cependant, il est d'usage d'utiliser la casse capitale initiale (la premire lettre en majuscule, les suivantes en minuscule) pour les sous-tiquettes d'criture, la casse majuscule pour les sous-tiquettes de rgion et la casse minuscule pour tout le reste. Par exemple :

  • "hi" : hindi (langue)
  • "de-AT" : allemand (langue) tel qu'utilis en Autriche (rgion)
  • "zh-Hans-CN" : chinois (langue) crit en caractres simplifis (criture) tel qu'utilis en Chine (rgion)
  • "en-emodeng" : anglais (langue) dans le dialecte "Early modern English" (variante)

Les sous-tiquettes identifiant les langues, critures, rgions (y compris les pays) et (rarement utilises) variantes sont enregistres dans le registre IANA des sous-tiquettes de langue (angl.). Ce registre est mis jour priodiquement, et les implmentations ne sont pas toujours jour, donc il ne faut pas trop compter sur la prise en charge universelle des sous-tiquettes.

Les squences d'extension BCP 47 consistent en un seul chiffre ou une seule lettre (autre que "x") et une ou plusieurs sous-tiquettes de deux huit lettres ou chiffres spares par des tirets. Une seule squence est autorise pour chaque chiffre ou lettre : "de-a-toto-a-toto" est invalide. Les sous-tiquettes d'extension BCP 47 sont dfinies dans le projet Unicode CLDR (angl.). Actuellement, seules deux extensions ont des significations dfinies :

  • L'extension "u" (Unicode) peut tre utilise pour demander une personnalisation supplmentaire des objets de l'API Intl. Exemples :

    • "de-DE-u-co-phonebk" : utiliser la variante d'ordre tlphonique allemand, qui interprte les voyelles avec trma comme des paires de caractres correspondantes : ae, oe, ue.
    • "th-TH-u-nu-thai" : utiliser les chiffres thas (, , , , , , , , , ) pour le formatage des nombres.
    • "ja-JP-u-ca-japanese" : utiliser le calendrier japonais pour le formatage des dates et heures, de sorte que 2013 soit exprim comme l'anne 25 de l're Heisei, ou 25.
    • "en-GB-u-ca-islamic-umalqura" : utiliser l'anglais britannique avec le calendrier Umm al-Qura (Hijri), o la date grgorienne du 14 octobre 2017 correspond la date hijri 24 Muharram, 1439.
  • L'extension "t" (transformed) indique un contenu transform : par exemple, un texte qui a t traduit depuis une autre locale. Aucune fonctionnalit de Intl ne prend actuellement en compte l'extension "t". Cependant, cette extension contient parfois une locale imbrique (sans extensions) : par exemple, l'extension transforme dans "de-t-en" contient l'identifiant de locale pour l'anglais. Si une locale imbrique est prsente, elle doit tre un identifiant de locale valide. Par exemple, comme "en-emodeng-emodeng" est invalide (car il contient une sous-tiquette de variante emodeng duplique), "de-t-en-emodeng-emodeng" est aussi invalide.

Enfin, une squence d'extension usage priv utilisant la lettre "x" peut apparatre, suivie d'une ou plusieurs sous-tiquettes de un huit lettres ou chiffres spares par des tirets. Cela permet aux applications d'encoder des informations pour leur propre usage, qui seront ignores par toutes les oprations Intl.

Argument options

L'argument options doit tre un objet avec des proprits qui varient selon les constructeurs et les fonctions. Si l'argument options n'est pas fourni ou est indfini, des valeurs par dfaut sont utilises pour toutes les proprits.

Une proprit est prise en charge par tous les constructeurs et fonctions sensibles la langue : la proprit localeMatcher, dont la valeur doit tre une chane de caractres "lookup" ou "best fit" et qui slectionne l'un des algorithmes de correspondance de locale dcrits ci-dessous.

Identification et ngociation de locale

La liste des locales spcifie par l'argument locales, aprs suppression des extensions Unicode, est interprte comme une demande priorise de l'application. L'environnement d'excution la compare aux locales disponibles et choisit la meilleure disponible. Deux algorithmes de correspondance existent : le comparateur "lookup" suit l'algorithme Lookup dfini dans la BCP 47 ; le comparateur "best fit" permet l'environnement d'excution de fournir une locale au moins aussi adapte, voire plus, que le rsultat de l'algorithme Lookup. Si l'application ne fournit pas d'argument locales, ou si l'environnement d'excution ne dispose pas d'une locale correspondant la demande, la locale par dfaut de l'environnement est utilise. Le comparateur peut tre slectionn l'aide d'une proprit de l'argument options (voir ci-dessous).

Si l'identifiant de locale slectionn comportait une squence d'extension Unicode, cette extension est maintenant utilise pour personnaliser l'objet construit ou le comportement de la fonction. Chaque constructeur ou fonction ne prend en charge qu'un sous-ensemble des cls dfinies pour l'extension Unicode, et les valeurs prises en charge dpendent souvent de l'identifiant de locale. Par exemple, la cl "co" (collation) n'est prise en charge que par Intl.Collator, et sa valeur "phonebk" n'est prise en charge que pour l'allemand.

Proprits statiques

Intl.Collator

Constructeur pour les collationneurs, qui sont des objets permettant la comparaison de chanes de caractres en tenant compte de la langue.

Intl.DateTimeFormat

Constructeur pour les objets permettant le formatage des dates et heures sensible la langue.

Intl.DisplayNames

Constructeur pour les objets permettant la traduction cohrente des noms de langues, de rgions et d'critures.

Intl.DurationFormat

Constructeur pour les objets permettant le formatage des dures sensible la locale.

Intl.ListFormat

Constructeur pour les objets permettant le formatage des listes sensible la langue.

Intl.Locale

Constructeur pour les objets reprsentant un identifiant de locale Unicode.

Intl.NumberFormat

Constructeur pour les objets permettant le formatage des nombres sensible la langue.

Intl.PluralRules

Constructeur pour les objets permettant le formatage prenant en compte le pluriel et les rgles de pluriel spcifiques une langue.

Intl.RelativeTimeFormat

Constructeur pour les objets permettant le formatage des temps relatifs sensible la langue.

Intl.Segmenter

Constructeur pour les objets permettant la segmentation de texte sensible la locale.

Intl[Symbol.toStringTag]

La valeur initiale de la proprit [Symbol.toStringTag] est la chane de caractres "Intl". Cette proprit est utilise dans Object.prototype.toString().

Mthodes statiques

Intl.getCanonicalLocales()

Retourne les noms canoniques des locales.

Intl.supportedValuesOf()

Retourne un tableau tri contenant les valeurs uniques de calendrier, de collation, de monnaie, de systmes de numrotation ou d'units prises en charge par l'implmentation.

Exemples

Formater des dates et nombres

Vous pouvez utiliser Intl pour formater des dates et nombres dans un format qui est conventionnel pour une langue et une rgion spcifiques :

js
const compte = 26254.39;
const date = new Date("2012-05-24");

function afficher(langue) {
  console.log(
    `${new Intl.DateTimeFormat(langue).format(date)} ${new Intl.NumberFormat(
      langue,
    ).format(compte)}`,
  );
}

afficher("en-US"); // 5/24/2012 26,254.39

afficher("de-DE"); // 24.5.2012 26.254,39

Spcifications

Spcification
ECMAScript 2027 Internationalization API Specification
# intl-object

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page