@formatjs/intl-pluralrules 6.3.16 → 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.
Files changed (192) hide show
  1. package/index.d.ts +12 -9
  2. package/index.js +39 -143
  3. package/index.js.map +1 -1
  4. package/locale-data/af.js +26 -4
  5. package/locale-data/ak.js +2 -2
  6. package/locale-data/am.js +2 -2
  7. package/locale-data/an.js +2 -2
  8. package/locale-data/ar.js +32 -16
  9. package/locale-data/ars.js +32 -16
  10. package/locale-data/as.js +14 -14
  11. package/locale-data/asa.js +2 -2
  12. package/locale-data/az.js +26 -10
  13. package/locale-data/bal.js +4 -4
  14. package/locale-data/be.js +26 -10
  15. package/locale-data/bem.js +2 -2
  16. package/locale-data/bez.js +2 -2
  17. package/locale-data/bg.js +34 -4
  18. package/locale-data/bho.js +2 -2
  19. package/locale-data/blo.js +14 -14
  20. package/locale-data/bn.js +14 -14
  21. package/locale-data/br.js +28 -12
  22. package/locale-data/brx.js +2 -2
  23. package/locale-data/bs.js +22 -6
  24. package/locale-data/ca.js +28 -12
  25. package/locale-data/ce.js +2 -2
  26. package/locale-data/ceb.js +18 -2
  27. package/locale-data/cgg.js +2 -2
  28. package/locale-data/chr.js +2 -2
  29. package/locale-data/ckb.js +2 -2
  30. package/locale-data/cs.js +4 -4
  31. package/locale-data/csw.js +2 -2
  32. package/locale-data/cv.js +6 -6
  33. package/locale-data/cy.js +32 -32
  34. package/locale-data/da.js +2 -2
  35. package/locale-data/doi.js +2 -2
  36. package/locale-data/dsb.js +24 -8
  37. package/locale-data/dv.js +2 -2
  38. package/locale-data/ee.js +2 -2
  39. package/locale-data/el.js +2 -2
  40. package/locale-data/en.js +24 -8
  41. package/locale-data/eo.js +2 -2
  42. package/locale-data/es.js +28 -8
  43. package/locale-data/eu.js +2 -2
  44. package/locale-data/fa.js +2 -2
  45. package/locale-data/fil.js +20 -4
  46. package/locale-data/fo.js +2 -2
  47. package/locale-data/fr.js +24 -8
  48. package/locale-data/fur.js +2 -2
  49. package/locale-data/ga.js +14 -14
  50. package/locale-data/gd.js +16 -16
  51. package/locale-data/gl.js +24 -2
  52. package/locale-data/gsw.js +2 -2
  53. package/locale-data/gu.js +14 -14
  54. package/locale-data/guw.js +2 -2
  55. package/locale-data/gv.js +26 -10
  56. package/locale-data/ha.js +2 -2
  57. package/locale-data/haw.js +2 -2
  58. package/locale-data/hi.js +14 -14
  59. package/locale-data/hr.js +22 -6
  60. package/locale-data/hsb.js +24 -8
  61. package/locale-data/hu.js +4 -4
  62. package/locale-data/hy.js +2 -2
  63. package/locale-data/is.js +18 -2
  64. package/locale-data/it.js +22 -6
  65. package/locale-data/iu.js +4 -4
  66. package/locale-data/jgo.js +2 -2
  67. package/locale-data/jmc.js +2 -2
  68. package/locale-data/ka.js +22 -6
  69. package/locale-data/kaj.js +2 -2
  70. package/locale-data/kcg.js +2 -2
  71. package/locale-data/kk.js +20 -4
  72. package/locale-data/kkj.js +2 -2
  73. package/locale-data/kl.js +2 -2
  74. package/locale-data/kn.js +2 -2
  75. package/locale-data/kok-Latn.js +10 -10
  76. package/locale-data/kok.js +10 -10
  77. package/locale-data/ks.js +2 -2
  78. package/locale-data/ksb.js +2 -2
  79. package/locale-data/ksh.js +6 -6
  80. package/locale-data/ku.js +2 -2
  81. package/locale-data/kw.js +38 -22
  82. package/locale-data/ky.js +2 -2
  83. package/locale-data/lag.js +6 -6
  84. package/locale-data/lb.js +2 -2
  85. package/locale-data/lg.js +2 -2
  86. package/locale-data/lij.js +2 -2
  87. package/locale-data/lld.js +22 -6
  88. package/locale-data/ln.js +2 -2
  89. package/locale-data/lo.js +2 -2
  90. package/locale-data/lt.js +22 -6
  91. package/locale-data/lv.js +22 -6
  92. package/locale-data/mas.js +2 -2
  93. package/locale-data/mg.js +2 -2
  94. package/locale-data/mgo.js +2 -2
  95. package/locale-data/mk.js +26 -10
  96. package/locale-data/ml.js +2 -2
  97. package/locale-data/mn.js +2 -2
  98. package/locale-data/mo.js +22 -6
  99. package/locale-data/mr.js +10 -10
  100. package/locale-data/ms.js +2 -2
  101. package/locale-data/mt.js +28 -12
  102. package/locale-data/nah.js +2 -2
  103. package/locale-data/naq.js +4 -4
  104. package/locale-data/nb.js +2 -2
  105. package/locale-data/nd.js +2 -2
  106. package/locale-data/ne.js +4 -4
  107. package/locale-data/nn.js +2 -2
  108. package/locale-data/nnh.js +2 -2
  109. package/locale-data/no.js +2 -2
  110. package/locale-data/nr.js +2 -2
  111. package/locale-data/nso.js +2 -2
  112. package/locale-data/ny.js +2 -2
  113. package/locale-data/nyn.js +2 -2
  114. package/locale-data/om.js +2 -2
  115. package/locale-data/or.js +14 -14
  116. package/locale-data/os.js +2 -2
  117. package/locale-data/pa.js +2 -2
  118. package/locale-data/pap.js +2 -2
  119. package/locale-data/pcm.js +2 -2
  120. package/locale-data/pl.js +24 -8
  121. package/locale-data/prg.js +22 -6
  122. package/locale-data/ps.js +2 -2
  123. package/locale-data/pt-PT.js +20 -4
  124. package/locale-data/pt.js +20 -4
  125. package/locale-data/rm.js +2 -2
  126. package/locale-data/ro.js +22 -6
  127. package/locale-data/rof.js +2 -2
  128. package/locale-data/ru.js +24 -8
  129. package/locale-data/rwk.js +2 -2
  130. package/locale-data/saq.js +2 -2
  131. package/locale-data/sat.js +4 -4
  132. package/locale-data/sc.js +2 -2
  133. package/locale-data/scn.js +22 -6
  134. package/locale-data/sd.js +2 -2
  135. package/locale-data/sdh.js +2 -2
  136. package/locale-data/se.js +4 -4
  137. package/locale-data/seh.js +2 -2
  138. package/locale-data/sgs.js +26 -10
  139. package/locale-data/sh.js +22 -6
  140. package/locale-data/shi.js +6 -6
  141. package/locale-data/si.js +2 -2
  142. package/locale-data/sk.js +4 -4
  143. package/locale-data/sl.js +24 -8
  144. package/locale-data/sma.js +4 -4
  145. package/locale-data/smi.js +4 -4
  146. package/locale-data/smj.js +4 -4
  147. package/locale-data/smn.js +4 -4
  148. package/locale-data/sms.js +4 -4
  149. package/locale-data/sn.js +2 -2
  150. package/locale-data/so.js +2 -2
  151. package/locale-data/sq.js +24 -8
  152. package/locale-data/sr.js +22 -6
  153. package/locale-data/ss.js +2 -2
  154. package/locale-data/ssy.js +2 -2
  155. package/locale-data/st.js +2 -2
  156. package/locale-data/sv.js +18 -2
  157. package/locale-data/syr.js +2 -2
  158. package/locale-data/ta.js +2 -2
  159. package/locale-data/te.js +2 -2
  160. package/locale-data/teo.js +2 -2
  161. package/locale-data/tg.d.ts +1 -0
  162. package/locale-data/tg.js +35 -0
  163. package/locale-data/ti.js +2 -2
  164. package/locale-data/tig.js +2 -2
  165. package/locale-data/tk.js +20 -4
  166. package/locale-data/tl.js +20 -4
  167. package/locale-data/tn.js +2 -2
  168. package/locale-data/tr.js +2 -2
  169. package/locale-data/ts.js +2 -2
  170. package/locale-data/tzm.js +2 -2
  171. package/locale-data/ug.js +2 -2
  172. package/locale-data/uk.js +26 -10
  173. package/locale-data/uz.js +2 -2
  174. package/locale-data/ve.js +2 -2
  175. package/locale-data/vec.js +22 -6
  176. package/locale-data/vi.js +12 -6
  177. package/locale-data/vo.js +2 -2
  178. package/locale-data/vun.js +2 -2
  179. package/locale-data/wa.js +2 -2
  180. package/locale-data/wae.js +2 -2
  181. package/locale-data/xh.js +2 -2
  182. package/locale-data/xog.js +2 -2
  183. package/locale-data/zu.js +2 -2
  184. package/package.json +3 -3
  185. package/polyfill-force.js +39 -143
  186. package/polyfill-force.js.map +1 -1
  187. package/polyfill.iife.js +2137 -3591
  188. package/polyfill.js +43 -149
  189. package/polyfill.js.map +1 -1
  190. package/should-polyfill.d.ts +0 -2
  191. package/should-polyfill.js +3 -4
  192. package/should-polyfill.js.map +1 -1
