aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/objets_globaux/intl/pluralrules/index.html
blob: 0d49ec4de0953845cf34969bbdaf01ac258ac67e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
---
title: Intl.PluralRules
slug: Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules
tags:
  - Internationalisation
  - Intl
  - JavaScript
  - PluralRules
  - Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules
---
<div>{{JSRef}}</div>

<p>L'objet <strong><code>Intl.PluralRules</code></strong> est un constructeur d'objets qui permettent de mettre en forme des chaînes de caractères en fonction des règles de nombre (pluriel) d'une langue donnée.</p>

<h2 id="Syntaxe">Syntaxe</h2>

<pre class="syntaxbox"><code>new Intl.PluralRules([<var>locales</var>[, <var>options</var>]])
</code></pre>

<h3 id="Paramètres">Paramètres</h3>

<dl>
 <dt><code>locales</code></dt>
 <dd>
 <p>Une chaine de caractères avec un identifiant de langue BCP 47, ou un tableau de ce type de chaine de caractères. Pour le format général et l'interprétation de l'argument <code>locales</code>, voir la page {{jsxref("Objets_globaux/Intl","Intl","#L'identification_et_le_choix_de_la_locale")}}.</p>
 </dd>
 <dt><code>options</code> {{optional_inline}}</dt>
 <dd>
 <p>Optionnel, un objet possédant tout ou partie des propriétés suivantes :</p>

 <dl>
  <dt><code>localeMatcher</code></dt>
  <dd>L'algorithme de correspondance à utiliser pour la locale. Les valeurs possibles sont <code>"lookup"</code> et <code>"best fit"</code> ; le défaut est <code>"best fit"</code>. Pour des informations sur cette option, voir la page {{jsxref("Objets_globaux/Intl","Intl","##Choix_de_la_locale")}}</dd>
  <dt><code>type</code></dt>
  <dd>Le type de numérotation à utiliser. Les valeurs possibles sont :
  <ul>
   <li><code>"cardinal"</code> pour les nombres cardinaux (la quantité de telle ou telle chose). Cette valeur est la valeur par défaut.</li>
   <li><code>"ordinal"</code> pour les nombres ordinaux (l'ordre relatif de différentes choses « premier », « deuxième », « troisième »).</li>
  </ul>
  </dd>
 </dl>
 </dd>
</dl>

<h2 id="Description">Description</h2>

<h3 id="Propriétés">Propriétés</h3>

<dl>
 <dt>{{jsxref("PluralRules.prototype", "Intl.PluralRules.prototype")}}</dt>
 <dd>Cette propriété permet d'ajouter des propriétés aux objets <code>Intl.PluralRules</code>.</dd>
</dl>

<h3 id="Méthodes">Méthodes</h3>

<dl>
 <dt>{{jsxref("PluralRules.supportedLocalesOf", "Intl.PluralRules.supportedLocalesOf()")}}</dt>
 <dd>Cette méthode renvoie un tableau contenant les locales prises en charge sans que le moteur ait à utiliser la locale par défaut du système d'exécution.</dd>
</dl>

<h2 id="Instances_de_PluralRules">Instances de <code>PluralRules</code></h2>

<h3 id="Propriétés_2">Propriétés</h3>

<p>Les instances de <code>PluralRules</code> héritent des propriétés suivantes de par leur prototype :</p>

<div>{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/prototype', 'Propriétés')}}</div>

<h3 id="Méthodes_2">Méthodes</h3>

<p>Les instances de <code>PluralRules</code> héritent des méthodes suivantes de par leur prototype :</p>

<div>{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/prototype', 'Méthodes')}}</div>

<h2 id="Exemples">Exemples</h2>

<h3 id="Exemple_simple">Exemple simple</h3>

<p>Sans indiquer de locale, une chaîne formatée dans la locale par défaut et avec les options par défaut est renvoyée. On peut ainsi différencier entre le singulier et le pluriel (par exemple "chien" et "chiens").</p>

<pre class="brush: js">var pr = new Intl.PluralRules();

pr.select(0);
// → 'one' si utilisée avec une locale anglais américain

pr.select(1);
// → 'one' si utilisée avec une locale anglais américain

pr.select(2);
// → 'other' si utilisée avec une locale anglais américain
</pre>

<h3 id="Utiliser_locales">Utiliser <code>locales</code></h3>

<p>Dans cet exemple, on voit l'impact de la locale sur les règles de nombre. Afin de respecter la langue de l'utilisateur dans votre application, assurez vous d'indiquer cette langue (et éventuellement une langue de secours) grâce à l'argument <code>locales</code> :</p>

<pre class="brush: js">// L'arabe possède plusieurs règles
// de nombre

new Intl.PluralRules('ar-EG').select(0);
// → 'zero'
new Intl.PluralRules('ar-EG').select(1);
// → 'one'
new Intl.PluralRules('ar-EG').select(2);
// → 'two'
new Intl.PluralRules('ar-EG').select(6);
// → 'few'
new Intl.PluralRules('ar-EG').select(18);
// → 'many'
</pre>

<h3 id="Utiliser_options">Utiliser <code>options</code></h3>

<p>Les résultats obtenus peuvent être adaptés grâce à l'argument <code>options</code>. Celui-ci possède une propriété appelée <code>type</code> qui peut valoir <code>ordinal</code>. Cela peut être utile afin de déterminer la forme d'un indicateur ordinal (par exemple, "1<sup>er</sup>", "2<sup>e</sup>", etc.).</p>

<pre class="brush: js">var pr = new Intl.PluralRules('en-US', { type: 'ordinal' });

pr.select(0);
// → 'other'
pr.select(1);
// → 'one'
pr.select(2);
// → 'two'
pr.select(3);
// → 'few'
pr.select(4);
// → 'other'
pr.select(42);
// → 'two'
</pre>

<h2 id="Spécifications">Spécifications</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Spécification</th>
   <th scope="col">État</th>
   <th scope="col">Commentaires</th>
  </tr>
  <tr>
   <td><a href="https://tc39.es/ecma402/#sec-intl-pluralrules-constructor">Proposition pour le constructeur <code>Intl.PluralRules</code></a></td>
   <td>{{Spec2('ES Int Draft')}}</td>
   <td>Définition initiale.</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>

<div>
<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>

<p>{{Compat("javascript.builtins.Intl.PluralRules")}}</p>
</div>

<h2 id="Voir_aussi">Voir aussi</h2>

<div>{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl', 'Voir_aussi')}}</div>