make-plural 6.2.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +29 -11
- package/README.md +44 -16
- package/cardinals.d.ts +215 -211
- package/cardinals.js +135 -137
- package/cardinals.mjs +161 -163
- package/examples.d.ts +215 -0
- package/examples.js +230 -0
- package/examples.mjs +223 -0
- package/ordinals.d.ts +100 -98
- package/ordinals.js +64 -89
- package/ordinals.mjs +61 -84
- package/package.json +67 -23
- package/pluralCategories.d.ts +13 -9
- package/pluralCategories.js +59 -59
- package/pluralCategories.mjs +56 -52
- package/plurals.d.ts +215 -211
- package/plurals.js +229 -219
- package/plurals.mjs +283 -273
- package/ranges.d.ts +93 -0
- package/ranges.js +209 -0
- package/ranges.mjs +112 -0
- package/CHANGELOG.md +0 -91
package/cardinals.js
CHANGED
|
@@ -1,37 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
function c(n) {
|
|
8
|
-
return n >= 0 && n <= 1 ? 'one' : 'other';
|
|
9
|
-
}
|
|
10
|
-
function d(n) {
|
|
11
|
-
var s = String(n).split('.'), v0 = !s[1];
|
|
1
|
+
const a = (n) => n == 1 ? 'one' : 'other';
|
|
2
|
+
const b = (n) => (n == 0 || n == 1) ? 'one' : 'other';
|
|
3
|
+
const c = (n) => n >= 0 && n <= 1 ? 'one' : 'other';
|
|
4
|
+
const d = (n) => {
|
|
5
|
+
const s = String(n).split('.'), v0 = !s[1];
|
|
12
6
|
return n == 1 && v0 ? 'one' : 'other';
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
function f(n) {
|
|
18
|
-
return n == 1 ? 'one'
|
|
7
|
+
};
|
|
8
|
+
const e = (n) => 'other';
|
|
9
|
+
const f = (n) => n == 1 ? 'one'
|
|
19
10
|
: n == 2 ? 'two'
|
|
20
11
|
: 'other';
|
|
21
|
-
}
|
|
22
12
|
|
|
23
13
|
(function (root, plurals) {
|
|
24
14
|
Object.defineProperty(plurals, '__esModule', { value: true });
|
|
25
|
-
if (typeof define === 'function' && define.amd)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
module.exports = plurals;
|
|
29
|
-
} else {
|
|
30
|
-
root.plurals = plurals;
|
|
31
|
-
}
|
|
15
|
+
if (typeof define === 'function' && define.amd) define(plurals);
|
|
16
|
+
else if (typeof exports === 'object') module.exports = plurals;
|
|
17
|
+
else root.plurals = plurals;
|
|
32
18
|
}(this, {
|
|
33
|
-
_in: e,
|
|
34
|
-
|
|
35
19
|
af: a,
|
|
36
20
|
|
|
37
21
|
ak: b,
|
|
@@ -40,8 +24,8 @@ am: c,
|
|
|
40
24
|
|
|
41
25
|
an: a,
|
|
42
26
|
|
|
43
|
-
ar:
|
|
44
|
-
|
|
27
|
+
ar: (n) => {
|
|
28
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);
|
|
45
29
|
return n == 0 ? 'zero'
|
|
46
30
|
: n == 1 ? 'one'
|
|
47
31
|
: n == 2 ? 'two'
|
|
@@ -50,8 +34,8 @@ ar: function ar(n) {
|
|
|
50
34
|
: 'other';
|
|
51
35
|
},
|
|
52
36
|
|
|
53
|
-
ars:
|
|
54
|
-
|
|
37
|
+
ars: (n) => {
|
|
38
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);
|
|
55
39
|
return n == 0 ? 'zero'
|
|
56
40
|
: n == 1 ? 'one'
|
|
57
41
|
: n == 2 ? 'two'
|
|
@@ -68,8 +52,10 @@ ast: d,
|
|
|
68
52
|
|
|
69
53
|
az: a,
|
|
70
54
|
|
|
71
|
-
|
|
72
|
-
|
|
55
|
+
bal: a,
|
|
56
|
+
|
|
57
|
+
be: (n) => {
|
|
58
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);
|
|
73
59
|
return n10 == 1 && n100 != 11 ? 'one'
|
|
74
60
|
: (n10 >= 2 && n10 <= 4) && (n100 < 12 || n100 > 14) ? 'few'
|
|
75
61
|
: t0 && n10 == 0 || (n10 >= 5 && n10 <= 9) || (n100 >= 11 && n100 <= 14) ? 'many'
|
|
@@ -90,8 +76,8 @@ bn: c,
|
|
|
90
76
|
|
|
91
77
|
bo: e,
|
|
92
78
|
|
|
93
|
-
br:
|
|
94
|
-
|
|
79
|
+
br: (n) => {
|
|
80
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), n1000000 = t0 && s[0].slice(-6);
|
|
95
81
|
return n10 == 1 && n100 != 11 && n100 != 71 && n100 != 91 ? 'one'
|
|
96
82
|
: n10 == 2 && n100 != 12 && n100 != 72 && n100 != 92 ? 'two'
|
|
97
83
|
: ((n10 == 3 || n10 == 4) || n10 == 9) && (n100 < 10 || n100 > 19) && (n100 < 70 || n100 > 79) && (n100 < 90 || n100 > 99) ? 'few'
|
|
@@ -101,8 +87,8 @@ br: function br(n) {
|
|
|
101
87
|
|
|
102
88
|
brx: a,
|
|
103
89
|
|
|
104
|
-
bs:
|
|
105
|
-
|
|
90
|
+
bs: (n) => {
|
|
91
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);
|
|
106
92
|
return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'
|
|
107
93
|
: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'
|
|
108
94
|
: 'other';
|
|
@@ -112,8 +98,8 @@ ca: d,
|
|
|
112
98
|
|
|
113
99
|
ce: a,
|
|
114
100
|
|
|
115
|
-
ceb:
|
|
116
|
-
|
|
101
|
+
ceb: (n) => {
|
|
102
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);
|
|
117
103
|
return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';
|
|
118
104
|
},
|
|
119
105
|
|
|
@@ -123,32 +109,32 @@ chr: a,
|
|
|
123
109
|
|
|
124
110
|
ckb: a,
|
|
125
111
|
|
|
126
|
-
cs:
|
|
127
|
-
|
|
112
|
+
cs: (n) => {
|
|
113
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1];
|
|
128
114
|
return n == 1 && v0 ? 'one'
|
|
129
115
|
: (i >= 2 && i <= 4) && v0 ? 'few'
|
|
130
116
|
: !v0 ? 'many'
|
|
131
117
|
: 'other';
|
|
132
118
|
},
|
|
133
119
|
|
|
134
|
-
cy:
|
|
135
|
-
return n == 0 ? 'zero'
|
|
120
|
+
cy: (n) => n == 0 ? 'zero'
|
|
136
121
|
: n == 1 ? 'one'
|
|
137
122
|
: n == 2 ? 'two'
|
|
138
123
|
: n == 3 ? 'few'
|
|
139
124
|
: n == 6 ? 'many'
|
|
140
|
-
: 'other'
|
|
141
|
-
},
|
|
125
|
+
: 'other',
|
|
142
126
|
|
|
143
|
-
da:
|
|
144
|
-
|
|
127
|
+
da: (n) => {
|
|
128
|
+
const s = String(n).split('.'), i = s[0], t0 = Number(s[0]) == n;
|
|
145
129
|
return n == 1 || !t0 && (i == 0 || i == 1) ? 'one' : 'other';
|
|
146
130
|
},
|
|
147
131
|
|
|
148
132
|
de: d,
|
|
149
133
|
|
|
150
|
-
|
|
151
|
-
|
|
134
|
+
doi: c,
|
|
135
|
+
|
|
136
|
+
dsb: (n) => {
|
|
137
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);
|
|
152
138
|
return v0 && i100 == 1 || f100 == 1 ? 'one'
|
|
153
139
|
: v0 && i100 == 2 || f100 == 2 ? 'two'
|
|
154
140
|
: v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'
|
|
@@ -167,7 +153,12 @@ en: d,
|
|
|
167
153
|
|
|
168
154
|
eo: a,
|
|
169
155
|
|
|
170
|
-
es:
|
|
156
|
+
es: (n) => {
|
|
157
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);
|
|
158
|
+
return n == 1 ? 'one'
|
|
159
|
+
: i != 0 && i1000000 == 0 && v0 ? 'many'
|
|
160
|
+
: 'other';
|
|
161
|
+
},
|
|
171
162
|
|
|
172
163
|
et: d,
|
|
173
164
|
|
|
@@ -175,29 +166,30 @@ eu: a,
|
|
|
175
166
|
|
|
176
167
|
fa: c,
|
|
177
168
|
|
|
178
|
-
ff:
|
|
179
|
-
return n >= 0 && n < 2 ? 'one' : 'other';
|
|
180
|
-
},
|
|
169
|
+
ff: (n) => n >= 0 && n < 2 ? 'one' : 'other',
|
|
181
170
|
|
|
182
171
|
fi: d,
|
|
183
172
|
|
|
184
|
-
fil:
|
|
185
|
-
|
|
173
|
+
fil: (n) => {
|
|
174
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);
|
|
186
175
|
return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';
|
|
187
176
|
},
|
|
188
177
|
|
|
189
178
|
fo: a,
|
|
190
179
|
|
|
191
|
-
fr:
|
|
192
|
-
|
|
180
|
+
fr: (n) => {
|
|
181
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);
|
|
182
|
+
return n >= 0 && n < 2 ? 'one'
|
|
183
|
+
: i != 0 && i1000000 == 0 && v0 ? 'many'
|
|
184
|
+
: 'other';
|
|
193
185
|
},
|
|
194
186
|
|
|
195
187
|
fur: a,
|
|
196
188
|
|
|
197
189
|
fy: d,
|
|
198
190
|
|
|
199
|
-
ga:
|
|
200
|
-
|
|
191
|
+
ga: (n) => {
|
|
192
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n;
|
|
201
193
|
return n == 1 ? 'one'
|
|
202
194
|
: n == 2 ? 'two'
|
|
203
195
|
: (t0 && n >= 3 && n <= 6) ? 'few'
|
|
@@ -205,8 +197,8 @@ ga: function ga(n) {
|
|
|
205
197
|
: 'other';
|
|
206
198
|
},
|
|
207
199
|
|
|
208
|
-
gd:
|
|
209
|
-
|
|
200
|
+
gd: (n) => {
|
|
201
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n;
|
|
210
202
|
return (n == 1 || n == 11) ? 'one'
|
|
211
203
|
: (n == 2 || n == 12) ? 'two'
|
|
212
204
|
: ((t0 && n >= 3 && n <= 10) || (t0 && n >= 13 && n <= 19)) ? 'few'
|
|
@@ -221,8 +213,8 @@ gu: c,
|
|
|
221
213
|
|
|
222
214
|
guw: b,
|
|
223
215
|
|
|
224
|
-
gv:
|
|
225
|
-
|
|
216
|
+
gv: (n) => {
|
|
217
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);
|
|
226
218
|
return v0 && i10 == 1 ? 'one'
|
|
227
219
|
: v0 && i10 == 2 ? 'two'
|
|
228
220
|
: v0 && (i100 == 0 || i100 == 20 || i100 == 40 || i100 == 60 || i100 == 80) ? 'few'
|
|
@@ -234,8 +226,8 @@ ha: a,
|
|
|
234
226
|
|
|
235
227
|
haw: a,
|
|
236
228
|
|
|
237
|
-
he:
|
|
238
|
-
|
|
229
|
+
he: (n) => {
|
|
230
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1);
|
|
239
231
|
return n == 1 && v0 ? 'one'
|
|
240
232
|
: i == 2 && v0 ? 'two'
|
|
241
233
|
: v0 && (n < 0 || n > 10) && t0 && n10 == 0 ? 'many'
|
|
@@ -244,15 +236,17 @@ he: function he(n) {
|
|
|
244
236
|
|
|
245
237
|
hi: c,
|
|
246
238
|
|
|
247
|
-
|
|
248
|
-
|
|
239
|
+
hnj: e,
|
|
240
|
+
|
|
241
|
+
hr: (n) => {
|
|
242
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);
|
|
249
243
|
return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'
|
|
250
244
|
: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'
|
|
251
245
|
: 'other';
|
|
252
246
|
},
|
|
253
247
|
|
|
254
|
-
hsb:
|
|
255
|
-
|
|
248
|
+
hsb: (n) => {
|
|
249
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);
|
|
256
250
|
return v0 && i100 == 1 || f100 == 1 ? 'one'
|
|
257
251
|
: v0 && i100 == 2 || f100 == 2 ? 'two'
|
|
258
252
|
: v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'
|
|
@@ -261,9 +255,7 @@ hsb: function hsb(n) {
|
|
|
261
255
|
|
|
262
256
|
hu: a,
|
|
263
257
|
|
|
264
|
-
hy:
|
|
265
|
-
return n >= 0 && n < 2 ? 'one' : 'other';
|
|
266
|
-
},
|
|
258
|
+
hy: (n) => n >= 0 && n < 2 ? 'one' : 'other',
|
|
267
259
|
|
|
268
260
|
ia: d,
|
|
269
261
|
|
|
@@ -275,31 +267,26 @@ ii: e,
|
|
|
275
267
|
|
|
276
268
|
io: d,
|
|
277
269
|
|
|
278
|
-
is:
|
|
279
|
-
|
|
270
|
+
is: (n) => {
|
|
271
|
+
const s = String(n).split('.'), i = s[0], t0 = Number(s[0]) == n, i10 = i.slice(-1), i100 = i.slice(-2);
|
|
280
272
|
return t0 && i10 == 1 && i100 != 11 || !t0 ? 'one' : 'other';
|
|
281
273
|
},
|
|
282
274
|
|
|
283
|
-
it:
|
|
284
|
-
|
|
285
|
-
iu: f,
|
|
286
|
-
|
|
287
|
-
iw: function iw(n) {
|
|
288
|
-
var s = String(n).split('.'), i = s[0], v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1);
|
|
275
|
+
it: (n) => {
|
|
276
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);
|
|
289
277
|
return n == 1 && v0 ? 'one'
|
|
290
|
-
: i ==
|
|
291
|
-
: v0 && (n < 0 || n > 10) && t0 && n10 == 0 ? 'many'
|
|
278
|
+
: i != 0 && i1000000 == 0 && v0 ? 'many'
|
|
292
279
|
: 'other';
|
|
293
280
|
},
|
|
294
281
|
|
|
282
|
+
iu: f,
|
|
283
|
+
|
|
295
284
|
ja: e,
|
|
296
285
|
|
|
297
286
|
jbo: e,
|
|
298
287
|
|
|
299
288
|
jgo: a,
|
|
300
289
|
|
|
301
|
-
ji: d,
|
|
302
|
-
|
|
303
290
|
jmc: a,
|
|
304
291
|
|
|
305
292
|
jv: e,
|
|
@@ -308,9 +295,7 @@ jw: e,
|
|
|
308
295
|
|
|
309
296
|
ka: a,
|
|
310
297
|
|
|
311
|
-
kab:
|
|
312
|
-
return n >= 0 && n < 2 ? 'one' : 'other';
|
|
313
|
-
},
|
|
298
|
+
kab: (n) => n >= 0 && n < 2 ? 'one' : 'other',
|
|
314
299
|
|
|
315
300
|
kaj: a,
|
|
316
301
|
|
|
@@ -336,16 +321,14 @@ ks: a,
|
|
|
336
321
|
|
|
337
322
|
ksb: a,
|
|
338
323
|
|
|
339
|
-
ksh:
|
|
340
|
-
return n == 0 ? 'zero'
|
|
324
|
+
ksh: (n) => n == 0 ? 'zero'
|
|
341
325
|
: n == 1 ? 'one'
|
|
342
|
-
: 'other'
|
|
343
|
-
},
|
|
326
|
+
: 'other',
|
|
344
327
|
|
|
345
328
|
ku: a,
|
|
346
329
|
|
|
347
|
-
kw:
|
|
348
|
-
|
|
330
|
+
kw: (n) => {
|
|
331
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2), n1000 = t0 && s[0].slice(-3), n100000 = t0 && s[0].slice(-5), n1000000 = t0 && s[0].slice(-6);
|
|
349
332
|
return n == 0 ? 'zero'
|
|
350
333
|
: n == 1 ? 'one'
|
|
351
334
|
: (n100 == 2 || n100 == 22 || n100 == 42 || n100 == 62 || n100 == 82) || t0 && n1000 == 0 && ((n100000 >= 1000 && n100000 <= 20000) || n100000 == 40000 || n100000 == 60000 || n100000 == 80000) || n != 0 && n1000000 == 100000 ? 'two'
|
|
@@ -356,8 +339,8 @@ kw: function kw(n) {
|
|
|
356
339
|
|
|
357
340
|
ky: a,
|
|
358
341
|
|
|
359
|
-
lag:
|
|
360
|
-
|
|
342
|
+
lag: (n) => {
|
|
343
|
+
const s = String(n).split('.'), i = s[0];
|
|
361
344
|
return n == 0 ? 'zero'
|
|
362
345
|
: (i == 0 || i == 1) && n != 0 ? 'one'
|
|
363
346
|
: 'other';
|
|
@@ -367,22 +350,24 @@ lb: a,
|
|
|
367
350
|
|
|
368
351
|
lg: a,
|
|
369
352
|
|
|
353
|
+
lij: d,
|
|
354
|
+
|
|
370
355
|
lkt: e,
|
|
371
356
|
|
|
372
357
|
ln: b,
|
|
373
358
|
|
|
374
359
|
lo: e,
|
|
375
360
|
|
|
376
|
-
lt:
|
|
377
|
-
|
|
361
|
+
lt: (n) => {
|
|
362
|
+
const s = String(n).split('.'), f = s[1] || '', t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);
|
|
378
363
|
return n10 == 1 && (n100 < 11 || n100 > 19) ? 'one'
|
|
379
364
|
: (n10 >= 2 && n10 <= 9) && (n100 < 11 || n100 > 19) ? 'few'
|
|
380
365
|
: f != 0 ? 'many'
|
|
381
366
|
: 'other';
|
|
382
367
|
},
|
|
383
368
|
|
|
384
|
-
lv:
|
|
385
|
-
|
|
369
|
+
lv: (n) => {
|
|
370
|
+
const s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);
|
|
386
371
|
return t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'
|
|
387
372
|
: n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'
|
|
388
373
|
: 'other';
|
|
@@ -394,8 +379,8 @@ mg: b,
|
|
|
394
379
|
|
|
395
380
|
mgo: a,
|
|
396
381
|
|
|
397
|
-
mk:
|
|
398
|
-
|
|
382
|
+
mk: (n) => {
|
|
383
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);
|
|
399
384
|
return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : 'other';
|
|
400
385
|
},
|
|
401
386
|
|
|
@@ -403,8 +388,8 @@ ml: a,
|
|
|
403
388
|
|
|
404
389
|
mn: a,
|
|
405
390
|
|
|
406
|
-
mo:
|
|
407
|
-
|
|
391
|
+
mo: (n) => {
|
|
392
|
+
const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);
|
|
408
393
|
return n == 1 && v0 ? 'one'
|
|
409
394
|
: !v0 || n == 0 || (n100 >= 2 && n100 <= 19) ? 'few'
|
|
410
395
|
: 'other';
|
|
@@ -414,8 +399,8 @@ mr: a,
|
|
|
414
399
|
|
|
415
400
|
ms: e,
|
|
416
401
|
|
|
417
|
-
mt:
|
|
418
|
-
|
|
402
|
+
mt: (n) => {
|
|
403
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);
|
|
419
404
|
return n == 1 ? 'one'
|
|
420
405
|
: n == 0 || (n100 >= 2 && n100 <= 10) ? 'few'
|
|
421
406
|
: (n100 >= 11 && n100 <= 19) ? 'many'
|
|
@@ -464,16 +449,18 @@ pa: b,
|
|
|
464
449
|
|
|
465
450
|
pap: a,
|
|
466
451
|
|
|
467
|
-
|
|
468
|
-
|
|
452
|
+
pcm: c,
|
|
453
|
+
|
|
454
|
+
pl: (n) => {
|
|
455
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);
|
|
469
456
|
return n == 1 && v0 ? 'one'
|
|
470
457
|
: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'
|
|
471
458
|
: v0 && i != 1 && (i10 == 0 || i10 == 1) || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 12 && i100 <= 14) ? 'many'
|
|
472
459
|
: 'other';
|
|
473
460
|
},
|
|
474
461
|
|
|
475
|
-
prg:
|
|
476
|
-
|
|
462
|
+
prg: (n) => {
|
|
463
|
+
const s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);
|
|
477
464
|
return t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'
|
|
478
465
|
: n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'
|
|
479
466
|
: 'other';
|
|
@@ -481,17 +468,24 @@ prg: function prg(n) {
|
|
|
481
468
|
|
|
482
469
|
ps: a,
|
|
483
470
|
|
|
484
|
-
pt:
|
|
485
|
-
|
|
486
|
-
return (i == 0 || i == 1) ? 'one'
|
|
471
|
+
pt: (n) => {
|
|
472
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);
|
|
473
|
+
return (i == 0 || i == 1) ? 'one'
|
|
474
|
+
: i != 0 && i1000000 == 0 && v0 ? 'many'
|
|
475
|
+
: 'other';
|
|
487
476
|
},
|
|
488
477
|
|
|
489
|
-
pt_PT:
|
|
478
|
+
pt_PT: (n) => {
|
|
479
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);
|
|
480
|
+
return n == 1 && v0 ? 'one'
|
|
481
|
+
: i != 0 && i1000000 == 0 && v0 ? 'many'
|
|
482
|
+
: 'other';
|
|
483
|
+
},
|
|
490
484
|
|
|
491
485
|
rm: a,
|
|
492
486
|
|
|
493
|
-
ro:
|
|
494
|
-
|
|
487
|
+
ro: (n) => {
|
|
488
|
+
const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);
|
|
495
489
|
return n == 1 && v0 ? 'one'
|
|
496
490
|
: !v0 || n == 0 || (n100 >= 2 && n100 <= 19) ? 'few'
|
|
497
491
|
: 'other';
|
|
@@ -499,10 +493,8 @@ ro: function ro(n) {
|
|
|
499
493
|
|
|
500
494
|
rof: a,
|
|
501
495
|
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
ru: function ru(n) {
|
|
505
|
-
var s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);
|
|
496
|
+
ru: (n) => {
|
|
497
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);
|
|
506
498
|
return v0 && i10 == 1 && i100 != 11 ? 'one'
|
|
507
499
|
: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'
|
|
508
500
|
: v0 && i10 == 0 || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 11 && i100 <= 14) ? 'many'
|
|
@@ -515,6 +507,8 @@ sah: e,
|
|
|
515
507
|
|
|
516
508
|
saq: a,
|
|
517
509
|
|
|
510
|
+
sat: f,
|
|
511
|
+
|
|
518
512
|
sc: d,
|
|
519
513
|
|
|
520
514
|
scn: d,
|
|
@@ -531,35 +525,35 @@ ses: e,
|
|
|
531
525
|
|
|
532
526
|
sg: e,
|
|
533
527
|
|
|
534
|
-
sh:
|
|
535
|
-
|
|
528
|
+
sh: (n) => {
|
|
529
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);
|
|
536
530
|
return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'
|
|
537
531
|
: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'
|
|
538
532
|
: 'other';
|
|
539
533
|
},
|
|
540
534
|
|
|
541
|
-
shi:
|
|
542
|
-
|
|
535
|
+
shi: (n) => {
|
|
536
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n;
|
|
543
537
|
return n >= 0 && n <= 1 ? 'one'
|
|
544
538
|
: (t0 && n >= 2 && n <= 10) ? 'few'
|
|
545
539
|
: 'other';
|
|
546
540
|
},
|
|
547
541
|
|
|
548
|
-
si:
|
|
549
|
-
|
|
542
|
+
si: (n) => {
|
|
543
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '';
|
|
550
544
|
return (n == 0 || n == 1) || i == 0 && f == 1 ? 'one' : 'other';
|
|
551
545
|
},
|
|
552
546
|
|
|
553
|
-
sk:
|
|
554
|
-
|
|
547
|
+
sk: (n) => {
|
|
548
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1];
|
|
555
549
|
return n == 1 && v0 ? 'one'
|
|
556
550
|
: (i >= 2 && i <= 4) && v0 ? 'few'
|
|
557
551
|
: !v0 ? 'many'
|
|
558
552
|
: 'other';
|
|
559
553
|
},
|
|
560
554
|
|
|
561
|
-
sl:
|
|
562
|
-
|
|
555
|
+
sl: (n) => {
|
|
556
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i100 = i.slice(-2);
|
|
563
557
|
return v0 && i100 == 1 ? 'one'
|
|
564
558
|
: v0 && i100 == 2 ? 'two'
|
|
565
559
|
: v0 && (i100 == 3 || i100 == 4) || !v0 ? 'few'
|
|
@@ -582,8 +576,8 @@ so: a,
|
|
|
582
576
|
|
|
583
577
|
sq: a,
|
|
584
578
|
|
|
585
|
-
sr:
|
|
586
|
-
|
|
579
|
+
sr: (n) => {
|
|
580
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);
|
|
587
581
|
return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'
|
|
588
582
|
: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'
|
|
589
583
|
: 'other';
|
|
@@ -617,8 +611,8 @@ tig: a,
|
|
|
617
611
|
|
|
618
612
|
tk: a,
|
|
619
613
|
|
|
620
|
-
tl:
|
|
621
|
-
|
|
614
|
+
tl: (n) => {
|
|
615
|
+
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);
|
|
622
616
|
return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';
|
|
623
617
|
},
|
|
624
618
|
|
|
@@ -626,25 +620,29 @@ tn: a,
|
|
|
626
620
|
|
|
627
621
|
to: e,
|
|
628
622
|
|
|
623
|
+
tpi: e,
|
|
624
|
+
|
|
629
625
|
tr: a,
|
|
630
626
|
|
|
631
627
|
ts: a,
|
|
632
628
|
|
|
633
|
-
tzm:
|
|
634
|
-
|
|
629
|
+
tzm: (n) => {
|
|
630
|
+
const s = String(n).split('.'), t0 = Number(s[0]) == n;
|
|
635
631
|
return (n == 0 || n == 1) || (t0 && n >= 11 && n <= 99) ? 'one' : 'other';
|
|
636
632
|
},
|
|
637
633
|
|
|
638
634
|
ug: a,
|
|
639
635
|
|
|
640
|
-
uk:
|
|
641
|
-
|
|
636
|
+
uk: (n) => {
|
|
637
|
+
const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);
|
|
642
638
|
return v0 && i10 == 1 && i100 != 11 ? 'one'
|
|
643
639
|
: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'
|
|
644
640
|
: v0 && i10 == 0 || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 11 && i100 <= 14) ? 'many'
|
|
645
641
|
: 'other';
|
|
646
642
|
},
|
|
647
643
|
|
|
644
|
+
und: e,
|
|
645
|
+
|
|
648
646
|
ur: d,
|
|
649
647
|
|
|
650
648
|
uz: a,
|