@@ -2,6 +2,14 @@
2
2
  // prettier-ignore
3
3
  if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {
4
4
  Intl.PluralRules.__addLocaleData({"data":{"categories":{"cardinal":["many","one","other"],"ordinal":["many","other"]},"compactExponents":{"short":{"3":3,"4":3,"5":3,"6":6,"7":6,"8":6,"9":9,"10":9,"11":9,"12":12,"13":12,"14":12},"long":{"3":3,"4":3,"5":3,"6":6,"7":6,"8":6,"9":9,"10":9,"11":9,"12":12,"13":12,"14":12}},"fn":function(num, isOrdinal, exponent = 0) {
5
+ function modDigits(digits, divisor) {
6
+ let value = 0;
7
+ for (let index = 0; index < digits.length; index++) {
8
+ const digit = digits.charCodeAt(index) - 48;
9
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
10
+ }
11
+ return value;
12
+ }
5
13
  const numStr = String(num);
6
14
  const parts = numStr.split(".");
7
15
  const integerPart = parts[0];
@@ -11,19 +19,27 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
11
19
  const v = decimalPart.length;
12
20
  const e = exponent;
13
21
  if (isOrdinal) {
14
- if ((((n === 11 || n === 8) || n === 80) || n === 800))
22
+ if ((!/[1-9]/.test(decimalPart) && (((n === 11 || n === 8) || n === 80) || n === 800)))
15
23
  return "many";
16
24
  }
17
25
  else {
18
- if (e === 0 && i !== 0 && (i % 1000000) === 0 && v === 0 || (e < 0 || e > 5))
19
- return "many";
20
26
  if (i === 1 && v === 0)
21
27
  return "one";
28
+ if (e === 0 && i !== 0 && modDigits(integerPart, 1000000) === 0 && v === 0 || (e < 0 || e > 5))
29
+ return "many";
22
30
  }
23
31
  return "other";
24
32
  }},"locale":"lld"})
25
33
  } else {
26
34
  (globalThis.__FORMATJS_PLURALRULES_DATA__ = globalThis.__FORMATJS_PLURALRULES_DATA__ || []).push({"data":{"categories":{"cardinal":["many","one","other"],"ordinal":["many","other"]},"compactExponents":{"short":{"3":3,"4":3,"5":3,"6":6,"7":6,"8":6,"9":9,"10":9,"11":9,"12":12,"13":12,"14":12},"long":{"3":3,"4":3,"5":3,"6":6,"7":6,"8":6,"9":9,"10":9,"11":9,"12":12,"13":12,"14":12}},"fn":function(num, isOrdinal, exponent = 0) {
35
+ function modDigits(digits, divisor) {
36
+ let value = 0;
37
+ for (let index = 0; index < digits.length; index++) {
38
+ const digit = digits.charCodeAt(index) - 48;
39
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
40
+ }
41
+ return value;
42
+ }
27
43
  const numStr = String(num);
28
44
  const parts = numStr.split(".");
29
45
  const integerPart = parts[0];
@@ -33,14 +49,14 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
33
49
  const v = decimalPart.length;
34
50
  const e = exponent;
35
51
  if (isOrdinal) {
36
- if ((((n === 11 || n === 8) || n === 80) || n === 800))
52
+ if ((!/[1-9]/.test(decimalPart) && (((n === 11 || n === 8) || n === 80) || n === 800)))
37
53
  return "many";
38
54
  }
39
55
  else {
40
- if (e === 0 && i !== 0 && (i % 1000000) === 0 && v === 0 || (e < 0 || e > 5))
41
- return "many";
42
56
  if (i === 1 && v === 0)
43
57
  return "one";
58
+ if (e === 0 && i !== 0 && modDigits(integerPart, 1000000) === 0 && v === 0 || (e < 0 || e > 5))
59
+ return "many";
44
60
  }
45
61
  return "other";
46
62
  }},"locale":"lld"})
package/locale-data/ln.js CHANGED
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if ((n >= 0 && n <= 1))
13
+ if ((!/[1-9]/.test(decimalPart) && (n >= 0 && n <= 1)))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if ((n >= 0 && n <= 1))
28
+ if ((!/[1-9]/.test(decimalPart) && (n >= 0 && n <= 1)))
29
29
  return "one";
30
30
  }
