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 CHANGED
@@ -1,14 +1,32 @@
1
- Copyright (c) 2014-2019 by Eemeli Aro <eemeli@gmail.com>
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 to use, copy, modify, and/or distribute this software for any
4
- purpose with or without fee is hereby granted, provided that the above
5
- copyright notice and this permission notice appear in all copies.
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 IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
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]. 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). It's used internally by the [intl-pluralrules] polyfill.
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. The ES module exports in particular are designed to work well with tree-shaking, allowing for further size savings. In order to generate an even smaller file from a subset of all possible language (or to drop ordinal plural support), use [make-plural-cli] or [make-plural-compiler].
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. `Cardinals`, `Ordinals` and `Plurals` each export a set of functions keyed by locale code, returning the pluralization category for the input (either a number or a string representation of a number). `Plurals` functions also accept a second boolean parameter to return the ordinal (`true`) rather than cardinal (`false`, default) plural category. Note that `Ordinals` includes a slightly smaller subset of locales than `Cardinals` and `Plurals`, due to a lack of data in the CLDR.
26
-
27
- `Categories` has a similar structure, but contains for each language an array of the pluralization categories the cardinal and ordinal rules that that language's pluralization function may output.
28
-
29
- The object keys are named using the corresponding 2-3 character [language code]. Due to JavaScript identifier restrictions, there are two exceptions: 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`. The transformation used for these names is available as [safe-identifier] on npm.
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. 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.
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
- // function en(n, ord) {
47
- // var s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n,
48
- // n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);
49
- // if (ord) return (n10 == 1 && n100 != 11) ? 'one'
50
- // : (n10 == 2 && n100 != 12) ? 'two'
51
- // : (n10 == 3 && n100 != 13) ? 'few'
52
- // : 'other';
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 function af(n: number | string): "one" | "other";
4
- export function ak(n: number | string): "one" | "other";
5
- export function am(n: number | string): "one" | "other";
6
- export function an(n: number | string): "one" | "other";
7
- export function ar(n: number | string): "zero" | "one" | "two" | "few" | "many" | "other";
8
- export function ars(n: number | string): "zero" | "one" | "two" | "few" | "many" | "other";
9
- export function as(n: number | string): "one" | "other";
10
- export function asa(n: number | string): "one" | "other";
11
- export function ast(n: number | string): "one" | "other";
12
- export function az(n: number | string): "one" | "other";
13
- export function be(n: number | string): "one" | "few" | "many" | "other";
14
- export function bem(n: number | string): "one" | "other";
15
- export function bez(n: number | string): "one" | "other";
16
- export function bg(n: number | string): "one" | "other";
17
- export function bho(n: number | string): "one" | "other";
18
- export function bm(n: number | string): "other";
19
- export function bn(n: number | string): "one" | "other";
20
- export function bo(n: number | string): "other";
21
- export function br(n: number | string): "one" | "two" | "few" | "many" | "other";
22
- export function brx(n: number | string): "one" | "other";
23
- export function bs(n: number | string): "one" | "few" | "other";
24
- export function ca(n: number | string): "one" | "other";
25
- export function ce(n: number | string): "one" | "other";
26
- export function ceb(n: number | string): "one" | "other";
27
- export function cgg(n: number | string): "one" | "other";
28
- export function chr(n: number | string): "one" | "other";
29
- export function ckb(n: number | string): "one" | "other";
30
- export function cs(n: number | string): "one" | "few" | "many" | "other";
31
- export function cy(n: number | string): "zero" | "one" | "two" | "few" | "many" | "other";
32
- export function da(n: number | string): "one" | "other";
33
- export function de(n: number | string): "one" | "other";
34
- export function dsb(n: number | string): "one" | "two" | "few" | "other";
35
- export function dv(n: number | string): "one" | "other";
36
- export function dz(n: number | string): "other";
37
- export function ee(n: number | string): "one" | "other";
38
- export function el(n: number | string): "one" | "other";
39
- export function en(n: number | string): "one" | "other";
40
- export function eo(n: number | string): "one" | "other";
41
- export function es(n: number | string): "one" | "other";
42
- export function et(n: number | string): "one" | "other";
43
- export function eu(n: number | string): "one" | "other";
44
- export function fa(n: number | string): "one" | "other";
45
- export function ff(n: number | string): "one" | "other";
46
- export function fi(n: number | string): "one" | "other";
47
- export function fil(n: number | string): "one" | "other";
48
- export function fo(n: number | string): "one" | "other";
49
- export function fr(n: number | string): "one" | "other";
50
- export function fur(n: number | string): "one" | "other";
51
- export function fy(n: number | string): "one" | "other";
52
- export function ga(n: number | string): "one" | "two" | "few" | "many" | "other";
53
- export function gd(n: number | string): "one" | "two" | "few" | "other";
54
- export function gl(n: number | string): "one" | "other";
55
- export function gsw(n: number | string): "one" | "other";
56
- export function gu(n: number | string): "one" | "other";
57
- export function guw(n: number | string): "one" | "other";
58
- export function gv(n: number | string): "one" | "two" | "few" | "many" | "other";
59
- export function ha(n: number | string): "one" | "other";
60
- export function haw(n: number | string): "one" | "other";
61
- export function he(n: number | string): "one" | "two" | "many" | "other";
62
- export function hi(n: number | string): "one" | "other";
63
- export function hr(n: number | string): "one" | "few" | "other";
64
- export function hsb(n: number | string): "one" | "two" | "few" | "other";
65
- export function hu(n: number | string): "one" | "other";
66
- export function hy(n: number | string): "one" | "other";
67
- export function ia(n: number | string): "one" | "other";
68
- export function id(n: number | string): "other";
69
- export function ig(n: number | string): "other";
70
- export function ii(n: number | string): "other";
71
- export function _in(n: number | string): "other";
72
- export function io(n: number | string): "one" | "other";
73
- export function is(n: number | string): "one" | "other";
74
- export function it(n: number | string): "one" | "other";
75
- export function iu(n: number | string): "one" | "two" | "other";
76
- export function iw(n: number | string): "one" | "two" | "many" | "other";
77
- export function ja(n: number | string): "other";
78
- export function jbo(n: number | string): "other";
79
- export function jgo(n: number | string): "one" | "other";
80
- export function ji(n: number | string): "one" | "other";
81
- export function jmc(n: number | string): "one" | "other";
82
- export function jv(n: number | string): "other";
83
- export function jw(n: number | string): "other";
84
- export function ka(n: number | string): "one" | "other";
85
- export function kab(n: number | string): "one" | "other";
86
- export function kaj(n: number | string): "one" | "other";
87
- export function kcg(n: number | string): "one" | "other";
88
- export function kde(n: number | string): "other";
89
- export function kea(n: number | string): "other";
90
- export function kk(n: number | string): "one" | "other";
91
- export function kkj(n: number | string): "one" | "other";
92
- export function kl(n: number | string): "one" | "other";
93
- export function km(n: number | string): "other";
94
- export function kn(n: number | string): "one" | "other";
95
- export function ko(n: number | string): "other";
96
- export function ks(n: number | string): "one" | "other";
97
- export function ksb(n: number | string): "one" | "other";
98
- export function ksh(n: number | string): "zero" | "one" | "other";
99
- export function ku(n: number | string): "one" | "other";
100
- export function kw(n: number | string): "zero" | "one" | "two" | "few" | "many" | "other";
101
- export function ky(n: number | string): "one" | "other";
102
- export function lag(n: number | string): "zero" | "one" | "other";
103
- export function lb(n: number | string): "one" | "other";
104
- export function lg(n: number | string): "one" | "other";
105
- export function lkt(n: number | string): "other";
106
- export function ln(n: number | string): "one" | "other";
107
- export function lo(n: number | string): "other";
108
- export function lt(n: number | string): "one" | "few" | "many" | "other";
109
- export function lv(n: number | string): "zero" | "one" | "other";
110
- export function mas(n: number | string): "one" | "other";
111
- export function mg(n: number | string): "one" | "other";
112
- export function mgo(n: number | string): "one" | "other";
113
- export function mk(n: number | string): "one" | "other";
114
- export function ml(n: number | string): "one" | "other";
115
- export function mn(n: number | string): "one" | "other";
116
- export function mo(n: number | string): "one" | "few" | "other";
117
- export function mr(n: number | string): "one" | "other";
118
- export function ms(n: number | string): "other";
119
- export function mt(n: number | string): "one" | "few" | "many" | "other";
120
- export function my(n: number | string): "other";
121
- export function nah(n: number | string): "one" | "other";
122
- export function naq(n: number | string): "one" | "two" | "other";
123
- export function nb(n: number | string): "one" | "other";
124
- export function nd(n: number | string): "one" | "other";
125
- export function ne(n: number | string): "one" | "other";
126
- export function nl(n: number | string): "one" | "other";
127
- export function nn(n: number | string): "one" | "other";
128
- export function nnh(n: number | string): "one" | "other";
129
- export function no(n: number | string): "one" | "other";
130
- export function nqo(n: number | string): "other";
131
- export function nr(n: number | string): "one" | "other";
132
- export function nso(n: number | string): "one" | "other";
133
- export function ny(n: number | string): "one" | "other";
134
- export function nyn(n: number | string): "one" | "other";
135
- export function om(n: number | string): "one" | "other";
136
- export function or(n: number | string): "one" | "other";
137
- export function os(n: number | string): "one" | "other";
138
- export function osa(n: number | string): "other";
139
- export function pa(n: number | string): "one" | "other";
140
- export function pap(n: number | string): "one" | "other";
141
- export function pl(n: number | string): "one" | "few" | "many" | "other";
142
- export function prg(n: number | string): "zero" | "one" | "other";
143
- export function ps(n: number | string): "one" | "other";
144
- export function pt(n: number | string): "one" | "other";
145
- export function pt_PT(n: number | string): "one" | "other";
146
- export function rm(n: number | string): "one" | "other";
147
- export function ro(n: number | string): "one" | "few" | "other";
148
- export function rof(n: number | string): "one" | "other";
149
- export function root(n: number | string): "other";
150
- export function ru(n: number | string): "one" | "few" | "many" | "other";
151
- export function rwk(n: number | string): "one" | "other";
152
- export function sah(n: number | string): "other";
153
- export function saq(n: number | string): "one" | "other";
154
- export function sc(n: number | string): "one" | "other";
155
- export function scn(n: number | string): "one" | "other";
156
- export function sd(n: number | string): "one" | "other";
157
- export function sdh(n: number | string): "one" | "other";
158
- export function se(n: number | string): "one" | "two" | "other";
159
- export function seh(n: number | string): "one" | "other";
160
- export function ses(n: number | string): "other";
161
- export function sg(n: number | string): "other";
162
- export function sh(n: number | string): "one" | "few" | "other";
163
- export function shi(n: number | string): "one" | "few" | "other";
164
- export function si(n: number | string): "one" | "other";
165
- export function sk(n: number | string): "one" | "few" | "many" | "other";
166
- export function sl(n: number | string): "one" | "two" | "few" | "other";
167
- export function sma(n: number | string): "one" | "two" | "other";
168
- export function smi(n: number | string): "one" | "two" | "other";
169
- export function smj(n: number | string): "one" | "two" | "other";
170
- export function smn(n: number | string): "one" | "two" | "other";
171
- export function sms(n: number | string): "one" | "two" | "other";
172
- export function sn(n: number | string): "one" | "other";
173
- export function so(n: number | string): "one" | "other";
174
- export function sq(n: number | string): "one" | "other";
175
- export function sr(n: number | string): "one" | "few" | "other";
176
- export function ss(n: number | string): "one" | "other";
177
- export function ssy(n: number | string): "one" | "other";
178
- export function st(n: number | string): "one" | "other";
179
- export function su(n: number | string): "other";
180
- export function sv(n: number | string): "one" | "other";
181
- export function sw(n: number | string): "one" | "other";
182
- export function syr(n: number | string): "one" | "other";
183
- export function ta(n: number | string): "one" | "other";
184
- export function te(n: number | string): "one" | "other";
185
- export function teo(n: number | string): "one" | "other";
186
- export function th(n: number | string): "other";
187
- export function ti(n: number | string): "one" | "other";
188
- export function tig(n: number | string): "one" | "other";
189
- export function tk(n: number | string): "one" | "other";
190
- export function tl(n: number | string): "one" | "other";
191
- export function tn(n: number | string): "one" | "other";
192
- export function to(n: number | string): "other";
193
- export function tr(n: number | string): "one" | "other";
194
- export function ts(n: number | string): "one" | "other";
195
- export function tzm(n: number | string): "one" | "other";
196
- export function ug(n: number | string): "one" | "other";
197
- export function uk(n: number | string): "one" | "few" | "many" | "other";
198
- export function ur(n: number | string): "one" | "other";
199
- export function uz(n: number | string): "one" | "other";
200
- export function ve(n: number | string): "one" | "other";
201
- export function vi(n: number | string): "other";
202
- export function vo(n: number | string): "one" | "other";
203
- export function vun(n: number | string): "one" | "other";
204
- export function wa(n: number | string): "one" | "other";
205
- export function wae(n: number | string): "one" | "other";
206
- export function wo(n: number | string): "other";
207
- export function xh(n: number | string): "one" | "other";
208
- export function xog(n: number | string): "one" | "other";
209
- export function yi(n: number | string): "one" | "other";
210
- export function yo(n: number | string): "other";
211
- export function yue(n: number | string): "other";
212
- export function zh(n: number | string): "other";
213
- export function zu(n: number | string): "one" | "other";
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";