1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = getPluralRulesLocale;
|
7 |
|
8 | /**
|
9 | * Returns a `locale` for which a function exists in `./PluralRuleFunctions.js`.
|
10 | * @param {string} locale
|
11 | * @return {string}
|
12 | * @example
|
13 | * getPluralRulesLocale("ru-RU-Cyrl") // Returns "ru".
|
14 | */
|
15 | function getPluralRulesLocale(locale) {
|
16 | // "pt" language is the only one having different pluralization rules
|
17 | // for the one ("pt") (Portuguese) locale and the other ("pt-PT") (European Portuguese).
|
18 | // http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
|
19 | // (see the entries for "pt" and "pt_PT" there)
|
20 | if (locale === 'pt-PT') {
|
21 | return locale;
|
22 | }
|
23 |
|
24 | return getLanguageFromLanguageTag(locale);
|
25 | }
|
26 | /**
|
27 | * Extracts language from an IETF BCP 47 language tag.
|
28 | * @param {string} languageTag - IETF BCP 47 language tag.
|
29 | * @return {string}
|
30 | * @example
|
31 | * // Returns "he"
|
32 | * getLanguageFromLanguageTag("he-IL-u-ca-hebrew-tz-jeruslm")
|
33 | * // Returns "ar"
|
34 | * getLanguageFromLanguageTag("ar-u-nu-latn")
|
35 | */
|
36 |
|
37 |
|
38 | var LANGUAGE_REG_EXP = /^([a-z0-9]+)/i;
|
39 |
|
40 | function getLanguageFromLanguageTag(languageTag) {
|
41 | var match = languageTag.match(LANGUAGE_REG_EXP);
|
42 |
|
43 | if (!match) {
|
44 | throw new TypeError("Invalid locale: ".concat(languageTag));
|
45 | }
|
46 |
|
47 | return match[1];
|
48 | }
|
49 | //# sourceMappingURL=getPluralRulesLocale.js.map |
\ | No newline at end of file |