From 93df6831f3fb71288820bffe001b5c0ba5eb503c Mon Sep 17 00:00:00 2001 From: Eemeli Aro Date: Mon, 29 Dec 2025 00:54:05 +0200 Subject: [PATCH 1/2] feat: Support compact notation --- packages/compiler/src/compiler.js | 7 +++--- packages/compiler/src/parser.js | 18 ++++++++++------ packages/compiler/src/tests.js | 33 ++++++++++++++++++---------- packages/plurals/README.md | 2 ++ packages/plurals/cardinals.js | 16 +++++++------- packages/plurals/examples.d.ts | 18 ++++++++-------- packages/plurals/examples.js | 18 ++++++++-------- packages/plurals/examples.json | 18 ++++++++-------- packages/plurals/plurals.js | 36 +++++++++++++++---------------- 9 files changed, 93 insertions(+), 73 deletions(-) diff --git a/packages/compiler/src/compiler.js b/packages/compiler/src/compiler.js index 7139db5..65152be 100644 --- a/packages/compiler/src/compiler.js +++ b/packages/compiler/src/compiler.js @@ -38,7 +38,6 @@ export class Compiler { .replace(/^[ ,]+|[ ,…]+$/g, '') .replace(/(0\.[0-9])~(1\.[1-9])/g, '$1 1.0 $2') .split(/[ ,~…]+/) - .filter(n => !n.includes('c')) } constructor(lc, { cardinals, ordinals } = Compiler) { @@ -66,9 +65,11 @@ export class Compiler { ) .replace(/{\s*return\s+([^{}]*);\s*}$/, '$1') this.test = () => { + const { cardinals, ordinals } = this.types + const ordArg = Boolean(ordinals && cardinals) for (const type of ['cardinal', 'ordinal']) for (const [cat, values] of Object.entries(this.examples[type])) - testCat(this.lc, type, cat, values, this.fn) + testCat(this.lc, this.fn, ordArg, type, cat, values) } } return this.fn @@ -111,10 +112,10 @@ export class Compiler { body = ` return ${this.buildBody(pt, true)};` } + const args = this.parser.args(ordinals && cardinals) const vars = this.parser.vars() if (vars) body = ` ${vars};\n${body}` - const args = ordinals && cardinals ? 'n, ord' : 'n' return new Function(args, body) // eslint-disable-line no-new-func } } diff --git a/packages/compiler/src/parser.js b/packages/compiler/src/parser.js index 2f08d87..365f4ac 100644 --- a/packages/compiler/src/parser.js +++ b/packages/compiler/src/parser.js @@ -8,12 +8,11 @@ export class Parser { } return cond .replace(/([^=\s])([!=%]+)([^=\s])/g, '$1 $2 $3') - .replace( - /[ce] (!?)= ([0-9]+)(?:\.\.[0-9]+)?/g, - // assume c & e always have the value 0 - (m, noteq, x0) => (!noteq === (x0 === '0') ? 'true' : 'false') - ) - .replace(/^true and |^false or | and true$| or false$/g, '') + .replace(/[ce] (!?)= 0(?:\.\.([0-9]+))?/g, (m, noteq, max) => { + this.c = 1 + if (max) return noteq ? `c > ${max}` : `c <= ${max}` + else return noteq ? 'c' : '!c' + }) .replace(/([tv]) (!?)= 0/g, (m, sym, noteq) => { const sn = sym + '0' this[sn] = 1 @@ -52,6 +51,13 @@ export class Parser { .replace(/ = /g, ' == ') } + args(ord) { + let args = ['n'] + if (ord) args.push('ord') + if (this.c) args.push('c') + return args.join(', ') + } + vars() { let vars = [] if (this.i) vars.push('i = s[0]') diff --git a/packages/compiler/src/tests.js b/packages/compiler/src/tests.js index 358ec9f..b7d3756 100644 --- a/packages/compiler/src/tests.js +++ b/packages/compiler/src/tests.js @@ -1,25 +1,36 @@ -function errorMsg(lc, n, type, msg) { - const val = JSON.stringify(n) - return `Locale ${lc} ${type} rule self-test failed for ${val} (${msg})` -} +const errorMsg = (lc, n, type, fn, args, msg) => `\ +Locale ${lc} ${type} rule self-test failed for ${typeof n} ${n} (${msg}) +Function: ${fn.toString()} +Arguments: ${JSON.stringify(args)}` -function testCond(lc, n, type, expResult, fn) { +function testCond(lc, fn, ordArg, n, type, expResult) { + const compact = typeof n === 'string' && n.match(/(.*)c(\d+)$/) + let args = [n] + if (ordArg) args.push(type === 'ordinal') + if (compact) { + const c = Number(compact[2]) + args[0] = Number(compact[1]) * Math.pow(10, c) + args.push(c) + } try { - var r = fn(n, type === 'ordinal') + var r = fn(...args) } catch (error) { /* istanbul ignore next: should not happen unless CLDR data is broken */ - throw new Error(errorMsg(lc, n, type, error)) + throw new Error(errorMsg(lc, n, type, fn, args, error)) } if (r !== expResult) { const res = JSON.stringify(r) const exp = JSON.stringify(expResult) - throw new Error(errorMsg(lc, n, type, `was ${res}, expected ${exp}`)) + throw new Error( + errorMsg(lc, n, type, fn, args, `was ${res}, expected ${exp}`) + ) } } -export function testCat(lc, type, cat, values, fn) { +export function testCat(lc, fn, ordArg, type, cat, values) { for (const n of values) { - testCond(lc, n, type, cat, fn) - if (!/\.0+$/.test(n)) testCond(lc, Number(n), type, cat, fn) + testCond(lc, fn, ordArg, n, type, cat) + if (!n.includes('c') && !/\.0+$/.test(n)) + testCond(lc, fn, ordArg, Number(n), type, cat) } } diff --git a/packages/plurals/README.md b/packages/plurals/README.md index b8db6ec..4f0ff99 100644 --- a/packages/plurals/README.md +++ b/packages/plurals/README.md @@ -33,6 +33,8 @@ Each of the endpoints is available as ES modules only. 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. + For some locales, an additional argument sets the exponent used in compact notation; + currently, this is only used in Romance languages. Note that `Ordinals` includes a slightly smaller subset of locales than `Cardinals` and `Plurals`, due to a lack of data in the CLDR. - `PluralRanges` provides a set of functions similarly keyed by locale code, diff --git a/packages/plurals/cardinals.js b/packages/plurals/cardinals.js index ca9afac..f9c5f6b 100644 --- a/packages/plurals/cardinals.js +++ b/packages/plurals/cardinals.js @@ -6,10 +6,10 @@ const d = (n) => { return n == 1 && v0 ? 'one' : 'other'; }; const e = (n) => 'other'; -const f = (n) => { +const f = (n, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); return n == 1 && v0 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; const g = (n) => n == 1 ? 'one' @@ -120,10 +120,10 @@ export const ee = a; export const el = a; export const en = d; export const eo = a; -export const es = (n) => { +export const es = (n, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); return n == 1 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const et = d; @@ -136,10 +136,10 @@ export const fil = (n) => { return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other'; }; export const fo = a; -export const fr = (n) => { +export const fr = (n, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); return n >= 0 && n < 2 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const fur = a; @@ -331,10 +331,10 @@ export const prg = (n) => { : 'other'; }; export const ps = a; -export const pt = (n) => { +export const pt = (n, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); return (i == 0 || i == 1) ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const pt_PT = f; diff --git a/packages/plurals/examples.d.ts b/packages/plurals/examples.d.ts index efe24c1..0fb76f3 100644 --- a/packages/plurals/examples.d.ts +++ b/packages/plurals/examples.d.ts @@ -21,7 +21,7 @@ export const bo: {"cardinal":{"other":["0","15","100","1000","10000","100000","1 export const br: {"cardinal":{"one":["1","21","31","41","51","61","81","101","1001","1.0","21.0","31.0","41.0","51.0","61.0","81.0","101.0","1001.0"],"two":["2","22","32","42","52","62","82","102","1002","2.0","22.0","32.0","42.0","52.0","62.0","82.0","102.0","1002.0"],"few":["3","4","9","23","24","29","33","34","39","43","44","49","103","1003","3.0","4.0","9.0","23.0","24.0","29.0","33.0","34.0","103.0","1003.0"],"many":["1000000","1000000.0","1000000.00","1000000.000","1000000.0000"],"other":["0","5","8","10","20","100","1000","10000","100000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0"]},"ordinal":{}}; export const brx: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const bs: {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"few":["2","4","22","24","32","34","42","44","52","54","62","102","1002","0.2","0.4","1.2","1.4","2.2","2.4","3.2","3.4","4.2","4.4","5.2","10.2","100.2","1000.2"],"other":["0","5","19","100","1000","10000","100000","1000000","0.0","0.5","1.0","1.5","2.0","2.5","2.7","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; -export const ca: {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1","3"],"two":["2"],"few":["4"],"other":["0","5","19","100","1000","10000","100000","1000000"]}}; +export const ca: {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"one":["1","3"],"two":["2"],"few":["4"],"other":["0","5","19","100","1000","10000","100000","1000000"]}}; export const ce: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const ceb: {"cardinal":{"one":["0","3","5","7","8","10","13","15","17","18","20","21","100","1000","10000","100000","1000000","0.0","0.3","0.5","0.7","0.8","1.0","1.3","1.5","1.7","1.8","2.0","2.1","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["4","6","9","14","16","19","24","26","104","1004","0.4","0.6","0.9","1.4","1.6","1.9","2.4","2.6","10.4","100.4","1000.4"]},"ordinal":{}}; export const cgg: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; @@ -41,7 +41,7 @@ export const ee: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other": export const el: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const en: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1","21","31","41","51","61","71","81","101","1001"],"two":["2","22","32","42","52","62","72","82","102","1002"],"few":["3","23","33","43","53","63","73","83","103","1003"],"other":["0","4","18","100","1000","10000","100000","1000000"]}}; export const eo: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; -export const es: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; +export const es: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const et: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const eu: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const fa: {"cardinal":{"one":["0","1","0.0","1.0","0.00","0.04"],"other":["2","17","100","1000","10000","100000","1000000","1.1","2.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; @@ -49,7 +49,7 @@ export const ff: {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"other":["2","17 export const fi: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const fil: {"cardinal":{"one":["0","3","5","7","8","10","13","15","17","18","20","21","100","1000","10000","100000","1000000","0.0","0.3","0.5","0.7","0.8","1.0","1.3","1.5","1.7","1.8","2.0","2.1","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["4","6","9","14","16","19","24","26","104","1004","0.4","0.6","0.9","1.4","1.6","1.9","2.4","2.6","10.4","100.4","1000.4"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const fo: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; -export const fr: {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000"],"other":["2","17","100","1000","10000","100000","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; +export const fr: {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["2","17","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const fur: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const fy: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const ga: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"few":["3","6","3.0","4.0","5.0","6.0","3.00","4.00","5.00","6.00","3.000","4.000","5.000","6.000","3.0000","4.0000","5.0000","6.0000"],"many":["7","10","7.0","8.0","9.0","10.0","7.00","8.00","9.00","10.00","7.000","8.000","9.000","10.000","7.0000","8.0000","9.0000","10.0000"],"other":["0","11","25","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.1","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; @@ -75,7 +75,7 @@ export const ig: {"cardinal":{"other":["0","15","100","1000","10000","100000","1 export const ii: {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const io: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const is: {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.0","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.2","0.9","1.2","1.8","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; -export const it: {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const it: {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const iu: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"other":["0","3","17","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const ja: {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const jbo: {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; @@ -108,7 +108,7 @@ export const lb: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other": export const lg: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const lij: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const lkt: {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; -export const lld: {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const lld: {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const ln: {"cardinal":{"one":["0","1","0.0","1.0","0.00","1.00","0.000","1.000","0.0000","1.0000"],"other":["2","17","100","1000","10000","100000","1000000","0.1","0.9","1.1","1.7","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const lo: {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const lt: {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","1.0","21.0","31.0","41.0","51.0","61.0","71.0","81.0","101.0","1001.0"],"few":["2","9","22","29","102","1002","2.0","3.0","4.0","5.0","6.0","7.0","8.0","9.0","22.0","102.0","1002.0"],"many":["0.1","0.9","1.1","1.7","10.1","100.1","1000.1"],"other":["0","10","20","30","40","50","60","100","1000","10000","100000","1000000","0.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; @@ -148,8 +148,8 @@ export const pcm: {"cardinal":{"one":["0","1","0.0","1.0","0.00","0.04"],"other" export const pl: {"cardinal":{"one":["1"],"few":["2","4","22","24","32","34","42","44","52","54","62","102","1002"],"many":["0","5","19","100","1000","10000","100000","1000000"],"other":["0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const prg: {"cardinal":{"zero":["0","10","20","30","40","50","60","100","1000","10000","100000","1000000","0.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.0","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"other":["2","9","22","29","102","1002","0.2","0.9","1.2","1.9","10.2","100.2","1000.2"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const ps: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; -export const pt: {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000"],"other":["2","17","100","1000","10000","100000","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; -export const pt_PT: {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; +export const pt: {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["2","17","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; +export const pt_PT: {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{}}; export const rm: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const ro: {"cardinal":{"one":["1"],"few":["0","2","16","101","1001","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["20","35","100","1000","10000","100000","1000000"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const rof: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; @@ -159,7 +159,7 @@ export const sah: {"cardinal":{"other":["0","15","100","1000","10000","100000"," export const saq: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const sat: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"other":["0","3","17","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const sc: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; -export const scn: {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const scn: {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const sd: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const sdh: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const se: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"other":["0","3","17","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; @@ -208,7 +208,7 @@ export const und: {"cardinal":{"other":["0","15","100","1000","10000","100000"," export const ur: {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const uz: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const ve: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; -export const vec: {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const vec: {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const vi: {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const vo: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const vun: {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; diff --git a/packages/plurals/examples.js b/packages/plurals/examples.js index 59516de..40da625 100644 --- a/packages/plurals/examples.js +++ b/packages/plurals/examples.js @@ -29,7 +29,7 @@ export const bo = e; export const br = {"cardinal":{"one":["1","21","31","41","51","61","81","101","1001","1.0","21.0","31.0","41.0","51.0","61.0","81.0","101.0","1001.0"],"two":["2","22","32","42","52","62","82","102","1002","2.0","22.0","32.0","42.0","52.0","62.0","82.0","102.0","1002.0"],"few":["3","4","9","23","24","29","33","34","39","43","44","49","103","1003","3.0","4.0","9.0","23.0","24.0","29.0","33.0","34.0","103.0","1003.0"],"many":["1000000","1000000.0","1000000.00","1000000.000","1000000.0000"],"other":["0","5","8","10","20","100","1000","10000","100000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0"]},"ordinal":{}}; export const brx = c; export const bs = {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"few":["2","4","22","24","32","34","42","44","52","54","62","102","1002","0.2","0.4","1.2","1.4","2.2","2.4","3.2","3.4","4.2","4.4","5.2","10.2","100.2","1000.2"],"other":["0","5","19","100","1000","10000","100000","1000000","0.0","0.5","1.0","1.5","2.0","2.5","2.7","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; -export const ca = {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1","3"],"two":["2"],"few":["4"],"other":["0","5","19","100","1000","10000","100000","1000000"]}}; +export const ca = {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"one":["1","3"],"two":["2"],"few":["4"],"other":["0","5","19","100","1000","10000","100000","1000000"]}}; export const ce = a; export const ceb = {"cardinal":{"one":["0","3","5","7","8","10","13","15","17","18","20","21","100","1000","10000","100000","1000000","0.0","0.3","0.5","0.7","0.8","1.0","1.3","1.5","1.7","1.8","2.0","2.1","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["4","6","9","14","16","19","24","26","104","1004","0.4","0.6","0.9","1.4","1.6","1.9","2.4","2.6","10.4","100.4","1000.4"]},"ordinal":{}}; export const cgg = c; @@ -49,7 +49,7 @@ export const ee = c; export const el = a; export const en = {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1","21","31","41","51","61","71","81","101","1001"],"two":["2","22","32","42","52","62","72","82","102","1002"],"few":["3","23","33","43","53","63","73","83","103","1003"],"other":["0","4","18","100","1000","10000","100000","1000000"]}}; export const eo = c; -export const es = {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; +export const es = {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const et = d; export const eu = a; export const fa = {"cardinal":{"one":["0","1","0.0","1.0","0.00","0.04"],"other":["2","17","100","1000","10000","100000","1000000","1.1","2.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; @@ -57,7 +57,7 @@ export const ff = {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"other":["2","1 export const fi = d; export const fil = {"cardinal":{"one":["0","3","5","7","8","10","13","15","17","18","20","21","100","1000","10000","100000","1000000","0.0","0.3","0.5","0.7","0.8","1.0","1.3","1.5","1.7","1.8","2.0","2.1","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["4","6","9","14","16","19","24","26","104","1004","0.4","0.6","0.9","1.4","1.6","1.9","2.4","2.6","10.4","100.4","1000.4"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const fo = c; -export const fr = {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000"],"other":["2","17","100","1000","10000","100000","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; +export const fr = {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["2","17","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const fur = c; export const fy = d; export const ga = {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"few":["3","6","3.0","4.0","5.0","6.0","3.00","4.00","5.00","6.00","3.000","4.000","5.000","6.000","3.0000","4.0000","5.0000","6.0000"],"many":["7","10","7.0","8.0","9.0","10.0","7.00","8.00","9.00","10.00","7.000","8.000","9.000","10.000","7.0000","8.0000","9.0000","10.0000"],"other":["0","11","25","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.1","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; @@ -83,7 +83,7 @@ export const ig = e; export const ii = e; export const io = {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; export const is = {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.0","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.2","0.9","1.2","1.8","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; -export const it = {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const it = {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const iu = g; export const ja = f; export const jbo = e; @@ -116,7 +116,7 @@ export const lb = c; export const lg = c; export const lij = {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const lkt = e; -export const lld = {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const lld = {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const ln = b; export const lo = {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const lt = {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","1.0","21.0","31.0","41.0","51.0","61.0","71.0","81.0","101.0","1001.0"],"few":["2","9","22","29","102","1002","2.0","3.0","4.0","5.0","6.0","7.0","8.0","9.0","22.0","102.0","1002.0"],"many":["0.1","0.9","1.1","1.7","10.1","100.1","1000.1"],"other":["0","10","20","30","40","50","60","100","1000","10000","100000","1000000","0.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; @@ -156,8 +156,8 @@ export const pcm = {"cardinal":{"one":["0","1","0.0","1.0","0.00","0.04"],"other export const pl = {"cardinal":{"one":["1"],"few":["2","4","22","24","32","34","42","44","52","54","62","102","1002"],"many":["0","5","19","100","1000","10000","100000","1000000"],"other":["0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const prg = {"cardinal":{"zero":["0","10","20","30","40","50","60","100","1000","10000","100000","1000000","0.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.0","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"other":["2","9","22","29","102","1002","0.2","0.9","1.2","1.9","10.2","100.2","1000.2"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; export const ps = a; -export const pt = {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000"],"other":["2","17","100","1000","10000","100000","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; -export const pt_PT = {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}; +export const pt = {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["2","17","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}; +export const pt_PT = {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{}}; export const rm = c; export const ro = {"cardinal":{"one":["1"],"few":["0","2","16","101","1001","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["20","35","100","1000","10000","100000","1000000"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const rof = c; @@ -167,7 +167,7 @@ export const sah = e; export const saq = c; export const sat = g; export const sc = {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; -export const scn = {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const scn = {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const sd = a; export const sdh = c; export const se = g; @@ -216,7 +216,7 @@ export const und = f; export const ur = d; export const uz = a; export const ve = c; -export const vec = {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; +export const vec = {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}; export const vi = {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}; export const vo = c; export const vun = c; diff --git a/packages/plurals/examples.json b/packages/plurals/examples.json index 0315f86..26f46b4 100644 --- a/packages/plurals/examples.json +++ b/packages/plurals/examples.json @@ -22,7 +22,7 @@ "br": {"cardinal":{"one":["1","21","31","41","51","61","81","101","1001","1.0","21.0","31.0","41.0","51.0","61.0","81.0","101.0","1001.0"],"two":["2","22","32","42","52","62","82","102","1002","2.0","22.0","32.0","42.0","52.0","62.0","82.0","102.0","1002.0"],"few":["3","4","9","23","24","29","33","34","39","43","44","49","103","1003","3.0","4.0","9.0","23.0","24.0","29.0","33.0","34.0","103.0","1003.0"],"many":["1000000","1000000.0","1000000.00","1000000.000","1000000.0000"],"other":["0","5","8","10","20","100","1000","10000","100000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0"]},"ordinal":{}}, "brx": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "bs": {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"few":["2","4","22","24","32","34","42","44","52","54","62","102","1002","0.2","0.4","1.2","1.4","2.2","2.4","3.2","3.4","4.2","4.4","5.2","10.2","100.2","1000.2"],"other":["0","5","19","100","1000","10000","100000","1000000","0.0","0.5","1.0","1.5","2.0","2.5","2.7","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, -"ca": {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1","3"],"two":["2"],"few":["4"],"other":["0","5","19","100","1000","10000","100000","1000000"]}}, +"ca": {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"one":["1","3"],"two":["2"],"few":["4"],"other":["0","5","19","100","1000","10000","100000","1000000"]}}, "ce": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "ceb": {"cardinal":{"one":["0","3","5","7","8","10","13","15","17","18","20","21","100","1000","10000","100000","1000000","0.0","0.3","0.5","0.7","0.8","1.0","1.3","1.5","1.7","1.8","2.0","2.1","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["4","6","9","14","16","19","24","26","104","1004","0.4","0.6","0.9","1.4","1.6","1.9","2.4","2.6","10.4","100.4","1000.4"]},"ordinal":{}}, "cgg": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, @@ -42,7 +42,7 @@ "el": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "en": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1","21","31","41","51","61","71","81","101","1001"],"two":["2","22","32","42","52","62","72","82","102","1002"],"few":["3","23","33","43","53","63","73","83","103","1003"],"other":["0","4","18","100","1000","10000","100000","1000000"]}}, "eo": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, -"es": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, +"es": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "et": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "eu": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "fa": {"cardinal":{"one":["0","1","0.0","1.0","0.00","0.04"],"other":["2","17","100","1000","10000","100000","1000000","1.1","2.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, @@ -50,7 +50,7 @@ "fi": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "fil": {"cardinal":{"one":["0","3","5","7","8","10","13","15","17","18","20","21","100","1000","10000","100000","1000000","0.0","0.3","0.5","0.7","0.8","1.0","1.3","1.5","1.7","1.8","2.0","2.1","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["4","6","9","14","16","19","24","26","104","1004","0.4","0.6","0.9","1.4","1.6","1.9","2.4","2.6","10.4","100.4","1000.4"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}, "fo": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, -"fr": {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000"],"other":["2","17","100","1000","10000","100000","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}, +"fr": {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["2","17","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}, "fur": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "fy": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "ga": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"few":["3","6","3.0","4.0","5.0","6.0","3.00","4.00","5.00","6.00","3.000","4.000","5.000","6.000","3.0000","4.0000","5.0000","6.0000"],"many":["7","10","7.0","8.0","9.0","10.0","7.00","8.00","9.00","10.00","7.000","8.000","9.000","10.000","7.0000","8.0000","9.0000","10.0000"],"other":["0","11","25","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.1","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}, @@ -76,7 +76,7 @@ "ii": {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "io": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "is": {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.0","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.2","0.9","1.2","1.8","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, -"it": {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, +"it": {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, "iu": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"other":["0","3","17","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "ja": {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "jbo": {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, @@ -109,7 +109,7 @@ "lg": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "lij": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, "lkt": {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, -"lld": {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, +"lld": {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, "ln": {"cardinal":{"one":["0","1","0.0","1.0","0.00","1.00","0.000","1.000","0.0000","1.0000"],"other":["2","17","100","1000","10000","100000","1000000","0.1","0.9","1.1","1.7","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "lo": {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}, "lt": {"cardinal":{"one":["1","21","31","41","51","61","71","81","101","1001","1.0","21.0","31.0","41.0","51.0","61.0","71.0","81.0","101.0","1001.0"],"few":["2","9","22","29","102","1002","2.0","3.0","4.0","5.0","6.0","7.0","8.0","9.0","22.0","102.0","1002.0"],"many":["0.1","0.9","1.1","1.7","10.1","100.1","1000.1"],"other":["0","10","20","30","40","50","60","100","1000","10000","100000","1000000","0.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, @@ -149,8 +149,8 @@ "pl": {"cardinal":{"one":["1"],"few":["2","4","22","24","32","34","42","44","52","54","62","102","1002"],"many":["0","5","19","100","1000","10000","100000","1000000"],"other":["0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "prg": {"cardinal":{"zero":["0","10","20","30","40","50","60","100","1000","10000","100000","1000000","0.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"one":["1","21","31","41","51","61","71","81","101","1001","0.1","1.0","1.1","2.1","3.1","4.1","5.1","6.1","7.1","10.1","100.1","1000.1"],"other":["2","9","22","29","102","1002","0.2","0.9","1.2","1.9","10.2","100.2","1000.2"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "ps": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, -"pt": {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000"],"other":["2","17","100","1000","10000","100000","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, -"pt_PT": {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, +"pt": {"cardinal":{"one":["0","1","0.0","1.0","1.5"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["2","17","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","2.0","3.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, +"pt_PT": {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{}}, "rm": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "ro": {"cardinal":{"one":["1"],"few":["0","2","16","101","1001","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"],"other":["20","35","100","1000","10000","100000","1000000"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}, "rof": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, @@ -160,7 +160,7 @@ "saq": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "sat": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"other":["0","3","17","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "sc": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, -"scn": {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, +"scn": {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","89","800","803"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, "sd": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "sdh": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "se": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"two":["2","2.0","2.00","2.000","2.0000"],"other":["0","3","17","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, @@ -209,7 +209,7 @@ "ur": {"cardinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "uz": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"other":["0","15","100","1000","10000","100000","1000000"]}}, "ve": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, -"vec": {"cardinal":{"one":["1"],"many":["1000000"],"other":["0","2","16","100","1000","10000","100000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, +"vec": {"cardinal":{"one":["1"],"many":["1000000","1c6","2c6","3c6","4c6","5c6","6c6","1.0000001c6","1.1c6","2.0000001c6","2.1c6","3.0000001c6","3.1c6"],"other":["0","2","16","100","1000","10000","100000","1c3","2c3","3c3","4c3","5c3","6c3","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0","1.0001c3","1.1c3","2.0001c3","2.1c3","3.0001c3","3.1c3"]},"ordinal":{"many":["8","11","80","800"],"other":["0","7","9","10","12","17","100","1000","10000","100000","1000000"]}}, "vi": {"cardinal":{"other":["0","15","100","1000","10000","100000","1000000","0.0","1.0","1.5","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{"one":["1"],"other":["0","2","16","100","1000","10000","100000","1000000"]}}, "vo": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, "vun": {"cardinal":{"one":["1","1.0","1.00","1.000","1.0000"],"other":["0","2","16","100","1000","10000","100000","1000000","0.0","0.9","1.1","1.6","10.0","100.0","1000.0","10000.0","100000.0","1000000.0"]},"ordinal":{}}, diff --git a/packages/plurals/plurals.js b/packages/plurals/plurals.js index 2761e38..13e3379 100644 --- a/packages/plurals/plurals.js +++ b/packages/plurals/plurals.js @@ -115,14 +115,14 @@ export const bs = (n, ord) => { : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few' : 'other'; }; -export const ca = (n, ord) => { +export const ca = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return (n == 1 || n == 3) ? 'one' : n == 2 ? 'two' : n == 4 ? 'few' : 'other'; return n == 1 && v0 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const ce = a; @@ -191,11 +191,11 @@ export const en = (n, ord) => { return n == 1 && v0 ? 'one' : 'other'; }; export const eo = a; -export const es = (n, ord) => { +export const es = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return 'other'; return n == 1 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const et = d; @@ -212,11 +212,11 @@ export const fil = (n, ord) => { return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other'; }; export const fo = a; -export const fr = (n, ord) => { +export const fr = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return n == 1 ? 'one' : 'other'; return n >= 0 && n < 2 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const fur = a; @@ -313,11 +313,11 @@ export const is = (n, ord) => { if (ord) return 'other'; return t0 && i10 == 1 && i100 != 11 || t % 10 == 1 && t % 100 != 11 ? 'one' : 'other'; }; -export const it = (n, ord) => { +export const it = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other'; return n == 1 && v0 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const iu = f; @@ -403,11 +403,11 @@ export const lij = (n, ord) => { return n == 1 && v0 ? 'one' : 'other'; }; export const lkt = e; -export const lld = (n, ord) => { +export const lld = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other'; return n == 1 && v0 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const ln = b; @@ -520,18 +520,18 @@ export const prg = (n, ord) => { : 'other'; }; export const ps = a; -export const pt = (n, ord) => { +export const pt = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return 'other'; return (i == 0 || i == 1) ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; -export const pt_PT = (n, ord) => { +export const pt_PT = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return 'other'; return n == 1 && v0 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const rm = a; @@ -560,11 +560,11 @@ export const sc = (n, ord) => { if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other'; return n == 1 && v0 ? 'one' : 'other'; }; -export const scn = (n, ord) => { +export const scn = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], t0 = Number(s[0]) == n, i1000000 = i.slice(-6); if (ord) return (n == 11 || n == 8 || (t0 && n >= 80 && n <= 89) || (t0 && n >= 800 && n <= 899)) ? 'many' : 'other'; return n == 1 && v0 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const sd = a; @@ -688,11 +688,11 @@ export const und = e; export const ur = d; export const uz = a; export const ve = a; -export const vec = (n, ord) => { +export const vec = (n, ord, c) => { const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6); if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other'; return n == 1 && v0 ? 'one' - : i != 0 && i1000000 == 0 && v0 ? 'many' + : !c && i != 0 && i1000000 == 0 && v0 || c > 5 ? 'many' : 'other'; }; export const vi = (n, ord) => { From ecdea6783649597a8bf26c63c081ec722b6eb655 Mon Sep 17 00:00:00 2001 From: Eemeli Aro Date: Mon, 29 Dec 2025 01:01:49 +0200 Subject: [PATCH 2/2] test: Adjust for testCat() API change --- test/plural-data.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/plural-data.mjs b/test/plural-data.mjs index f5085a3..9e6fc4f 100644 --- a/test/plural-data.mjs +++ b/test/plural-data.mjs @@ -29,10 +29,10 @@ function testPluralData(type, lc, getPlural) { cat + ': ' + Compiler.rules[type][lc]['pluralRule-count-' + cat], () => { it('Live data', () => { - testCat(lc, type, cat, values, mp) + testCat(lc, mp, false, type, cat, values) }) it('Output', () => { - testCat(lc, type, cat, values, getPlural(lc)) + testCat(lc, getPlural(lc), true, type, cat, values) }) } )