make-plural 6.2.2 → 7.0.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 +109 -122
- package/cardinals.mjs +140 -153
- 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 +58 -83
- package/ordinals.mjs +58 -81
- package/package.json +23 -24
- package/pluralCategories.d.ts +5 -1
- package/pluralCategories.js +8 -8
- package/pluralCategories.mjs +5 -1
- package/plurals.d.ts +215 -211
- package/plurals.js +208 -207
- package/plurals.mjs +268 -267
- package/ranges.d.ts +93 -0
- package/ranges.js +209 -0
- package/ranges.mjs +112 -0
- package/CHANGELOG.md +0 -113
package/LICENSE
CHANGED
|
@@ -1,14 +1,32 @@
|
|
|
1
|
-
Copyright
|
|
1
|
+
Copyright © Eemeli Aro <eemeli@gmail.com>
|
|
2
|
+
Copyright © 1991-2020 Unicode, Inc. All rights reserved.
|
|
3
|
+
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
|
|
2
4
|
|
|
3
|
-
Permission
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of the Unicode data files and any associated documentation
|
|
7
|
+
(the "Data Files") or Unicode software and any associated documentation
|
|
8
|
+
(the "Software") to deal in the Data Files or Software
|
|
9
|
+
without restriction, including without limitation the rights to use,
|
|
10
|
+
copy, modify, merge, publish, distribute, and/or sell copies of
|
|
11
|
+
the Data Files or Software, and to permit persons to whom the Data Files
|
|
12
|
+
or Software are furnished to do so, provided that either
|
|
13
|
+
(a) this copyright and permission notice appear with all copies
|
|
14
|
+
of the Data Files or Software, or
|
|
15
|
+
(b) this copyright and permission notice appear in associated
|
|
16
|
+
Documentation.
|
|
6
17
|
|
|
7
|
-
THE SOFTWARE
|
|
8
|
-
|
|
9
|
-
MERCHANTABILITY
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
OR
|
|
18
|
+
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
19
|
+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
|
20
|
+
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
|
22
|
+
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
|
|
23
|
+
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
25
|
+
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
26
|
+
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
27
|
+
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
|
|
14
28
|
|
|
29
|
+
Except as contained in this notice, the name of a copyright holder
|
|
30
|
+
shall not be used in advertising or otherwise to promote the sale,
|
|
31
|
+
use or other dealings in these Data Files or Software without prior
|
|
32
|
+
written authorization of the copyright holder.
|
package/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# make-plural
|
|
2
2
|
|
|
3
|
-
`make-plural` provides JavaScript functions determining the pluralization categories of the approximately 200 languages included in the [Unicode CLDR].
|
|
3
|
+
`make-plural` provides JavaScript functions determining the pluralization categories of the approximately 200 languages included in the [Unicode CLDR].
|
|
4
|
+
In addition to the more commonly considered cardinal plurals (e.g. one book, two books), it also support ordinal plurals (e.g. 1st book, 2nd book, etc).
|
|
5
|
+
It's used internally by the [intl-pluralrules] polyfill.
|
|
4
6
|
|
|
5
|
-
The categorization functions are pre-compiled, require no runtime dependencies, and should compress to about 2.5kB.
|
|
7
|
+
The categorization functions are pre-compiled, require no runtime dependencies, and should compress to about 2.5kB.
|
|
8
|
+
The ES module exports in particular are designed to work well with tree-shaking, allowing for further size savings.
|
|
9
|
+
In order to generate an even smaller file from a subset of all possible language or to otherwise customise the modules, use [make-plural-cli] or [make-plural-compiler].
|
|
6
10
|
|
|
7
11
|
[intl-pluralrules]: https://www.npmjs.com/package/intl-pluralrules
|
|
8
12
|
[unicode cldr]: http://cldr.unicode.org/
|
|
@@ -18,21 +22,38 @@ npm install make-plural
|
|
|
18
22
|
```js
|
|
19
23
|
import * as Plurals from 'make-plural/plurals' // or just 'make-plural'
|
|
20
24
|
import * as Cardinals from 'make-plural/cardinals'
|
|
25
|
+
import * as Examples from 'make-plural/examples'
|
|
21
26
|
import * as Ordinals from 'make-plural/ordinals'
|
|
22
27
|
import * as Categories from 'make-plural/pluralCategories'
|
|
28
|
+
import * as PluralRanges from 'make-plural/ranges'
|
|
23
29
|
```
|
|
24
30
|
|
|
25
|
-
Each of the endpoints is available with both UMD (.js) and ES (.mjs) packaging.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
Each of the endpoints is available with both UMD (.js) and ES (.mjs) packaging.
|
|
32
|
+
- `Cardinals`, `Ordinals` and `Plurals` each export a set of functions keyed by locale code,
|
|
33
|
+
returning the pluralization category for the input (either a number or a string representation of a number).
|
|
34
|
+
`Plurals` functions also accept a second boolean parameter to return
|
|
35
|
+
the ordinal (`true`) rather than cardinal (`false`, default) plural category.
|
|
36
|
+
Note that `Ordinals` includes a slightly smaller subset of locales than `Cardinals` and `Plurals`,
|
|
37
|
+
due to a lack of data in the CLDR.
|
|
38
|
+
- `PluralRanges` provides a set of functions similarly keyed by locale code,
|
|
39
|
+
but returning the pliralization category of a numerical range,
|
|
40
|
+
given the corresponding categories of its start and end values as arguments.
|
|
41
|
+
- `Categories` has a similar structure,
|
|
42
|
+
but contains for each language an array of the pluralization categories
|
|
43
|
+
the cardinal and ordinal rules that that language's pluralization function may output.
|
|
44
|
+
- `Examples` provide sample numeric values for each language's categories.
|
|
45
|
+
|
|
46
|
+
The object keys are named using the corresponding 2-3 character [language code].
|
|
47
|
+
Due to JavaScript identifier restrictions, there are two exceptions:
|
|
48
|
+
Portugese as spoken in Portugal (`pt-PT`; `pt` is Brazilian Portuguese) is available as `pt_PT`, and the now-deprecated `in` subtag for Indonesian (preferred: `id`) is available as `_in`.
|
|
49
|
+
The transformation used for these names is available as [safe-identifier] on npm.
|
|
30
50
|
|
|
31
51
|
[language]: http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
|
|
32
52
|
[language code]: https://www.unicode.org/cldr/charts/latest/supplemental/languages_and_scripts.html
|
|
33
53
|
[safe-identifier]: https://www.npmjs.com/package/safe-identifier
|
|
34
54
|
|
|
35
|
-
The package file paths and exports are structured in a manner that should allow transparent usage in any module system.
|
|
55
|
+
The package file paths and exports are structured in a manner that should allow transparent usage in any module system.
|
|
56
|
+
In particular, when importing as an ES6 module, tree shaking should be able drop all but the explicitly used functions from the output, provided that **named rather than wildcard imports** are used.
|
|
36
57
|
|
|
37
58
|
```js
|
|
38
59
|
import { en } from 'make-plural'
|
|
@@ -43,14 +64,13 @@ en(2) // 'other'
|
|
|
43
64
|
en(2, true) // 'two' (ordinal)
|
|
44
65
|
|
|
45
66
|
String(en)
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
// return (n == 1 && v0) ? 'one' : 'other';
|
|
67
|
+
// (n, ord) => {
|
|
68
|
+
// const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);
|
|
69
|
+
// if (ord) return n10 == 1 && n100 != 11 ? 'one'
|
|
70
|
+
// : n10 == 2 && n100 != 12 ? 'two'
|
|
71
|
+
// : n10 == 3 && n100 != 13 ? 'few'
|
|
72
|
+
// : 'other';
|
|
73
|
+
// return n == 1 && v0 ? 'one' : 'other';
|
|
54
74
|
// }
|
|
55
75
|
|
|
56
76
|
import { en as ordinalEn } from 'make-plural/ordinals'
|
|
@@ -73,4 +93,12 @@ import * as Categories from 'make-plural/pluralCategories'
|
|
|
73
93
|
// ...
|
|
74
94
|
// zh: { cardinal: [ 'other' ], ordinal: [ 'other' ] },
|
|
75
95
|
// zu: { cardinal: [ 'one', 'other' ], ordinal: [ 'other' ] } }
|
|
96
|
+
|
|
97
|
+
import { en as rangeEn, ro as rangeRo } from 'make-plural/ranges'
|
|
98
|
+
|
|
99
|
+
String(rangeEn)
|
|
100
|
+
// (start, end) => "other"
|
|
101
|
+
|
|
102
|
+
String(rangeRo)
|
|
103
|
+
// (start, end) => end === "few" ? "few" : end === "one" ? "few" : "other"
|
|
76
104
|
```
|
package/cardinals.d.ts
CHANGED
|
@@ -1,213 +1,217 @@
|
|
|
1
1
|
export type PluralCategory = "zero" | "one" | "two" | "few" | "many" | "other";
|
|
2
2
|
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
33
|
-
export
|
|
34
|
-
export
|
|
35
|
-
export
|
|
36
|
-
export
|
|
37
|
-
export
|
|
38
|
-
export
|
|
39
|
-
export
|
|
40
|
-
export
|
|
41
|
-
export
|
|
42
|
-
export
|
|
43
|
-
export
|
|
44
|
-
export
|
|
45
|
-
export
|
|
46
|
-
export
|
|
47
|
-
export
|
|
48
|
-
export
|
|
49
|
-
export
|
|
50
|
-
export
|
|
51
|
-
export
|
|
52
|
-
export
|
|
53
|
-
export
|
|
54
|
-
export
|
|
55
|
-
export
|
|
56
|
-
export
|
|
57
|
-
export
|
|
58
|
-
export
|
|
59
|
-
export
|
|
60
|
-
export
|
|
61
|
-
export
|
|
62
|
-
export
|
|
63
|
-
export
|
|
64
|
-
export
|
|
65
|
-
export
|
|
66
|
-
export
|
|
67
|
-
export
|
|
68
|
-
export
|
|
69
|
-
export
|
|
70
|
-
export
|
|
71
|
-
export
|
|
72
|
-
export
|
|
73
|
-
export
|
|
74
|
-
export
|
|
75
|
-
export
|
|
76
|
-
export
|
|
77
|
-
export
|
|
78
|
-
export
|
|
79
|
-
export
|
|
80
|
-
export
|
|
81
|
-
export
|
|
82
|
-
export
|
|
83
|
-
export
|
|
84
|
-
export
|
|
85
|
-
export
|
|
86
|
-
export
|
|
87
|
-
export
|
|
88
|
-
export
|
|
89
|
-
export
|
|
90
|
-
export
|
|
91
|
-
export
|
|
92
|
-
export
|
|
93
|
-
export
|
|
94
|
-
export
|
|
95
|
-
export
|
|
96
|
-
export
|
|
97
|
-
export
|
|
98
|
-
export
|
|
99
|
-
export
|
|
100
|
-
export
|
|
101
|
-
export
|
|
102
|
-
export
|
|
103
|
-
export
|
|
104
|
-
export
|
|
105
|
-
export
|
|
106
|
-
export
|
|
107
|
-
export
|
|
108
|
-
export
|
|
109
|
-
export
|
|
110
|
-
export
|
|
111
|
-
export
|
|
112
|
-
export
|
|
113
|
-
export
|
|
114
|
-
export
|
|
115
|
-
export
|
|
116
|
-
export
|
|
117
|
-
export
|
|
118
|
-
export
|
|
119
|
-
export
|
|
120
|
-
export
|
|
121
|
-
export
|
|
122
|
-
export
|
|
123
|
-
export
|
|
124
|
-
export
|
|
125
|
-
export
|
|
126
|
-
export
|
|
127
|
-
export
|
|
128
|
-
export
|
|
129
|
-
export
|
|
130
|
-
export
|
|
131
|
-
export
|
|
132
|
-
export
|
|
133
|
-
export
|
|
134
|
-
export
|
|
135
|
-
export
|
|
136
|
-
export
|
|
137
|
-
export
|
|
138
|
-
export
|
|
139
|
-
export
|
|
140
|
-
export
|
|
141
|
-
export
|
|
142
|
-
export
|
|
143
|
-
export
|
|
144
|
-
export
|
|
145
|
-
export
|
|
146
|
-
export
|
|
147
|
-
export
|
|
148
|
-
export
|
|
149
|
-
export
|
|
150
|
-
export
|
|
151
|
-
export
|
|
152
|
-
export
|
|
153
|
-
export
|
|
154
|
-
export
|
|
155
|
-
export
|
|
156
|
-
export
|
|
157
|
-
export
|
|
158
|
-
export
|
|
159
|
-
export
|
|
160
|
-
export
|
|
161
|
-
export
|
|
162
|
-
export
|
|
163
|
-
export
|
|
164
|
-
export
|
|
165
|
-
export
|
|
166
|
-
export
|
|
167
|
-
export
|
|
168
|
-
export
|
|
169
|
-
export
|
|
170
|
-
export
|
|
171
|
-
export
|
|
172
|
-
export
|
|
173
|
-
export
|
|
174
|
-
export
|
|
175
|
-
export
|
|
176
|
-
export
|
|
177
|
-
export
|
|
178
|
-
export
|
|
179
|
-
export
|
|
180
|
-
export
|
|
181
|
-
export
|
|
182
|
-
export
|
|
183
|
-
export
|
|
184
|
-
export
|
|
185
|
-
export
|
|
186
|
-
export
|
|
187
|
-
export
|
|
188
|
-
export
|
|
189
|
-
export
|
|
190
|
-
export
|
|
191
|
-
export
|
|
192
|
-
export
|
|
193
|
-
export
|
|
194
|
-
export
|
|
195
|
-
export
|
|
196
|
-
export
|
|
197
|
-
export
|
|
198
|
-
export
|
|
199
|
-
export
|
|
200
|
-
export
|
|
201
|
-
export
|
|
202
|
-
export
|
|
203
|
-
export
|
|
204
|
-
export
|
|
205
|
-
export
|
|
206
|
-
export
|
|
207
|
-
export
|
|
208
|
-
export
|
|
209
|
-
export
|
|
210
|
-
export
|
|
211
|
-
export
|
|
212
|
-
export
|
|
213
|
-
export
|
|
3
|
+
export const af: (n: number | string) => "one" | "other";
|
|
4
|
+
export const ak: (n: number | string) => "one" | "other";
|
|
5
|
+
export const am: (n: number | string) => "one" | "other";
|
|
6
|
+
export const an: (n: number | string) => "one" | "other";
|
|
7
|
+
export const ar: (n: number | string) => "zero" | "one" | "two" | "few" | "many" | "other";
|
|
8
|
+
export const ars: (n: number | string) => "zero" | "one" | "two" | "few" | "many" | "other";
|
|
9
|
+
export const as: (n: number | string) => "one" | "other";
|
|
10
|
+
export const asa: (n: number | string) => "one" | "other";
|
|
11
|
+
export const ast: (n: number | string) => "one" | "other";
|
|
12
|
+
export const az: (n: number | string) => "one" | "other";
|
|
13
|
+
export const be: (n: number | string) => "one" | "few" | "many" | "other";
|
|
14
|
+
export const bem: (n: number | string) => "one" | "other";
|
|
15
|
+
export const bez: (n: number | string) => "one" | "other";
|
|
16
|
+
export const bg: (n: number | string) => "one" | "other";
|
|
17
|
+
export const bho: (n: number | string) => "one" | "other";
|
|
18
|
+
export const bm: (n: number | string) => "other";
|
|
19
|
+
export const bn: (n: number | string) => "one" | "other";
|
|
20
|
+
export const bo: (n: number | string) => "other";
|
|
21
|
+
export const br: (n: number | string) => "one" | "two" | "few" | "many" | "other";
|
|
22
|
+
export const brx: (n: number | string) => "one" | "other";
|
|
23
|
+
export const bs: (n: number | string) => "one" | "few" | "other";
|
|
24
|
+
export const ca: (n: number | string) => "one" | "other";
|
|
25
|
+
export const ce: (n: number | string) => "one" | "other";
|
|
26
|
+
export const ceb: (n: number | string) => "one" | "other";
|
|
27
|
+
export const cgg: (n: number | string) => "one" | "other";
|
|
28
|
+
export const chr: (n: number | string) => "one" | "other";
|
|
29
|
+
export const ckb: (n: number | string) => "one" | "other";
|
|
30
|
+
export const cs: (n: number | string) => "one" | "few" | "many" | "other";
|
|
31
|
+
export const cy: (n: number | string) => "zero" | "one" | "two" | "few" | "many" | "other";
|
|
32
|
+
export const da: (n: number | string) => "one" | "other";
|
|
33
|
+
export const de: (n: number | string) => "one" | "other";
|
|
34
|
+
export const doi: (n: number | string) => "one" | "other";
|
|
35
|
+
export const dsb: (n: number | string) => "one" | "two" | "few" | "other";
|
|
36
|
+
export const dv: (n: number | string) => "one" | "other";
|
|
37
|
+
export const dz: (n: number | string) => "other";
|
|
38
|
+
export const ee: (n: number | string) => "one" | "other";
|
|
39
|
+
export const el: (n: number | string) => "one" | "other";
|
|
40
|
+
export const en: (n: number | string) => "one" | "other";
|
|
41
|
+
export const eo: (n: number | string) => "one" | "other";
|
|
42
|
+
export const es: (n: number | string) => "one" | "other";
|
|
43
|
+
export const et: (n: number | string) => "one" | "other";
|
|
44
|
+
export const eu: (n: number | string) => "one" | "other";
|
|
45
|
+
export const fa: (n: number | string) => "one" | "other";
|
|
46
|
+
export const ff: (n: number | string) => "one" | "other";
|
|
47
|
+
export const fi: (n: number | string) => "one" | "other";
|
|
48
|
+
export const fil: (n: number | string) => "one" | "other";
|
|
49
|
+
export const fo: (n: number | string) => "one" | "other";
|
|
50
|
+
export const fr: (n: number | string) => "one" | "many" | "other";
|
|
51
|
+
export const fur: (n: number | string) => "one" | "other";
|
|
52
|
+
export const fy: (n: number | string) => "one" | "other";
|
|
53
|
+
export const ga: (n: number | string) => "one" | "two" | "few" | "many" | "other";
|
|
54
|
+
export const gd: (n: number | string) => "one" | "two" | "few" | "other";
|
|
55
|
+
export const gl: (n: number | string) => "one" | "other";
|
|
56
|
+
export const gsw: (n: number | string) => "one" | "other";
|
|
57
|
+
export const gu: (n: number | string) => "one" | "other";
|
|
58
|
+
export const guw: (n: number | string) => "one" | "other";
|
|
59
|
+
export const gv: (n: number | string) => "one" | "two" | "few" | "many" | "other";
|
|
60
|
+
export const ha: (n: number | string) => "one" | "other";
|
|
61
|
+
export const haw: (n: number | string) => "one" | "other";
|
|
62
|
+
export const he: (n: number | string) => "one" | "two" | "many" | "other";
|
|
63
|
+
export const hi: (n: number | string) => "one" | "other";
|
|
64
|
+
export const hr: (n: number | string) => "one" | "few" | "other";
|
|
65
|
+
export const hsb: (n: number | string) => "one" | "two" | "few" | "other";
|
|
66
|
+
export const hu: (n: number | string) => "one" | "other";
|
|
67
|
+
export const hy: (n: number | string) => "one" | "other";
|
|
68
|
+
export const ia: (n: number | string) => "one" | "other";
|
|
69
|
+
export const id: (n: number | string) => "other";
|
|
70
|
+
export const ig: (n: number | string) => "other";
|
|
71
|
+
export const ii: (n: number | string) => "other";
|
|
72
|
+
export const _in: (n: number | string) => "other";
|
|
73
|
+
export const io: (n: number | string) => "one" | "other";
|
|
74
|
+
export const is: (n: number | string) => "one" | "other";
|
|
75
|
+
export const it: (n: number | string) => "one" | "other";
|
|
76
|
+
export const iu: (n: number | string) => "one" | "two" | "other";
|
|
77
|
+
export const iw: (n: number | string) => "one" | "two" | "many" | "other";
|
|
78
|
+
export const ja: (n: number | string) => "other";
|
|
79
|
+
export const jbo: (n: number | string) => "other";
|
|
80
|
+
export const jgo: (n: number | string) => "one" | "other";
|
|
81
|
+
export const ji: (n: number | string) => "one" | "other";
|
|
82
|
+
export const jmc: (n: number | string) => "one" | "other";
|
|
83
|
+
export const jv: (n: number | string) => "other";
|
|
84
|
+
export const jw: (n: number | string) => "other";
|
|
85
|
+
export const ka: (n: number | string) => "one" | "other";
|
|
86
|
+
export const kab: (n: number | string) => "one" | "other";
|
|
87
|
+
export const kaj: (n: number | string) => "one" | "other";
|
|
88
|
+
export const kcg: (n: number | string) => "one" | "other";
|
|
89
|
+
export const kde: (n: number | string) => "other";
|
|
90
|
+
export const kea: (n: number | string) => "other";
|
|
91
|
+
export const kk: (n: number | string) => "one" | "other";
|
|
92
|
+
export const kkj: (n: number | string) => "one" | "other";
|
|
93
|
+
export const kl: (n: number | string) => "one" | "other";
|
|
94
|
+
export const km: (n: number | string) => "other";
|
|
95
|
+
export const kn: (n: number | string) => "one" | "other";
|
|
96
|
+
export const ko: (n: number | string) => "other";
|
|
97
|
+
export const ks: (n: number | string) => "one" | "other";
|
|
98
|
+
export const ksb: (n: number | string) => "one" | "other";
|
|
99
|
+
export const ksh: (n: number | string) => "zero" | "one" | "other";
|
|
100
|
+
export const ku: (n: number | string) => "one" | "other";
|
|
101
|
+
export const kw: (n: number | string) => "zero" | "one" | "two" | "few" | "many" | "other";
|
|
102
|
+
export const ky: (n: number | string) => "one" | "other";
|
|
103
|
+
export const lag: (n: number | string) => "zero" | "one" | "other";
|
|
104
|
+
export const lb: (n: number | string) => "one" | "other";
|
|
105
|
+
export const lg: (n: number | string) => "one" | "other";
|
|
106
|
+
export const lij: (n: number | string) => "one" | "other";
|
|
107
|
+
export const lkt: (n: number | string) => "other";
|
|
108
|
+
export const ln: (n: number | string) => "one" | "other";
|
|
109
|
+
export const lo: (n: number | string) => "other";
|
|
110
|
+
export const lt: (n: number | string) => "one" | "few" | "many" | "other";
|
|
111
|
+
export const lv: (n: number | string) => "zero" | "one" | "other";
|
|
112
|
+
export const mas: (n: number | string) => "one" | "other";
|
|
113
|
+
export const mg: (n: number | string) => "one" | "other";
|
|
114
|
+
export const mgo: (n: number | string) => "one" | "other";
|
|
115
|
+
export const mk: (n: number | string) => "one" | "other";
|
|
116
|
+
export const ml: (n: number | string) => "one" | "other";
|
|
117
|
+
export const mn: (n: number | string) => "one" | "other";
|
|
118
|
+
export const mo: (n: number | string) => "one" | "few" | "other";
|
|
119
|
+
export const mr: (n: number | string) => "one" | "other";
|
|
120
|
+
export const ms: (n: number | string) => "other";
|
|
121
|
+
export const mt: (n: number | string) => "one" | "few" | "many" | "other";
|
|
122
|
+
export const my: (n: number | string) => "other";
|
|
123
|
+
export const nah: (n: number | string) => "one" | "other";
|
|
124
|
+
export const naq: (n: number | string) => "one" | "two" | "other";
|
|
125
|
+
export const nb: (n: number | string) => "one" | "other";
|
|
126
|
+
export const nd: (n: number | string) => "one" | "other";
|
|
127
|
+
export const ne: (n: number | string) => "one" | "other";
|
|
128
|
+
export const nl: (n: number | string) => "one" | "other";
|
|
129
|
+
export const nn: (n: number | string) => "one" | "other";
|
|
130
|
+
export const nnh: (n: number | string) => "one" | "other";
|
|
131
|
+
export const no: (n: number | string) => "one" | "other";
|
|
132
|
+
export const nqo: (n: number | string) => "other";
|
|
133
|
+
export const nr: (n: number | string) => "one" | "other";
|
|
134
|
+
export const nso: (n: number | string) => "one" | "other";
|
|
135
|
+
export const ny: (n: number | string) => "one" | "other";
|
|
136
|
+
export const nyn: (n: number | string) => "one" | "other";
|
|
137
|
+
export const om: (n: number | string) => "one" | "other";
|
|
138
|
+
export const or: (n: number | string) => "one" | "other";
|
|
139
|
+
export const os: (n: number | string) => "one" | "other";
|
|
140
|
+
export const osa: (n: number | string) => "other";
|
|
141
|
+
export const pa: (n: number | string) => "one" | "other";
|
|
142
|
+
export const pap: (n: number | string) => "one" | "other";
|
|
143
|
+
export const pcm: (n: number | string) => "one" | "other";
|
|
144
|
+
export const pl: (n: number | string) => "one" | "few" | "many" | "other";
|
|
145
|
+
export const prg: (n: number | string) => "zero" | "one" | "other";
|
|
146
|
+
export const ps: (n: number | string) => "one" | "other";
|
|
147
|
+
export const pt: (n: number | string) => "one" | "other";
|
|
148
|
+
export const pt_PT: (n: number | string) => "one" | "other";
|
|
149
|
+
export const rm: (n: number | string) => "one" | "other";
|
|
150
|
+
export const ro: (n: number | string) => "one" | "few" | "other";
|
|
151
|
+
export const rof: (n: number | string) => "one" | "other";
|
|
152
|
+
export const root: (n: number | string) => "other";
|
|
153
|
+
export const ru: (n: number | string) => "one" | "few" | "many" | "other";
|
|
154
|
+
export const rwk: (n: number | string) => "one" | "other";
|
|
155
|
+
export const sah: (n: number | string) => "other";
|
|
156
|
+
export const saq: (n: number | string) => "one" | "other";
|
|
157
|
+
export const sat: (n: number | string) => "one" | "two" | "other";
|
|
158
|
+
export const sc: (n: number | string) => "one" | "other";
|
|
159
|
+
export const scn: (n: number | string) => "one" | "other";
|
|
160
|
+
export const sd: (n: number | string) => "one" | "other";
|
|
161
|
+
export const sdh: (n: number | string) => "one" | "other";
|
|
162
|
+
export const se: (n: number | string) => "one" | "two" | "other";
|
|
163
|
+
export const seh: (n: number | string) => "one" | "other";
|
|
164
|
+
export const ses: (n: number | string) => "other";
|
|
165
|
+
export const sg: (n: number | string) => "other";
|
|
166
|
+
export const sh: (n: number | string) => "one" | "few" | "other";
|
|
167
|
+
export const shi: (n: number | string) => "one" | "few" | "other";
|
|
168
|
+
export const si: (n: number | string) => "one" | "other";
|
|
169
|
+
export const sk: (n: number | string) => "one" | "few" | "many" | "other";
|
|
170
|
+
export const sl: (n: number | string) => "one" | "two" | "few" | "other";
|
|
171
|
+
export const sma: (n: number | string) => "one" | "two" | "other";
|
|
172
|
+
export const smi: (n: number | string) => "one" | "two" | "other";
|
|
173
|
+
export const smj: (n: number | string) => "one" | "two" | "other";
|
|
174
|
+
export const smn: (n: number | string) => "one" | "two" | "other";
|
|
175
|
+
export const sms: (n: number | string) => "one" | "two" | "other";
|
|
176
|
+
export const sn: (n: number | string) => "one" | "other";
|
|
177
|
+
export const so: (n: number | string) => "one" | "other";
|
|
178
|
+
export const sq: (n: number | string) => "one" | "other";
|
|
179
|
+
export const sr: (n: number | string) => "one" | "few" | "other";
|
|
180
|
+
export const ss: (n: number | string) => "one" | "other";
|
|
181
|
+
export const ssy: (n: number | string) => "one" | "other";
|
|
182
|
+
export const st: (n: number | string) => "one" | "other";
|
|
183
|
+
export const su: (n: number | string) => "other";
|
|
184
|
+
export const sv: (n: number | string) => "one" | "other";
|
|
185
|
+
export const sw: (n: number | string) => "one" | "other";
|
|
186
|
+
export const syr: (n: number | string) => "one" | "other";
|
|
187
|
+
export const ta: (n: number | string) => "one" | "other";
|
|
188
|
+
export const te: (n: number | string) => "one" | "other";
|
|
189
|
+
export const teo: (n: number | string) => "one" | "other";
|
|
190
|
+
export const th: (n: number | string) => "other";
|
|
191
|
+
export const ti: (n: number | string) => "one" | "other";
|
|
192
|
+
export const tig: (n: number | string) => "one" | "other";
|
|
193
|
+
export const tk: (n: number | string) => "one" | "other";
|
|
194
|
+
export const tl: (n: number | string) => "one" | "other";
|
|
195
|
+
export const tn: (n: number | string) => "one" | "other";
|
|
196
|
+
export const to: (n: number | string) => "other";
|
|
197
|
+
export const tr: (n: number | string) => "one" | "other";
|
|
198
|
+
export const ts: (n: number | string) => "one" | "other";
|
|
199
|
+
export const tzm: (n: number | string) => "one" | "other";
|
|
200
|
+
export const ug: (n: number | string) => "one" | "other";
|
|
201
|
+
export const uk: (n: number | string) => "one" | "few" | "many" | "other";
|
|
202
|
+
export const ur: (n: number | string) => "one" | "other";
|
|
203
|
+
export const uz: (n: number | string) => "one" | "other";
|
|
204
|
+
export const ve: (n: number | string) => "one" | "other";
|
|
205
|
+
export const vi: (n: number | string) => "other";
|
|
206
|
+
export const vo: (n: number | string) => "one" | "other";
|
|
207
|
+
export const vun: (n: number | string) => "one" | "other";
|
|
208
|
+
export const wa: (n: number | string) => "one" | "other";
|
|
209
|
+
export const wae: (n: number | string) => "one" | "other";
|
|
210
|
+
export const wo: (n: number | string) => "other";
|
|
211
|
+
export const xh: (n: number | string) => "one" | "other";
|
|
212
|
+
export const xog: (n: number | string) => "one" | "other";
|
|
213
|
+
export const yi: (n: number | string) => "one" | "other";
|
|
214
|
+
export const yo: (n: number | string) => "other";
|
|
215
|
+
export const yue: (n: number | string) => "other";
|
|
216
|
+
export const zh: (n: number | string) => "other";
|
|
217
|
+
export const zu: (n: number | string) => "one" | "other";
|