initial commit
This commit is contained in:
289
node_modules/i18next/dist/commonjs/PluralResolver.js
generated
vendored
Normal file
289
node_modules/i18next/dist/commonjs/PluralResolver.js
generated
vendored
Normal file
@@ -0,0 +1,289 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
||||
|
||||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
||||
|
||||
var _logger = _interopRequireDefault(require("./logger.js"));
|
||||
|
||||
// definition http://translate.sourceforge.net/wiki/l10n/pluralforms
|
||||
|
||||
/* eslint-disable */
|
||||
var sets = [{
|
||||
lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'],
|
||||
nr: [1, 2],
|
||||
fc: 1
|
||||
}, {
|
||||
lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],
|
||||
nr: [1, 2],
|
||||
fc: 2
|
||||
}, {
|
||||
lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],
|
||||
nr: [1],
|
||||
fc: 3
|
||||
}, {
|
||||
lngs: ['be', 'bs', 'dz', 'hr', 'ru', 'sr', 'uk'],
|
||||
nr: [1, 2, 5],
|
||||
fc: 4
|
||||
}, {
|
||||
lngs: ['ar'],
|
||||
nr: [0, 1, 2, 3, 11, 100],
|
||||
fc: 5
|
||||
}, {
|
||||
lngs: ['cs', 'sk'],
|
||||
nr: [1, 2, 5],
|
||||
fc: 6
|
||||
}, {
|
||||
lngs: ['csb', 'pl'],
|
||||
nr: [1, 2, 5],
|
||||
fc: 7
|
||||
}, {
|
||||
lngs: ['cy'],
|
||||
nr: [1, 2, 3, 8],
|
||||
fc: 8
|
||||
}, {
|
||||
lngs: ['fr'],
|
||||
nr: [1, 2],
|
||||
fc: 9
|
||||
}, {
|
||||
lngs: ['ga'],
|
||||
nr: [1, 2, 3, 7, 11],
|
||||
fc: 10
|
||||
}, {
|
||||
lngs: ['gd'],
|
||||
nr: [1, 2, 3, 20],
|
||||
fc: 11
|
||||
}, {
|
||||
lngs: ['is'],
|
||||
nr: [1, 2],
|
||||
fc: 12
|
||||
}, {
|
||||
lngs: ['jv'],
|
||||
nr: [0, 1],
|
||||
fc: 13
|
||||
}, {
|
||||
lngs: ['kw'],
|
||||
nr: [1, 2, 3, 4],
|
||||
fc: 14
|
||||
}, {
|
||||
lngs: ['lt'],
|
||||
nr: [1, 2, 10],
|
||||
fc: 15
|
||||
}, {
|
||||
lngs: ['lv'],
|
||||
nr: [1, 2, 0],
|
||||
fc: 16
|
||||
}, {
|
||||
lngs: ['mk'],
|
||||
nr: [1, 2],
|
||||
fc: 17
|
||||
}, {
|
||||
lngs: ['mnk'],
|
||||
nr: [0, 1, 2],
|
||||
fc: 18
|
||||
}, {
|
||||
lngs: ['mt'],
|
||||
nr: [1, 2, 11, 20],
|
||||
fc: 19
|
||||
}, {
|
||||
lngs: ['or'],
|
||||
nr: [2, 1],
|
||||
fc: 2
|
||||
}, {
|
||||
lngs: ['ro'],
|
||||
nr: [1, 2, 20],
|
||||
fc: 20
|
||||
}, {
|
||||
lngs: ['sl'],
|
||||
nr: [5, 1, 2, 3],
|
||||
fc: 21
|
||||
}, {
|
||||
lngs: ['he'],
|
||||
nr: [1, 2, 20, 21],
|
||||
fc: 22
|
||||
}];
|
||||
var _rulesPluralsTypes = {
|
||||
1: function _(n) {
|
||||
return Number(n > 1);
|
||||
},
|
||||
2: function _(n) {
|
||||
return Number(n != 1);
|
||||
},
|
||||
3: function _(n) {
|
||||
return 0;
|
||||
},
|
||||
4: function _(n) {
|
||||
return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
|
||||
},
|
||||
5: function _(n) {
|
||||
return Number(n === 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);
|
||||
},
|
||||
6: function _(n) {
|
||||
return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);
|
||||
},
|
||||
7: function _(n) {
|
||||
return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
|
||||
},
|
||||
8: function _(n) {
|
||||
return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);
|
||||
},
|
||||
9: function _(n) {
|
||||
return Number(n >= 2);
|
||||
},
|
||||
10: function _(n) {
|
||||
return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);
|
||||
},
|
||||
11: function _(n) {
|
||||
return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);
|
||||
},
|
||||
12: function _(n) {
|
||||
return Number(n % 10 != 1 || n % 100 == 11);
|
||||
},
|
||||
13: function _(n) {
|
||||
return Number(n !== 0);
|
||||
},
|
||||
14: function _(n) {
|
||||
return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);
|
||||
},
|
||||
15: function _(n) {
|
||||
return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
|
||||
},
|
||||
16: function _(n) {
|
||||
return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);
|
||||
},
|
||||
17: function _(n) {
|
||||
return Number(n == 1 || n % 10 == 1 ? 0 : 1);
|
||||
},
|
||||
18: function _(n) {
|
||||
return Number(n == 0 ? 0 : n == 1 ? 1 : 2);
|
||||
},
|
||||
19: function _(n) {
|
||||
return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);
|
||||
},
|
||||
20: function _(n) {
|
||||
return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);
|
||||
},
|
||||
21: function _(n) {
|
||||
return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);
|
||||
},
|
||||
22: function _(n) {
|
||||
return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);
|
||||
}
|
||||
};
|
||||
/* eslint-enable */
|
||||
|
||||
function createRules() {
|
||||
var rules = {};
|
||||
sets.forEach(function (set) {
|
||||
set.lngs.forEach(function (l) {
|
||||
rules[l] = {
|
||||
numbers: set.nr,
|
||||
plurals: _rulesPluralsTypes[set.fc]
|
||||
};
|
||||
});
|
||||
});
|
||||
return rules;
|
||||
}
|
||||
|
||||
var PluralResolver =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function PluralResolver(languageUtils) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
(0, _classCallCheck2.default)(this, PluralResolver);
|
||||
this.languageUtils = languageUtils;
|
||||
this.options = options;
|
||||
this.logger = _logger.default.create('pluralResolver');
|
||||
this.rules = createRules();
|
||||
}
|
||||
|
||||
(0, _createClass2.default)(PluralResolver, [{
|
||||
key: "addRule",
|
||||
value: function addRule(lng, obj) {
|
||||
this.rules[lng] = obj;
|
||||
}
|
||||
}, {
|
||||
key: "getRule",
|
||||
value: function getRule(code) {
|
||||
return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];
|
||||
}
|
||||
}, {
|
||||
key: "needsPlural",
|
||||
value: function needsPlural(code) {
|
||||
var rule = this.getRule(code);
|
||||
return rule && rule.numbers.length > 1;
|
||||
}
|
||||
}, {
|
||||
key: "getPluralFormsOfKey",
|
||||
value: function getPluralFormsOfKey(code, key) {
|
||||
var _this = this;
|
||||
|
||||
var ret = [];
|
||||
var rule = this.getRule(code);
|
||||
if (!rule) return ret;
|
||||
rule.numbers.forEach(function (n) {
|
||||
var suffix = _this.getSuffix(code, n);
|
||||
|
||||
ret.push("".concat(key).concat(suffix));
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
}, {
|
||||
key: "getSuffix",
|
||||
value: function getSuffix(code, count) {
|
||||
var _this2 = this;
|
||||
|
||||
var rule = this.getRule(code);
|
||||
|
||||
if (rule) {
|
||||
// if (rule.numbers.length === 1) return ''; // only singular
|
||||
var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));
|
||||
var suffix = rule.numbers[idx]; // special treatment for lngs only having singular and plural
|
||||
|
||||
if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
|
||||
if (suffix === 2) {
|
||||
suffix = 'plural';
|
||||
} else if (suffix === 1) {
|
||||
suffix = '';
|
||||
}
|
||||
}
|
||||
|
||||
var returnSuffix = function returnSuffix() {
|
||||
return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();
|
||||
}; // COMPATIBILITY JSON
|
||||
// v1
|
||||
|
||||
|
||||
if (this.options.compatibilityJSON === 'v1') {
|
||||
if (suffix === 1) return '';
|
||||
if (typeof suffix === 'number') return "_plural_".concat(suffix.toString());
|
||||
return returnSuffix();
|
||||
} else if (
|
||||
/* v2 */
|
||||
this.options.compatibilityJSON === 'v2') {
|
||||
return returnSuffix();
|
||||
} else if (
|
||||
/* v3 - gettext index */
|
||||
this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
|
||||
return returnSuffix();
|
||||
}
|
||||
|
||||
return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();
|
||||
}
|
||||
|
||||
this.logger.warn("no plural rule found for: ".concat(code));
|
||||
return '';
|
||||
}
|
||||
}]);
|
||||
return PluralResolver;
|
||||
}();
|
||||
|
||||
var _default = PluralResolver;
|
||||
exports.default = _default;
|
Reference in New Issue
Block a user