31
31
  return "other";
package/locale-data/lo.js CHANGED
@@ -8,7 +8,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
8
8
  const decimalPart = parts[1] || "";
9
9
  const n = Math.abs(parseFloat(numStr));
10
10
  if (isOrdinal) {
11
- if (n === 1)
11
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
12
12
  return "one";
13
13
  }
14
14
  else {
@@ -23,7 +23,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
23
23
  const decimalPart = parts[1] || "";
24
24
  const n = Math.abs(parseFloat(numStr));
25
25
  if (isOrdinal) {
26
- if (n === 1)
26
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
27
27
  return "one";
28
28
  }
29
29
  else {
package/locale-data/lt.js CHANGED
@@ -2,6 +2,14 @@
2
2
  // prettier-ignore
3
3
  if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {
4
4
  Intl.PluralRules.__addLocaleData({"data":{"categories":{"cardinal":["few","many","one","other"],"ordinal":["other"]},"fn":function(num, isOrdinal, exponent = 0) {
5
+ function modDigits(digits, divisor) {
6
+ let value = 0;
7
+ for (let index = 0; index < digits.length; index++) {
8
+ const digit = digits.charCodeAt(index) - 48;
9
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
10
+ }
11
+ return value;
12
+ }
5
13
  const numStr = String(num);
6
14
  const parts = numStr.split(".");
7
15
  const integerPart = parts[0];
@@ -12,17 +20,25 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
12
20
  if (isOrdinal) {
13
21
  }
14
22
  else {
15
- if (((n % 10) >= 2 && (n % 10) <= 9) && ((n % 100) < 11 || (n % 100) > 19))
23
+ if ((!/[1-9]/.test(decimalPart) && modDigits(integerPart, 10) === 1) && (/[1-9]/.test(decimalPart) || (modDigits(integerPart, 100) < 11 || modDigits(integerPart, 100) > 19)))
24
+ return "one";
25
+ if ((!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 10) >= 2 && modDigits(integerPart, 10) <= 9)) && (/[1-9]/.test(decimalPart) || (modDigits(integerPart, 100) < 11 || modDigits(integerPart, 100) > 19)))
16
26
  return "few";
17
27
  if (f !== 0)
18
28
  return "many";
19
- if ((n % 10) === 1 && ((n % 100) < 11 || (n % 100) > 19))
20
- return "one";
21
29
  }
22
30
  return "other";
23
31
  },"pluralRanges":{"cardinal":{"few_few":"few","few_many":"many","few_one":"one","few_other":"other","many_few":"few","many_many":"many","many_one":"one","many_other":"other","one_few":"few","one_many":"many","one_one":"one","one_other":"other","other_few":"few","other_many":"many","other_one":"one","other_other":"other"},"ordinal":{}}},"locale":"lt"})
24
32
  } else {
25
33
  (globalThis.__FORMATJS_PLURALRULES_DATA__ = globalThis.__FORMATJS_PLURALRULES_DATA__ || []).push({"data":{"categories":{"cardinal":["few","many","one","other"],"ordinal":["other"]},"fn":function(num, isOrdinal, exponent = 0) {
34
+ function modDigits(digits, divisor) {
35
+ let value = 0;
36
+ for (let index = 0; index < digits.length; index++) {
37
+ const digit = digits.charCodeAt(index) - 48;
38
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
39
+ }
40
+ return value;
41
+ }
26
42
  const numStr = String(num);
27
43
  const parts = numStr.split(".");
28
44
  const integerPart = parts[0];
@@ -33,12 +49,12 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
33
49
  if (isOrdinal) {
34
50
  }
35
51
  else {
36
- if (((n % 10) >= 2 && (n % 10) <= 9) && ((n % 100) < 11 || (n % 100) > 19))
52
+ if ((!/[1-9]/.test(decimalPart) && modDigits(integerPart, 10) === 1) && (/[1-9]/.test(decimalPart) || (modDigits(integerPart, 100) < 11 || modDigits(integerPart, 100) > 19)))
53
+ return "one";
54
+ if ((!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 10) >= 2 && modDigits(integerPart, 10) <= 9)) && (/[1-9]/.test(decimalPart) || (modDigits(integerPart, 100) < 11 || modDigits(integerPart, 100) > 19)))
37
55
  return "few";
38
56
  if (f !== 0)
39
57
  return "many";
40
- if ((n % 10) === 1 && ((n % 100) < 11 || (n % 100) > 19))
41
- return "one";
42
58
  }
43
59
  return "other";
44
60
  },"pluralRanges":{"cardinal":{"few_few":"few","few_many":"many","few_one":"one","few_other":"other","many_few":"few","many_many":"many","many_one":"one","many_other":"other","one_few":"few","one_many":"many","one_one":"one","one_other":"other","other_few":"few","other_many":"many","other_one":"one","other_other":"other"},"ordinal":{}}},"locale":"lt"})
