Intl.Locale.prototype.collation

La propriété Intl.Locale.prototype.collation est une propriété (à laquelle on accède via un accesseur) qui renvoie le type de collation pour l'instance de Locale courante. La collation est la méthode qui permet d'ordonner des chaînes de caractères en fonction des règles de la locale.

Description

La collation est la façon dont les chaînes de caractères sont ordonnées. Elle est utilisée lorsqu'on doit trier des chaînes de caractères (des résultats de recherche, des enregistrements dans une base de donnée, etc.). Bien que cela puisse sembler trivial, la collation varie d'une région à l'autre et d'une langue à une autre. Cette propriété permet aux développeurs de connaître le type de collation pour une locale donnée.

Voici un tableau listant les types de collation possibles tels que définis dans la spécification Unicode sur la collation.

Les différents types de collation
Type de collation Description
big5han Ordre pinyin pour l'alphabet latin et ordre big5 pour les caractères CJK (utilisés en chinois)
compat Une version précédente de l'ordre, utilisée à des fins de compatibilité
dict Ordre à la façon d'un dictionnaire (comme utilisé en cingalais)

Le type direct a été déprécié et ne doit pas être utilisé.

direct

Ordre des points de code binaires (utilisé en hindoux)
ducet La collation Unicode par défaut pour les éléments d'un tableau
emoji L'ordre recommandé pour les émojis
eor Règles d'ordre européennes
gb2312 Ordre pinyin pour l'alphabet latin et ordre gb2312han pour les caractères CJK (utilisés en chinois)
phonebk Ordre à la façon d'un annuaire (tel qu'en allemand)
phonetic Ordre phonétique, basé sur la prononciation
pinyin Ordre pinyin pour les caractères de l'alphabet latin et les caractères CJK (utilisés en chniois)
reformed Ordre réformé (tel qu'en suédois)
search Collation spéciale pour les chaînes de caractères utilisées pour des recherches
searchjl Collation spéciale pour la recherche des consonnes initiales en coréen
standard L'ordre par défaut pour chaque langue
stroke Ordre pinyin pour l'alphabet latin et ordre de dessin (stroke) pour les caractères CJK (utilisés en chinois)
trad Ordre traditionnel (tel qu'en espagnol)
unihan Ordre pinyin pour l'alphabet latin et ordre Unihan radical pour les caractères CJK (utilisés en chinois)
zhuyin

Ordre pinyin pour l'alphabet latin, ordre zhuyin pour les caractères Bopomofo et CJK (utilisés en chinois)

Exemples

À l'instar des autres étiquettes, le type de collation peut être défini pour l'objet Intl.Locale via la chaîne de caractères qui définit la locale ou grâce au deuxième paramètre du constructeur qui est un objet de configuration.

Définir le type de collation via la chaîne décrivant la locale

Le premier argument passé à Intl.Locale est une chaîne de caractères qui décrit la locale. Cette chaîne peut contenir des fragments additionnels (en plus de l'identifiant canonique de la locale). Pour cela, on ajoutera -u afin d'indiquer qu'on définit une extension. On ajoutera ensuite la clé identifiant cette extension, ici -co pour la collation. Enfin, on ajoutera la valeur souhaitée pour cette extension (dans cet exemple, -emoji) :

let stringColl = new Intl.Locale("en-Latn-US-u-co-emoji");
console.log(stringColl.collation); // Affichera "emoji" dans la console

Définir le type de collation via l'objet de configuration

Le constructeur Intl.Locale possède un deuxième argument optionnel qui est un objet de configuration. Chaque propriété de cet objet pourra permettre de préciser une extension à la locale, y compris un type de collation. Pour définir le type de collation, on pourra utiliser une propriété collation sur cet objet avec une des valeurs indiquées ci-avant :

let configColl = new Intl.Locale("en-Latn-US", {collation: "emoji"});
console.log(configColl.collation); // Affichera "emoji" dans la console

Spécifications

Spécification État Commentaires
Proposition pour Intl.Locale.prototype.collation Proposition de niveau 3

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
collationChrome Support complet 74Edge Aucun support NonFirefox Aucun support NonIE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Support complet 74Chrome Android Support complet 74Firefox Android Aucun support NonOpera Android Aucun support NonSafari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi