Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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 bénéficier de prise en charge variables.
L'objet espace de noms Intl contient plusieurs constructeurs ainsi que des fonctionnalités 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 chaînes de caractères sensible à la langue, le formatage des nombres, le formatage des dates et heures, et plus encore.
Contrairement à la plupart des objets globaux, Intl n'est pas un constructeur. Vous ne pouvez pas l'utiliser avec l'opérateur new ni invoquer l'objet Intl comme une fonction. Toutes les propriétés et méthodes de Intl sont statiques (comme pour l'objet Math).
Les constructeurs d'internationalisation ainsi que plusieurs méthodes sensibles à la langue d'autres constructeurs (listées dans la section Voir aussi) utilisent un schéma commun pour identifier les locales et déterminer celle qui sera effectivement utilisée : ils acceptent tous les arguments locales et options, et négocient la ou les locales demandées avec celles qu'ils prennent en charge à l'aide d'un algorithme défini dans la propriété options.localeMatcher.
L'argument locales est utilisé pour déterminer la locale utilisée dans une opération donnée. L'implémentation JavaScript examine locales, puis calcule une locale qu'elle comprend et qui se rapproche le plus de la préférence exprimée. locales peut être :
Dans les deux derniers cas, la locale effectivement utilisée est la locale la mieux prise en charge déterminée par la négociation de locale. Si un identifiant de locale n'est ni une chaîne de caractères ni un objet, une exception TypeError est levée. Si un identifiant de locale est une chaîne de caractères syntaxiquement invalide, une exception RangeError est levée. Si un identifiant de locale est bien formé mais que l'implémentation ne le reconnaît pas, il est ignoré et la locale suivante de la liste est considérée, avec un retour éventuel à la locale du système. Cependant, il ne faut pas compter sur le fait qu'un nom de locale particulier soit ignoré, car l'implémentation peut ajouter des données pour n'importe quelle locale à l'avenir. Par exemple, new Intl.DateTimeFormat("default") utilise la locale par défaut de l'implémentation uniquement parce que "default" est syntaxiquement valide mais n'est reconnue comme aucune locale.
Un identifiant de locale est une chaîne de caractères composée de :
Chaque sous-étiquette et séquence est séparée 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 première lettre en majuscule, les suivantes en minuscule) pour les sous-étiquettes d'écriture, la casse majuscule pour les sous-étiquettes de région et la casse minuscule pour tout le reste. Par exemple :
Les sous-étiquettes identifiant les langues, écritures, régions (y compris les pays) et (rarement utilisées) variantes sont enregistrées dans le registre IANA des sous-étiquettes de langue (angl.). Ce registre est mis à jour périodiquement, et les implémentations ne sont pas toujours à jour, donc il ne faut pas trop compter sur la prise en charge universelle des sous-étiquettes.
Les séquences 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 séparées par des tirets. Une seule séquence est autorisée pour chaque chiffre ou lettre : "de-a-toto-a-toto" est invalide. Les sous-étiquettes d'extension BCP 47 sont définies dans le projet Unicode CLDR (angl.). Actuellement, seules deux extensions ont des significations définies :
L'extension "u" (Unicode) peut être utilisée pour demander une personnalisation supplémentaire des objets de l'API Intl. Exemples :
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 imbriquée (sans extensions) : par exemple, l'extension transformée dans "de-t-en" contient l'identifiant de locale pour l'anglais. Si une locale imbriquée est présente, 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 dupliquée), "de-t-en-emodeng-emodeng" est aussi invalide.
Enfin, une séquence d'extension à usage privé utilisant la lettre "x" peut apparaître, suivie d'une ou plusieurs sous-étiquettes de un à huit lettres ou chiffres séparées par des tirets. Cela permet aux applications d'encoder des informations pour leur propre usage, qui seront ignorées par toutes les opérations Intl.
L'argument options doit être un objet avec des propriétés qui varient selon les constructeurs et les fonctions. Si l'argument options n'est pas fourni ou est indéfini, des valeurs par défaut sont utilisées pour toutes les propriétés.
Une propriété est prise en charge par tous les constructeurs et fonctions sensibles à la langue : la propriété localeMatcher, dont la valeur doit être une chaîne de caractères "lookup" ou "best fit" et qui sélectionne l'un des algorithmes de correspondance de locale décrits ci-dessous.
La liste des locales spécifiée par l'argument locales, après suppression des extensions Unicode, est interprétée comme une demande priorisée de l'application. L'environnement d'exécution la compare aux locales disponibles et choisit la meilleure disponible. Deux algorithmes de correspondance existent : le comparateur "lookup" suit l'algorithme Lookup défini dans la BCP 47 ; le comparateur "best fit" permet à l'environnement d'exécution de fournir une locale au moins aussi adaptée, voire plus, que le résultat de l'algorithme Lookup. Si l'application ne fournit pas d'argument locales, ou si l'environnement d'exécution ne dispose pas d'une locale correspondant à la demande, la locale par défaut de l'environnement est utilisée. Le comparateur peut être sélectionné à l'aide d'une propriété de l'argument options (voir ci-dessous).
Si l'identifiant de locale sélectionné comportait une séquence 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 prend en charge qu'un sous-ensemble des clés définies pour l'extension Unicode, et les valeurs prises en charge dépendent 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.
Constructeur pour les collationneurs, qui sont des objets permettant la comparaison de chaînes de caractères en tenant compte de la langue.
Intl.DateTimeFormatConstructeur pour les objets permettant le formatage des dates et heures sensible à la langue.
Intl.DisplayNamesConstructeur pour les objets permettant la traduction cohérente des noms de langues, de régions et d'écritures.
Intl.DurationFormatConstructeur pour les objets permettant le formatage des durées sensible à la locale.
Intl.ListFormatConstructeur pour les objets permettant le formatage des listes sensible à la langue.
Intl.LocaleConstructeur pour les objets représentant un identifiant de locale Unicode.
Intl.NumberFormatConstructeur pour les objets permettant le formatage des nombres sensible à la langue.
Intl.PluralRulesConstructeur pour les objets permettant le formatage prenant en compte le pluriel et les règles de pluriel spécifiques à une langue.
Intl.RelativeTimeFormatConstructeur pour les objets permettant le formatage des temps relatifs sensible à la langue.
Intl.SegmenterConstructeur pour les objets permettant la segmentation de texte sensible à la locale.
Intl[Symbol.toStringTag]La valeur initiale de la propriété [Symbol.toStringTag] est la chaîne de caractères "Intl". Cette propriété est utilisée dans Object.prototype.toString().
Retourne les noms canoniques des locales.
Intl.supportedValuesOf()Retourne un tableau trié contenant les valeurs uniques de calendrier, de collation, de monnaie, de systèmes de numérotation ou d'unités prises en charge par l'implémentation.
Vous pouvez utiliser Intl pour formater des dates et nombres dans un format qui est conventionnel pour une langue et une région spécifiques :
| ECMAScript® 2027 Internationalization API Specification # intl-object |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 25 févr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.