package/locale-data/lv.js CHANGED
@@ -2,6 +2,14 @@
2
2
  // prettier-ignore
3
3
  if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {
4
4
  Intl.PluralRules.__addLocaleData({"data":{"categories":{"cardinal":["one","other","zero"],"ordinal":["other"]},"fn":function(num, isOrdinal, exponent = 0) {
5
+ function modDigits(digits, divisor) {
6
+ let value = 0;
7
+ for (let index = 0; index < digits.length; index++) {
8
+ const digit = digits.charCodeAt(index) - 48;
9
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
10
+ }
11
+ return value;
12
+ }
5
13
  const numStr = String(num);
6
14
  const parts = numStr.split(".");
7
15
  const integerPart = parts[0];
@@ -12,15 +20,23 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
12
20
  if (isOrdinal) {
13
21
  }
14
22
  else {
15
- if ((n % 10) === 1 && (n % 100) !== 11 || v === 2 && (f % 10) === 1 && (f % 100) !== 11 || v !== 2 && (f % 10) === 1)
16
- return "one";
17
- if ((n % 10) === 0 || ((n % 100) >= 11 && (n % 100) <= 19) || v === 2 && ((f % 100) >= 11 && (f % 100) <= 19))
23
+ if ((!/[1-9]/.test(decimalPart) && modDigits(integerPart, 10) === 0) || (!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 11 && modDigits(integerPart, 100) <= 19)) || v === 2 && (modDigits(decimalPart, 100) >= 11 && modDigits(decimalPart, 100) <= 19))
18
24
  return "zero";
25
+ if ((!/[1-9]/.test(decimalPart) && modDigits(integerPart, 10) === 1) && (/[1-9]/.test(decimalPart) || modDigits(integerPart, 100) !== 11) || v === 2 && modDigits(decimalPart, 10) === 1 && modDigits(decimalPart, 100) !== 11 || v !== 2 && modDigits(decimalPart, 10) === 1)
26
+ return "one";
19
27
  }
20
28
  return "other";
21
29
  },"pluralRanges":{"cardinal":{"one_one":"one","one_other":"other","one_zero":"other","other_one":"one","other_other":"other","other_zero":"other","zero_one":"one","zero_other":"other","zero_zero":"other"},"ordinal":{}}},"locale":"lv"})
