summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/lib/sdk/l10n/plural-rules.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-09 06:46:43 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-09 06:46:43 -0500
commitac46df8daea09899ce30dc8fd70986e258c746bf (patch)
tree2750d3125fc253fd5b0671e4bd268eff1fd97296 /addon-sdk/source/lib/sdk/l10n/plural-rules.js
parent8cecf8d5208f3945b35f879bba3015bb1a11bec6 (diff)
downloadUXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.gz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.lz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.xz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.zip
Move Add-on SDK source to toolkit/jetpack
Diffstat (limited to 'addon-sdk/source/lib/sdk/l10n/plural-rules.js')
-rw-r--r--addon-sdk/source/lib/sdk/l10n/plural-rules.js407
1 files changed, 0 insertions, 407 deletions
diff --git a/addon-sdk/source/lib/sdk/l10n/plural-rules.js b/addon-sdk/source/lib/sdk/l10n/plural-rules.js
deleted file mode 100644
index a3ef48a5e..000000000
--- a/addon-sdk/source/lib/sdk/l10n/plural-rules.js
+++ /dev/null
@@ -1,407 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-// This file is automatically generated with /python-lib/plural-rules-generator.py
-// Fetching data from: http://unicode.org/repos/cldr/trunk/common/supplemental/plurals.xml
-
-// Mapping of short locale name == to == > rule index in following list
-
-module.metadata = {
- "stability": "unstable"
-};
-
-const LOCALES_TO_RULES = {
- "af": 3,
- "ak": 4,
- "am": 4,
- "ar": 1,
- "asa": 3,
- "az": 0,
- "be": 11,
- "bem": 3,
- "bez": 3,
- "bg": 3,
- "bh": 4,
- "bm": 0,
- "bn": 3,
- "bo": 0,
- "br": 20,
- "brx": 3,
- "bs": 11,
- "ca": 3,
- "cgg": 3,
- "chr": 3,
- "cs": 12,
- "cy": 17,
- "da": 3,
- "de": 3,
- "dv": 3,
- "dz": 0,
- "ee": 3,
- "el": 3,
- "en": 3,
- "eo": 3,
- "es": 3,
- "et": 3,
- "eu": 3,
- "fa": 0,
- "ff": 5,
- "fi": 3,
- "fil": 4,
- "fo": 3,
- "fr": 5,
- "fur": 3,
- "fy": 3,
- "ga": 8,
- "gd": 24,
- "gl": 3,
- "gsw": 3,
- "gu": 3,
- "guw": 4,
- "gv": 23,
- "ha": 3,
- "haw": 3,
- "he": 2,
- "hi": 4,
- "hr": 11,
- "hu": 0,
- "id": 0,
- "ig": 0,
- "ii": 0,
- "is": 3,
- "it": 3,
- "iu": 7,
- "ja": 0,
- "jmc": 3,
- "jv": 0,
- "ka": 0,
- "kab": 5,
- "kaj": 3,
- "kcg": 3,
- "kde": 0,
- "kea": 0,
- "kk": 3,
- "kl": 3,
- "km": 0,
- "kn": 0,
- "ko": 0,
- "ksb": 3,
- "ksh": 21,
- "ku": 3,
- "kw": 7,
- "lag": 18,
- "lb": 3,
- "lg": 3,
- "ln": 4,
- "lo": 0,
- "lt": 10,
- "lv": 6,
- "mas": 3,
- "mg": 4,
- "mk": 16,
- "ml": 3,
- "mn": 3,
- "mo": 9,
- "mr": 3,
- "ms": 0,
- "mt": 15,
- "my": 0,
- "nah": 3,
- "naq": 7,
- "nb": 3,
- "nd": 3,
- "ne": 3,
- "nl": 3,
- "nn": 3,
- "no": 3,
- "nr": 3,
- "nso": 4,
- "ny": 3,
- "nyn": 3,
- "om": 3,
- "or": 3,
- "pa": 3,
- "pap": 3,
- "pl": 13,
- "ps": 3,
- "pt": 3,
- "rm": 3,
- "ro": 9,
- "rof": 3,
- "ru": 11,
- "rwk": 3,
- "sah": 0,
- "saq": 3,
- "se": 7,
- "seh": 3,
- "ses": 0,
- "sg": 0,
- "sh": 11,
- "shi": 19,
- "sk": 12,
- "sl": 14,
- "sma": 7,
- "smi": 7,
- "smj": 7,
- "smn": 7,
- "sms": 7,
- "sn": 3,
- "so": 3,
- "sq": 3,
- "sr": 11,
- "ss": 3,
- "ssy": 3,
- "st": 3,
- "sv": 3,
- "sw": 3,
- "syr": 3,
- "ta": 3,
- "te": 3,
- "teo": 3,
- "th": 0,
- "ti": 4,
- "tig": 3,
- "tk": 3,
- "tl": 4,
- "tn": 3,
- "to": 0,
- "tr": 0,
- "ts": 3,
- "tzm": 22,
- "uk": 11,
- "ur": 3,
- "ve": 3,
- "vi": 0,
- "vun": 3,
- "wa": 4,
- "wae": 3,
- "wo": 0,
- "xh": 3,
- "xog": 3,
- "yo": 0,
- "zh": 0,
- "zu": 3
-};
-
-// Utility functions for plural rules methods
-function isIn(n, list) {
- return list.indexOf(n) !== -1;
-}
-function isBetween(n, start, end) {
- return start <= n && n <= end;
-}
-
-// List of all plural rules methods, that maps an integer to the plural form name to use
-const RULES = {
- "0": function (n) {
-
- return "other"
- },
- "1": function (n) {
- if ((isBetween((n % 100), 3, 10)))
- return "few";
- if (n == 0)
- return "zero";
- if ((isBetween((n % 100), 11, 99)))
- return "many";
- if (n == 2)
- return "two";
- if (n == 1)
- return "one";
- return "other"
- },
- "2": function (n) {
- if (n != 0 && (n % 10) == 0)
- return "many";
- if (n == 2)
- return "two";
- if (n == 1)
- return "one";
- return "other"
- },
- "3": function (n) {
- if (n == 1)
- return "one";
- return "other"
- },
- "4": function (n) {
- if ((isBetween(n, 0, 1)))
- return "one";
- return "other"
- },
- "5": function (n) {
- if ((isBetween(n, 0, 2)) && n != 2)
- return "one";
- return "other"
- },
- "6": function (n) {
- if (n == 0)
- return "zero";
- if ((n % 10) == 1 && (n % 100) != 11)
- return "one";
- return "other"
- },
- "7": function (n) {
- if (n == 2)
- return "two";
- if (n == 1)
- return "one";
- return "other"
- },
- "8": function (n) {
- if ((isBetween(n, 3, 6)))
- return "few";
- if ((isBetween(n, 7, 10)))
- return "many";
- if (n == 2)
- return "two";
- if (n == 1)
- return "one";
- return "other"
- },
- "9": function (n) {
- if (n == 0 || n != 1 && (isBetween((n % 100), 1, 19)))
- return "few";
- if (n == 1)
- return "one";
- return "other"
- },
- "10": function (n) {
- if ((isBetween((n % 10), 2, 9)) && !(isBetween((n % 100), 11, 19)))
- return "few";
- if ((n % 10) == 1 && !(isBetween((n % 100), 11, 19)))
- return "one";
- return "other"
- },
- "11": function (n) {
- if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14)))
- return "few";
- if ((n % 10) == 0 || (isBetween((n % 10), 5, 9)) || (isBetween((n % 100), 11, 14)))
- return "many";
- if ((n % 10) == 1 && (n % 100) != 11)
- return "one";
- return "other"
- },
- "12": function (n) {
- if ((isBetween(n, 2, 4)))
- return "few";
- if (n == 1)
- return "one";
- return "other"
- },
- "13": function (n) {
- if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14)))
- return "few";
- if (n != 1 && (isBetween((n % 10), 0, 1)) || (isBetween((n % 10), 5, 9)) || (isBetween((n % 100), 12, 14)))
- return "many";
- if (n == 1)
- return "one";
- return "other"
- },
- "14": function (n) {
- if ((isBetween((n % 100), 3, 4)))
- return "few";
- if ((n % 100) == 2)
- return "two";
- if ((n % 100) == 1)
- return "one";
- return "other"
- },
- "15": function (n) {
- if (n == 0 || (isBetween((n % 100), 2, 10)))
- return "few";
- if ((isBetween((n % 100), 11, 19)))
- return "many";
- if (n == 1)
- return "one";
- return "other"
- },
- "16": function (n) {
- if ((n % 10) == 1 && n != 11)
- return "one";
- return "other"
- },
- "17": function (n) {
- if (n == 3)
- return "few";
- if (n == 0)
- return "zero";
- if (n == 6)
- return "many";
- if (n == 2)
- return "two";
- if (n == 1)
- return "one";
- return "other"
- },
- "18": function (n) {
- if (n == 0)
- return "zero";
- if ((isBetween(n, 0, 2)) && n != 0 && n != 2)
- return "one";
- return "other"
- },
- "19": function (n) {
- if ((isBetween(n, 2, 10)))
- return "few";
- if ((isBetween(n, 0, 1)))
- return "one";
- return "other"
- },
- "20": function (n) {
- if ((isBetween((n % 10), 3, 4) || ((n % 10) == 9)) && !(isBetween((n % 100), 10, 19) || isBetween((n % 100), 70, 79) || isBetween((n % 100), 90, 99)))
- return "few";
- if ((n % 1000000) == 0 && n != 0)
- return "many";
- if ((n % 10) == 2 && !isIn((n % 100), [12, 72, 92]))
- return "two";
- if ((n % 10) == 1 && !isIn((n % 100), [11, 71, 91]))
- return "one";
- return "other"
- },
- "21": function (n) {
- if (n == 0)
- return "zero";
- if (n == 1)
- return "one";
- return "other"
- },
- "22": function (n) {
- if ((isBetween(n, 0, 1)) || (isBetween(n, 11, 99)))
- return "one";
- return "other"
- },
- "23": function (n) {
- if ((isBetween((n % 10), 1, 2)) || (n % 20) == 0)
- return "one";
- return "other"
- },
- "24": function (n) {
- if ((isBetween(n, 3, 10) || isBetween(n, 13, 19)))
- return "few";
- if (isIn(n, [2, 12]))
- return "two";
- if (isIn(n, [1, 11]))
- return "one";
- return "other"
- },
-};
-
-/**
- * Return a function that gives the plural form name for a given integer
- * for the specified `locale`
- * let fun = getRulesForLocale('en');
- * fun(1) -> 'one'
- * fun(0) -> 'other'
- * fun(1000) -> 'other'
- */
-exports.getRulesForLocale = function getRulesForLocale(locale) {
- let index = LOCALES_TO_RULES[locale];
- if (!(index in RULES)) {
- console.warn('Plural form unknown for locale "' + locale + '"');
- return function () { return "other"; };
- }
- return RULES[index];
-}
-