'f'
mh-two-thousand-and-two
2024-04-12 26f2711ef9461961fb953e2b497bd314ef95e345
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"use strict";
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getPlural = getPlural;
exports.getAllPlurals = getAllPlurals;
 
var _pluralCategories = _interopRequireDefault(require("make-plural/umd/pluralCategories"));
 
var _plurals = _interopRequireDefault(require("make-plural/umd/plurals"));
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
/**
 * @class
 * @private
 * @hideconstructor
 * @classdesc Utility getter/wrapper for pluralization functions from
 * {@link http://github.com/eemeli/make-plural.js make-plural}
 */
function wrapPluralFunc(lc, pf, pluralKeyChecks) {
  var fn = function () {
    return pf.apply(this, arguments);
  };
 
  fn.toString = () => pf.toString();
 
  if (pluralKeyChecks) {
    const pc = _pluralCategories.default[lc] || {};
    fn.cardinal = pc.cardinal;
    fn.ordinal = pc.ordinal;
  } else {
    fn.cardinal = [];
    fn.ordinal = [];
  }
 
  return fn;
}
 
function getPlural(locale, {
  pluralKeyChecks
}) {
  for (let lc = String(locale); lc; lc = lc.replace(/[-_]?[^-_]*$/, '')) {
    const pf = _plurals.default[lc];
    if (pf) return wrapPluralFunc(lc, pf, pluralKeyChecks);
  }
 
  throw new Error('Localisation function not found for locale ' + JSON.stringify(locale));
}
 
function getAllPlurals({
  pluralKeyChecks
}) {
  const locales = {};
  const keys = Object.keys(_plurals.default);
 
  for (let i = 0; i < keys.length; ++i) {
    const lc = keys[i];
    locales[lc] = wrapPluralFunc(lc, _plurals.default[lc], pluralKeyChecks);
  }
 
  return locales;
}