22
30
  } else {
23
31
  (globalThis.__FORMATJS_PLURALRULES_DATA__ = globalThis.__FORMATJS_PLURALRULES_DATA__ || []).push({"data":{"categories":{"cardinal":["one","other","zero"],"ordinal":["other"]},"fn":function(num, isOrdinal, exponent = 0) {
32
+ function modDigits(digits, divisor) {
33
+ let value = 0;
34
+ for (let index = 0; index < digits.length; index++) {
35
+ const digit = digits.charCodeAt(index) - 48;
36
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
37
+ }
38
+ return value;
39
+ }
24
40
  const numStr = String(num);
25
41
  const parts = numStr.split(".");
26
42
  const integerPart = parts[0];
@@ -31,10 +47,10 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
31
47
  if (isOrdinal) {
32
48
  }
33
49
  else {
34
- if ((n % 10) === 1 && (n % 100) !== 11 || v === 2 && (f % 10) === 1 && (f % 100) !== 11 || v !== 2 && (f % 10) === 1)
35
- return "one";
36
- if ((n % 10) === 0 || ((n % 100) >= 11 && (n % 100) <= 19) || v === 2 && ((f % 100) >= 11 && (f % 100) <= 19))
50
+ if ((!/[1-9]/.test(decimalPart) && modDigits(integerPart, 10) === 0) || (!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 11 && modDigits(integerPart, 100) <= 19)) || v === 2 && (modDigits(decimalPart, 100) >= 11 && modDigits(decimalPart, 100) <= 19))
37
51
  return "zero";
52
+ if ((!/[1-9]/.test(decimalPart) && modDigits(integerPart, 10) === 1) && (/[1-9]/.test(decimalPart) || modDigits(integerPart, 100) !== 11) || v === 2 && modDigits(decimalPart, 10) === 1 && modDigits(decimalPart, 100) !== 11 || v !== 2 && modDigits(decimalPart, 10) === 1)
53
+ return "one";
38
54
  }
39
55
  return "other";
40
56
  },"pluralRanges":{"cardinal":{"one_one":"one","one_other":"other","one_zero":"other","other_one":"one","other_other":"other","other_zero":"other","zero_one":"one","zero_other":"other","zero_zero":"other"},"ordinal":{}}},"locale":"lv"})
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if (n === 1)
13
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if (n === 1)
28
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
29
29
  return "one";
30
30
  }
31
31
  return "other";
package/locale-data/mg.js CHANGED
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if ((n >= 0 && n <= 1))
13
+ if ((!/[1-9]/.test(decimalPart) && (n >= 0 && n <= 1)))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if ((n >= 0 && n <= 1))
28
+ if ((!/[1-9]/.test(decimalPart) && (n >= 0 && n <= 1)))
29
29
  return "one";
30
30
  }
31
31
  return "other";
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if (n === 1)
13
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if (n === 1)
28
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
29
29
  return "one";
30
30
  }
31
31
  return "other";
package/locale-data/mk.js CHANGED
@@ -2,6 +2,14 @@
2
2
  // prettier-ignore
3
3
  if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {
4
4
  Intl.PluralRules.__addLocaleData({"data":{"categories":{"cardinal":["one","other"],"ordinal":["many","one","other","two"]},"fn":function(num, isOrdinal, exponent = 0) {
5
+ function modDigits(digits, divisor) {
6
+ let value = 0;
7
+ for (let index = 0; index < digits.length; index++) {
8
+ const digit = digits.charCodeAt(index) - 48;
9
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
10
+ }
11
+ return value;
12
+ }
5
13
  const numStr = String(num);
6
14
  const parts = numStr.split(".");
7
15
  const integerPart = parts[0];
@@ -10,21 +18,29 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
18
  const v = decimalPart.length;
11
19
  const f = v > 0 ? parseInt(decimalPart, 10) : 0;
12
20
  if (isOrdinal) {
13
- if (((i % 10) === 7 || (i % 10) === 8) && ((i % 100) !== 17 && (i % 100) !== 18))
14
- return "many";
15
- if ((i % 10) === 1 && (i % 100) !== 11)
21
+ if (modDigits(integerPart, 10) === 1 && modDigits(integerPart, 100) !== 11)
16
22
  return "one";
17
- if ((i % 10) === 2 && (i % 100) !== 12)
23
+ if (modDigits(integerPart, 10) === 2 && modDigits(integerPart, 100) !== 12)
18
24
  return "two";
25
+ if ((modDigits(integerPart, 10) === 7 || modDigits(integerPart, 10) === 8) && (modDigits(integerPart, 100) !== 17 && modDigits(integerPart, 100) !== 18))
26
+ return "many";
19
27
  }
20
28
  else {
21
- if (v === 0 && (i % 10) === 1 && (i % 100) !== 11 || (f % 10) === 1 && (f % 100) !== 11)
29
+ if (v === 0 && modDigits(integerPart, 10) === 1 && modDigits(integerPart, 100) !== 11 || modDigits(decimalPart, 10) === 1 && modDigits(decimalPart, 100) !== 11)
22
30
  return "one";
23
31
  }
24
32
  return "other";
25
33
  },"pluralRanges":{"cardinal":{"one_one":"other","one_other":"other","other_one":"other","other_other":"other"},"ordinal":{}}},"locale":"mk"})
26
34
  } else {
27
35
  (globalThis.__FORMATJS_PLURALRULES_DATA__ = globalThis.__FORMATJS_PLURALRULES_DATA__ || []).push({"data":{"categories":{"cardinal":["one","other"],"ordinal":["many","one","other","two"]},"fn":function(num, isOrdinal, exponent = 0) {
36
+ function modDigits(digits, divisor) {
37
+ let value = 0;
38
+ for (let index = 0; index < digits.length; index++) {
39
+ const digit = digits.charCodeAt(index) - 48;
40
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
41
+ }
42
+ return value;
43
+ }
28
44
  const numStr = String(num);
29
45
  const parts = numStr.split(".");
30
46
  const integerPart = parts[0];
@@ -33,15 +49,15 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
33
49
  const v = decimalPart.length;
34
50
  const f = v > 0 ? parseInt(decimalPart, 10) : 0;
35
51
  if (isOrdinal) {
36
- if (((i % 10) === 7 || (i % 10) === 8) && ((i % 100) !== 17 && (i % 100) !== 18))
37
- return "many";
38
- if ((i % 10) === 1 && (i % 100) !== 11)
52
+ if (modDigits(integerPart, 10) === 1 && modDigits(integerPart, 100) !== 11)
39
53
  return "one";
40
- if ((i % 10) === 2 && (i % 100) !== 12)
54
+ if (modDigits(integerPart, 10) === 2 && modDigits(integerPart, 100) !== 12)
41
55
  return "two";
56
+ if ((modDigits(integerPart, 10) === 7 || modDigits(integerPart, 10) === 8) && (modDigits(integerPart, 100) !== 17 && modDigits(integerPart, 100) !== 18))
57
+ return "many";
42
58
  }
43
59
  else {
44
- if (v === 0 && (i % 10) === 1 && (i % 100) !== 11 || (f % 10) === 1 && (f % 100) !== 11)
60
+ if (v === 0 && modDigits(integerPart, 10) === 1 && modDigits(integerPart, 100) !== 11 || modDigits(decimalPart, 10) === 1 && modDigits(decimalPart, 100) !== 11)
45
61
  return "one";
46
62
  }
47
63
  return "other";
package/locale-data/ml.js CHANGED
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if (n === 1)
13
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if (n === 1)
28
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
29
29
  return "one";
30
30
  }
31
31
  return "other";
package/locale-data/mn.js CHANGED
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if (n === 1)
13
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if (n === 1)
28
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
29
29
  return "one";
30
30
  }
31
31
  return "other";
package/locale-data/mo.js CHANGED
@@ -2,6 +2,14 @@
2
2
  // prettier-ignore
3
3
  if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {
4
4
  Intl.PluralRules.__addLocaleData({"data":{"categories":{"cardinal":["few","one","other"],"ordinal":["one","other"]},"fn":function(num, isOrdinal, exponent = 0) {
5
+ function modDigits(digits, divisor) {
6
+ let value = 0;
7
+ for (let index = 0; index < digits.length; index++) {
8
+ const digit = digits.charCodeAt(index) - 48;
9
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
10
+ }
11
+ return value;
12
+ }
5
13
  const numStr = String(num);
6
14
  const parts = numStr.split(".");
7
15
  const integerPart = parts[0];
@@ -10,19 +18,27 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
18
  const i = Math.floor(Math.abs(parseFloat(integerPart)));
11
19
  const v = decimalPart.length;
12
20
  if (isOrdinal) {
13
- if (n === 1)
21
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
22
  return "one";
15
23
  }
16
24
  else {
17
- if (v !== 0 || n === 0 || n !== 1 && ((n % 100) >= 1 && (n % 100) <= 19))
18
- return "few";
19
25
  if (i === 1 && v === 0)
20
26
  return "one";
27
+ if (v !== 0 || (!/[1-9]/.test(decimalPart) && n === 0) || (/[1-9]/.test(decimalPart) || n !== 1) && (!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 1 && modDigits(integerPart, 100) <= 19)))
28
+ return "few";
21
29
  }
22
30
  return "other";
23
31
  }},"locale":"mo"})
24
32
  } else {
25
33
  (globalThis.__FORMATJS_PLURALRULES_DATA__ = globalThis.__FORMATJS_PLURALRULES_DATA__ || []).push({"data":{"categories":{"cardinal":["few","one","other"],"ordinal":["one","other"]},"fn":function(num, isOrdinal, exponent = 0) {
34
+ function modDigits(digits, divisor) {
35
+ let value = 0;
36
+ for (let index = 0; index < digits.length; index++) {
37
+ const digit = digits.charCodeAt(index) - 48;
38
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
39
+ }
40
+ return value;
41
+ }
26
42
  const numStr = String(num);
27
43
  const parts = numStr.split(".");
28
44
  const integerPart = parts[0];
@@ -31,14 +47,14 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
31
47
  const i = Math.floor(Math.abs(parseFloat(integerPart)));
32
48
  const v = decimalPart.length;
33
49
  if (isOrdinal) {
34
- if (n === 1)
50
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
35
51
  return "one";
36
52
  }
37
53
  else {
38
- if (v !== 0 || n === 0 || n !== 1 && ((n % 100) >= 1 && (n % 100) <= 19))
39
- return "few";
40
54
  if (i === 1 && v === 0)
41
55
  return "one";
56
+ if (v !== 0 || (!/[1-9]/.test(decimalPart) && n === 0) || (/[1-9]/.test(decimalPart) || n !== 1) && (!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 1 && modDigits(integerPart, 100) <= 19)))
57
+ return "few";
42
58
  }
43
59
  return "other";
44
60
  }},"locale":"mo"})
package/locale-data/mr.js CHANGED
@@ -8,15 +8,15 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
8
8
  const decimalPart = parts[1] || "";
9
9
  const n = Math.abs(parseFloat(numStr));
10
10
  if (isOrdinal) {
11
- if (n === 4)
12
- return "few";
13
- if (n === 1)
11
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
12
  return "one";
15
- if ((n === 2 || n === 3))
13
+ if ((!/[1-9]/.test(decimalPart) && (n === 2 || n === 3)))
16
14
  return "two";
15
+ if ((!/[1-9]/.test(decimalPart) && n === 4))
16
+ return "few";
17
17
  }
18
18
  else {
19
- if (n === 1)
19
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
20
20
  return "one";
21
21
  }
22
22
  return "other";
@@ -29,15 +29,15 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
29
29
  const decimalPart = parts[1] || "";
30
30
  const n = Math.abs(parseFloat(numStr));
31
31
  if (isOrdinal) {
32
- if (n === 4)
33
- return "few";
34
- if (n === 1)
32
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
35
33
  return "one";
36
- if ((n === 2 || n === 3))
34
+ if ((!/[1-9]/.test(decimalPart) && (n === 2 || n === 3)))
37
35
  return "two";
36
+ if ((!/[1-9]/.test(decimalPart) && n === 4))
37
+ return "few";
38
38
  }
39
39
  else {
40
- if (n === 1)
40
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
41
41
  return "one";
42
42
  }
43
43
  return "other";
package/locale-data/ms.js CHANGED
@@ -8,7 +8,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
8
8
  const decimalPart = parts[1] || "";
9
9
  const n = Math.abs(parseFloat(numStr));
10
10
  if (isOrdinal) {
11
- if (n === 1)
11
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
12
12
  return "one";
13
13
  }
14
14
  else {
@@ -23,7 +23,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
23
23
  const decimalPart = parts[1] || "";
24
24
  const n = Math.abs(parseFloat(numStr));
25
25
  if (isOrdinal) {
26
- if (n === 1)
26
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
27
27
  return "one";
28
28
  }
29
29
  else {
package/locale-data/mt.js CHANGED
@@ -2,6 +2,14 @@
2
2
  // prettier-ignore
3
3
  if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {
4
4
  Intl.PluralRules.__addLocaleData({"data":{"categories":{"cardinal":["few","many","one","other","two"],"ordinal":["other"]},"fn":function(num, isOrdinal, exponent = 0) {
5
+ function modDigits(digits, divisor) {
6
+ let value = 0;
7
+ for (let index = 0; index < digits.length; index++) {
8
+ const digit = digits.charCodeAt(index) - 48;
9
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
10
+ }
11
+ return value;
12
+ }
5
13
  const numStr = String(num);
6
14
  const parts = numStr.split(".");
7
15
  const integerPart = parts[0];
@@ -10,19 +18,27 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
18
  if (isOrdinal) {
11
19
  }
12
20
  else {
13
- if (n === 0 || ((n % 100) >= 3 && (n % 100) <= 10))
14
- return "few";
15
- if (((n % 100) >= 11 && (n % 100) <= 19))
16
- return "many";
17
- if (n === 1)
21
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
18
22
  return "one";
19
- if (n === 2)
23
+ if ((!/[1-9]/.test(decimalPart) && n === 2))
20
24
  return "two";
25
+ if ((!/[1-9]/.test(decimalPart) && n === 0) || (!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 3 && modDigits(integerPart, 100) <= 10)))
26
+ return "few";
27
+ if ((!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 11 && modDigits(integerPart, 100) <= 19)))
28
+ return "many";
21
29
  }
22
30
  return "other";
23
31
  }},"locale":"mt"})
24
32
  } else {
25
33
  (globalThis.__FORMATJS_PLURALRULES_DATA__ = globalThis.__FORMATJS_PLURALRULES_DATA__ || []).push({"data":{"categories":{"cardinal":["few","many","one","other","two"],"ordinal":["other"]},"fn":function(num, isOrdinal, exponent = 0) {
34
+ function modDigits(digits, divisor) {
35
+ let value = 0;
36
+ for (let index = 0; index < digits.length; index++) {
37
+ const digit = digits.charCodeAt(index) - 48;
38
+ if (digit >= 0 && digit <= 9) value = (value * 10 + digit) % divisor;
39
+ }
40
+ return value;
41
+ }
26
42
  const numStr = String(num);
27
43
  const parts = numStr.split(".");
28
44
  const integerPart = parts[0];
@@ -31,14 +47,14 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
31
47
  if (isOrdinal) {
32
48
  }
33
49
  else {
34
- if (n === 0 || ((n % 100) >= 3 && (n % 100) <= 10))
35
- return "few";
36
- if (((n % 100) >= 11 && (n % 100) <= 19))
37
- return "many";
38
- if (n === 1)
50
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
39
51
  return "one";
40
- if (n === 2)
52
+ if ((!/[1-9]/.test(decimalPart) && n === 2))
41
53
  return "two";
54
+ if ((!/[1-9]/.test(decimalPart) && n === 0) || (!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 3 && modDigits(integerPart, 100) <= 10)))
55
+ return "few";
56
+ if ((!/[1-9]/.test(decimalPart) && (modDigits(integerPart, 100) >= 11 && modDigits(integerPart, 100) <= 19)))
57
+ return "many";
42
58
  }
43
59
  return "other";
44
60
  }},"locale":"mt"})
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if (n === 1)
13
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if (n === 1)
28
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
29
29
  return "one";
30
30
  }
31
31
  return "other";
@@ -10,9 +10,9 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if (n === 1)
13
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
14
  return "one";
15
- if (n === 2)
15
+ if ((!/[1-9]/.test(decimalPart) && n === 2))
16
16
  return "two";
17
17
  }
18
18
  return "other";
@@ -27,9 +27,9 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
27
27
  if (isOrdinal) {
28
28
  }
29
29
  else {
30
- if (n === 1)
30
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
31
31
  return "one";
32
- if (n === 2)
32
+ if ((!/[1-9]/.test(decimalPart) && n === 2))
33
33
  return "two";
34
34
  }
35
35
  return "other";
package/locale-data/nb.js CHANGED
@@ -10,7 +10,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
10
10
  if (isOrdinal) {
11
11
  }
12
12
  else {
13
- if (n === 1)
13
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
14
14
  return "one";
15
15
  }
16
16
  return "other";
@@ -25,7 +25,7 @@ if (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function')
25
25
  if (isOrdinal) {
26
26
  }
27
27
  else {
28
- if (n === 1)
28
+ if ((!/[1-9]/.test(decimalPart) && n === 1))
29
29
  return "one";
30
30
  }
31
31
  return "other";