]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Fix src/locale (missing local variables)
authorIskren Chernev <iskren.chernev@gmail.com>
Wed, 4 Feb 2015 10:29:29 +0000 (02:29 -0800)
committerIskren Chernev <iskren.chernev@gmail.com>
Wed, 25 Mar 2015 16:27:43 +0000 (09:27 -0700)
39 files changed:
src/locale/ar-sa.js
src/locale/ar.js
src/locale/az.js
src/locale/be.js
src/locale/bn.js
src/locale/bo.js
src/locale/br.js
src/locale/bs.js
src/locale/cs.js
src/locale/de-at.js
src/locale/de.js
src/locale/es.js
src/locale/et.js
src/locale/fa.js
src/locale/fi.js
src/locale/fy.js
src/locale/hi.js
src/locale/hr.js
src/locale/hu.js
src/locale/hy-am.js
src/locale/is.js
src/locale/ka.js
src/locale/lb.js
src/locale/lt.js
src/locale/lv.js
src/locale/mr.js
src/locale/my.js
src/locale/ne.js
src/locale/nl.js
src/locale/pl.js
src/locale/ro.js
src/locale/ru.js
src/locale/sk.js
src/locale/sl.js
src/locale/sr-cyrl.js
src/locale/sr.js
src/locale/ta.js
src/locale/tr.js
src/locale/uk.js

index 6ee0d27ab331beadb04b12c4b0413353b95b3b3e..06437ae712e88a5d08a1e052a46966ffd74ca62c 100644 (file)
@@ -4,6 +4,30 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '١',
+    '2': '٢',
+    '3': '٣',
+    '4': '٤',
+    '5': '٥',
+    '6': '٦',
+    '7': '٧',
+    '8': '٨',
+    '9': '٩',
+    '0': '٠'
+}, numberMap = {
+    '١': '1',
+    '٢': '2',
+    '٣': '3',
+    '٤': '4',
+    '٥': '5',
+    '٦': '6',
+    '٧': '7',
+    '٨': '8',
+    '٩': '9',
+    '٠': '0'
+};
+
 export default moment.defineLocale('ar-sa', {
     months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
     monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
index f2cefd4b19020fb817a0830d07d8f9fa20368d4d..5a57c67fedbe58553ab81c62ffa81f6ac6f1ea07 100644 (file)
@@ -6,6 +6,61 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '١',
+    '2': '٢',
+    '3': '٣',
+    '4': '٤',
+    '5': '٥',
+    '6': '٦',
+    '7': '٧',
+    '8': '٨',
+    '9': '٩',
+    '0': '٠'
+}, numberMap = {
+    '١': '1',
+    '٢': '2',
+    '٣': '3',
+    '٤': '4',
+    '٥': '5',
+    '٦': '6',
+    '٧': '7',
+    '٨': '8',
+    '٩': '9',
+    '٠': '0'
+}, pluralForm = function (n) {
+    return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
+}, plurals = {
+    s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
+    m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
+    h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
+    d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
+    M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
+    y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
+}, pluralize = function (u) {
+    return function (number, withoutSuffix, string, isFuture) {
+        var f = pluralForm(number),
+            str = plurals[u][pluralForm(number)];
+        if (f === 2) {
+            str = str[withoutSuffix ? 0 : 1];
+        }
+        return str.replace(/%d/i, number);
+    };
+}, months = [
+    'كانون الثاني يناير',
+    'شباط فبراير',
+    'آذار مارس',
+    'نيسان أبريل',
+    'أيار مايو',
+    'حزيران يونيو',
+    'تموز يوليو',
+    'آب أغسطس',
+    'أيلول سبتمبر',
+    'تشرين الأول أكتوبر',
+    'تشرين الثاني نوفمبر',
+    'كانون الأول ديسمبر'
+];
+
 export default moment.defineLocale('ar', {
     months : months,
     monthsShort : months,
index 750c9f213501e6ed3b90cfa100c67eb603b6a251..18600ff6c5032a625e3d30c5323cefa08dcbeffa 100644 (file)
@@ -4,6 +4,27 @@
 
 import moment from "../moment";
 
+var suffixes = {
+    1: '-inci',
+    5: '-inci',
+    8: '-inci',
+    70: '-inci',
+    80: '-inci',
+    2: '-nci',
+    7: '-nci',
+    20: '-nci',
+    50: '-nci',
+    3: '-üncü',
+    4: '-üncü',
+    100: '-üncü',
+    6: '-ncı',
+    9: '-uncu',
+    10: '-uncu',
+    30: '-uncu',
+    60: '-ıncı',
+    90: '-ıncı'
+};
+
 export default moment.defineLocale('az', {
     months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
     monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
index 2f4c328875c19d7d1af7c5da5786324bf8da7181..07c4250de03dd5b8b3e23e1fe9c0bc33cfae1294 100644 (file)
@@ -6,6 +6,49 @@
 
 import moment from "../moment";
 
+function plural(word, num) {
+    var forms = word.split('_');
+    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+}
+function relativeTimeWithPlural(number, withoutSuffix, key) {
+    var format = {
+        'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
+        'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
+        'dd': 'дзень_дні_дзён',
+        'MM': 'месяц_месяцы_месяцаў',
+        'yy': 'год_гады_гадоў'
+    };
+    if (key === 'm') {
+        return withoutSuffix ? 'хвіліна' : 'хвіліну';
+    }
+    else if (key === 'h') {
+        return withoutSuffix ? 'гадзіна' : 'гадзіну';
+    }
+    else {
+        return number + ' ' + plural(format[key], +number);
+    }
+}
+function monthsCaseReplace(m, format) {
+    var months = {
+        'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
+        'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
+    },
+    nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+        'accusative' :
+        'nominative';
+    return months[nounCase][m.month()];
+}
+function weekdaysCaseReplace(m, format) {
+    var weekdays = {
+        'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
+        'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_')
+    },
+    nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ?
+        'accusative' :
+        'nominative';
+    return weekdays[nounCase][m.day()];
+}
+
 export default moment.defineLocale('be', {
     months : monthsCaseReplace,
     monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
index 15421db36f47c56d8bf5c2ecd40e472454d174a8..a8bd8888bf536c9b909e1644f683040954bd289e 100644 (file)
@@ -4,6 +4,31 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '১',
+    '2': '২',
+    '3': '৩',
+    '4': '৪',
+    '5': '৫',
+    '6': '৬',
+    '7': '৭',
+    '8': '৮',
+    '9': '৯',
+    '0': '০'
+},
+numberMap = {
+    '১': '1',
+    '২': '2',
+    '৩': '3',
+    '৪': '4',
+    '৫': '5',
+    '৬': '6',
+    '৭': '7',
+    '৮': '8',
+    '৯': '9',
+    '০': '0'
+};
+
 export default moment.defineLocale('bn', {
     months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
     monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'),
index 9439ca84f8f6c50c60798953197c645c8fd049bf..8f8e11508f63fdfc83695b7d59f3682c0a0bb925 100644 (file)
@@ -4,6 +4,31 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '༡',
+    '2': '༢',
+    '3': '༣',
+    '4': '༤',
+    '5': '༥',
+    '6': '༦',
+    '7': '༧',
+    '8': '༨',
+    '9': '༩',
+    '0': '༠'
+},
+numberMap = {
+    '༡': '1',
+    '༢': '2',
+    '༣': '3',
+    '༤': '4',
+    '༥': '5',
+    '༦': '6',
+    '༧': '7',
+    '༨': '8',
+    '༩': '9',
+    '༠': '0'
+};
+
 export default moment.defineLocale('bo', {
     months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
     monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
index 7e8a1ec7bcc87592e1d6cbc93ca41b6923c0256b..1f1ee6a7d192ac28b7113d9c79ac8d781693e3c3 100644 (file)
@@ -4,6 +4,50 @@
 
 import moment from "../moment";
 
+function relativeTimeWithMutation(number, withoutSuffix, key) {
+    var format = {
+        'mm': 'munutenn',
+        'MM': 'miz',
+        'dd': 'devezh'
+    };
+    return number + ' ' + mutation(format[key], number);
+}
+function specialMutationForYears(number) {
+    switch (lastNumber(number)) {
+    case 1:
+    case 3:
+    case 4:
+    case 5:
+    case 9:
+        return number + ' bloaz';
+    default:
+        return number + ' vloaz';
+    }
+}
+function lastNumber(number) {
+    if (number > 9) {
+        return lastNumber(number % 10);
+    }
+    return number;
+}
+function mutation(text, number) {
+    if (number === 2) {
+        return softMutation(text);
+    }
+    return text;
+}
+function softMutation(text) {
+    var mutationTable = {
+        'm': 'v',
+        'b': 'v',
+        'd': 'z'
+    };
+    if (mutationTable[text.charAt(0)] === undefined) {
+        return text;
+    }
+    return mutationTable[text.charAt(0)] + text.substring(1);
+}
+
 export default moment.defineLocale('br', {
     months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
     monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
index a31386efea5f67d40ee33031018dfe41a46f3366..7451027040dd9c239200ac21426f81aca4401fcf 100644 (file)
@@ -5,6 +5,59 @@
 
 import moment from "../moment";
 
+function translate(number, withoutSuffix, key) {
+    var result = number + ' ';
+    switch (key) {
+    case 'm':
+        return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+    case 'mm':
+        if (number === 1) {
+            result += 'minuta';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'minute';
+        } else {
+            result += 'minuta';
+        }
+        return result;
+    case 'h':
+        return withoutSuffix ? 'jedan sat' : 'jednog sata';
+    case 'hh':
+        if (number === 1) {
+            result += 'sat';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'sata';
+        } else {
+            result += 'sati';
+        }
+        return result;
+    case 'dd':
+        if (number === 1) {
+            result += 'dan';
+        } else {
+            result += 'dana';
+        }
+        return result;
+    case 'MM':
+        if (number === 1) {
+            result += 'mjesec';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'mjeseca';
+        } else {
+            result += 'mjeseci';
+        }
+        return result;
+    case 'yy':
+        if (number === 1) {
+            result += 'godina';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'godine';
+        } else {
+            result += 'godina';
+        }
+        return result;
+    }
+}
+
 export default moment.defineLocale('bs', {
     months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
     monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
index d66370476a5dc382c0d030e7b80358b17bb6def8..9867450143aaad8ac11540bbec33cf46e74eadf4 100644 (file)
@@ -4,6 +4,64 @@
 
 import moment from "../moment";
 
+var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
+    monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
+function plural(n) {
+    return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
+}
+function translate(number, withoutSuffix, key, isFuture) {
+    var result = number + ' ';
+    switch (key) {
+    case 's':  // a few seconds / in a few seconds / a few seconds ago
+        return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
+    case 'm':  // a minute / in a minute / a minute ago
+        return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
+    case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'minuty' : 'minut');
+        } else {
+            return result + 'minutami';
+        }
+        break;
+    case 'h':  // an hour / in an hour / an hour ago
+        return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+    case 'hh': // 9 hours / in 9 hours / 9 hours ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'hodiny' : 'hodin');
+        } else {
+            return result + 'hodinami';
+        }
+        break;
+    case 'd':  // a day / in a day / a day ago
+        return (withoutSuffix || isFuture) ? 'den' : 'dnem';
+    case 'dd': // 9 days / in 9 days / 9 days ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'dny' : 'dní');
+        } else {
+            return result + 'dny';
+        }
+        break;
+    case 'M':  // a month / in a month / a month ago
+        return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
+    case 'MM': // 9 months / in 9 months / 9 months ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'měsíce' : 'měsíců');
+        } else {
+            return result + 'měsíci';
+        }
+        break;
+    case 'y':  // a year / in a year / a year ago
+        return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
+    case 'yy': // 9 years / in 9 years / 9 years ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'roky' : 'let');
+        } else {
+            return result + 'lety';
+        }
+        break;
+    }
+}
+
 export default moment.defineLocale('cs', {
     months : months,
     monthsShort : monthsShort,
index 9802b345a10f9300cb0a4a47a48dff38344a8fc8..ef1336a446bb439e5d8e0a3ea3a2917d76991dd8 100644 (file)
@@ -6,6 +6,20 @@
 
 import moment from "../moment";
 
+function processRelativeTime(number, withoutSuffix, key, isFuture) {
+    var format = {
+        'm': ['eine Minute', 'einer Minute'],
+        'h': ['eine Stunde', 'einer Stunde'],
+        'd': ['ein Tag', 'einem Tag'],
+        'dd': [number + ' Tage', number + ' Tagen'],
+        'M': ['ein Monat', 'einem Monat'],
+        'MM': [number + ' Monate', number + ' Monaten'],
+        'y': ['ein Jahr', 'einem Jahr'],
+        'yy': [number + ' Jahre', number + ' Jahren']
+    };
+    return withoutSuffix ? format[key][0] : format[key][1];
+}
+
 export default moment.defineLocale('de-at', {
     months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
     monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
index f171f7f633ee1745560853caab56ca0952bcea55..e62b39f14505bd8c89c3e8d159896973dac4ef18 100644 (file)
@@ -5,6 +5,20 @@
 
 import moment from "../moment";
 
+function processRelativeTime(number, withoutSuffix, key, isFuture) {
+    var format = {
+        'm': ['eine Minute', 'einer Minute'],
+        'h': ['eine Stunde', 'einer Stunde'],
+        'd': ['ein Tag', 'einem Tag'],
+        'dd': [number + ' Tage', number + ' Tagen'],
+        'M': ['ein Monat', 'einem Monat'],
+        'MM': [number + ' Monate', number + ' Monaten'],
+        'y': ['ein Jahr', 'einem Jahr'],
+        'yy': [number + ' Jahre', number + ' Jahren']
+    };
+    return withoutSuffix ? format[key][0] : format[key][1];
+}
+
 export default moment.defineLocale('de', {
     months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
     monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
index 870919b94233b502294124da306f469aa6f98158..fc53c63e7fa7df05ccbdde90bf5f6bd3c97206db 100644 (file)
@@ -4,6 +4,9 @@
 
 import moment from "../moment";
 
+var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
+    monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
+
 export default moment.defineLocale('es', {
     months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
     monthsShort : function (m, format) {
index 0c72ddd72f4070c7805353d77d46f25649047635..309a4665e263c1ca23d58cab9cede638508a138e 100644 (file)
@@ -5,6 +5,25 @@
 
 import moment from "../moment";
 
+function processRelativeTime(number, withoutSuffix, key, isFuture) {
+    var format = {
+        's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
+        'm' : ['ühe minuti', 'üks minut'],
+        'mm': [number + ' minuti', number + ' minutit'],
+        'h' : ['ühe tunni', 'tund aega', 'üks tund'],
+        'hh': [number + ' tunni', number + ' tundi'],
+        'd' : ['ühe päeva', 'üks päev'],
+        'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
+        'MM': [number + ' kuu', number + ' kuud'],
+        'y' : ['ühe aasta', 'aasta', 'üks aasta'],
+        'yy': [number + ' aasta', number + ' aastat']
+    };
+    if (withoutSuffix) {
+        return format[key][2] ? format[key][2] : format[key][1];
+    }
+    return isFuture ? format[key][0] : format[key][1];
+}
+
 export default moment.defineLocale('et', {
     months        : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
     monthsShort   : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
index 58f3b9f619fd480166def16489f07f7fdb4a4075..f590c23cf2059d1e420fe1aa9dcf2b2f97189539 100644 (file)
@@ -4,6 +4,30 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '۱',
+    '2': '۲',
+    '3': '۳',
+    '4': '۴',
+    '5': '۵',
+    '6': '۶',
+    '7': '۷',
+    '8': '۸',
+    '9': '۹',
+    '0': '۰'
+}, numberMap = {
+    '۱': '1',
+    '۲': '2',
+    '۳': '3',
+    '۴': '4',
+    '۵': '5',
+    '۶': '6',
+    '۷': '7',
+    '۸': '8',
+    '۹': '9',
+    '۰': '0'
+};
+
 export default moment.defineLocale('fa', {
     months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
     monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
index 19f42a60a863ae54d688fc1c370428eedfa97cad..e0c4103b416b3b15909139b2644698e08fe9e34d 100644 (file)
@@ -4,6 +4,49 @@
 
 import moment from "../moment";
 
+var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
+    numbersFuture = [
+        'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
+        numbersPast[7], numbersPast[8], numbersPast[9]
+    ];
+function translate(number, withoutSuffix, key, isFuture) {
+    var result = '';
+    switch (key) {
+    case 's':
+        return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
+    case 'm':
+        return isFuture ? 'minuutin' : 'minuutti';
+    case 'mm':
+        result = isFuture ? 'minuutin' : 'minuuttia';
+        break;
+    case 'h':
+        return isFuture ? 'tunnin' : 'tunti';
+    case 'hh':
+        result = isFuture ? 'tunnin' : 'tuntia';
+        break;
+    case 'd':
+        return isFuture ? 'päivän' : 'päivä';
+    case 'dd':
+        result = isFuture ? 'päivän' : 'päivää';
+        break;
+    case 'M':
+        return isFuture ? 'kuukauden' : 'kuukausi';
+    case 'MM':
+        result = isFuture ? 'kuukauden' : 'kuukautta';
+        break;
+    case 'y':
+        return isFuture ? 'vuoden' : 'vuosi';
+    case 'yy':
+        result = isFuture ? 'vuoden' : 'vuotta';
+        break;
+    }
+    result = verbalNumber(number, isFuture) + ' ' + result;
+    return result;
+}
+function verbalNumber(number, isFuture) {
+    return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
+}
+
 export default moment.defineLocale('fi', {
     months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
     monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
index 3b443aeb9861fb063eb8f39e74b20b691de16c3e..d04c0e27eeb35e8c011b2383687f3cafb9fe6410 100644 (file)
@@ -4,6 +4,9 @@
 
 import moment from "../moment";
 
+var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
+    monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
+
 export default moment.defineLocale('fy', {
     months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
     monthsShort : function (m, format) {
index df166b63c7a944b10866758afc98185eeef8a924..051999ef9242be86be8e5ddf74ca69ec11ccefc0 100644 (file)
@@ -4,6 +4,31 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '१',
+    '2': '२',
+    '3': '३',
+    '4': '४',
+    '5': '५',
+    '6': '६',
+    '7': '७',
+    '8': '८',
+    '9': '९',
+    '0': '०'
+},
+numberMap = {
+    '१': '1',
+    '२': '2',
+    '३': '3',
+    '४': '4',
+    '५': '5',
+    '६': '6',
+    '७': '7',
+    '८': '8',
+    '९': '9',
+    '०': '0'
+};
+
 export default moment.defineLocale('hi', {
     months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
     monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
index 507e236b5ca666c93dabc8c437030eebf590b835..d15496298803928562f1759ad683ace051f3cd68 100644 (file)
@@ -4,6 +4,59 @@
 
 import moment from "../moment";
 
+function translate(number, withoutSuffix, key) {
+    var result = number + ' ';
+    switch (key) {
+    case 'm':
+        return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+    case 'mm':
+        if (number === 1) {
+            result += 'minuta';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'minute';
+        } else {
+            result += 'minuta';
+        }
+        return result;
+    case 'h':
+        return withoutSuffix ? 'jedan sat' : 'jednog sata';
+    case 'hh':
+        if (number === 1) {
+            result += 'sat';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'sata';
+        } else {
+            result += 'sati';
+        }
+        return result;
+    case 'dd':
+        if (number === 1) {
+            result += 'dan';
+        } else {
+            result += 'dana';
+        }
+        return result;
+    case 'MM':
+        if (number === 1) {
+            result += 'mjesec';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'mjeseca';
+        } else {
+            result += 'mjeseci';
+        }
+        return result;
+    case 'yy':
+        if (number === 1) {
+            result += 'godina';
+        } else if (number === 2 || number === 3 || number === 4) {
+            result += 'godine';
+        } else {
+            result += 'godina';
+        }
+        return result;
+    }
+}
+
 export default moment.defineLocale('hr', {
     months : 'sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_'),
     monthsShort : 'sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
index 4b7cc3647868870ab3a83ed0aabb1b817dd4f0fd..c484abbccede7fefd5f04ab6cb8db0af6bfa2392 100644 (file)
@@ -4,6 +4,40 @@
 
 import moment from "../moment";
 
+var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
+function translate(number, withoutSuffix, key, isFuture) {
+    var num = number,
+        suffix;
+    switch (key) {
+    case 's':
+        return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
+    case 'm':
+        return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
+    case 'mm':
+        return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
+    case 'h':
+        return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
+    case 'hh':
+        return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
+    case 'd':
+        return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
+    case 'dd':
+        return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
+    case 'M':
+        return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+    case 'MM':
+        return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+    case 'y':
+        return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
+    case 'yy':
+        return num + (isFuture || withoutSuffix ? ' év' : ' éve');
+    }
+    return '';
+}
+function week(isFuture) {
+    return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
+}
+
 export default moment.defineLocale('hu', {
     months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
     monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
index 10be08491cc315660b105f8206c41cc0fca3f80b..a9768975c2584ee2821063e52eaa5cf1a224f75a 100644 (file)
@@ -4,6 +4,25 @@
 
 import moment from "../moment";
 
+function monthsCaseReplace(m, format) {
+    var months = {
+        'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
+        'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_')
+    },
+    nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+        'accusative' :
+        'nominative';
+    return months[nounCase][m.month()];
+}
+function monthsShortCaseReplace(m, format) {
+    var monthsShort = 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_');
+    return monthsShort[m.month()];
+}
+function weekdaysCaseReplace(m, format) {
+    var weekdays = 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_');
+    return weekdays[m.day()];
+}
+
 export default moment.defineLocale('hy-am', {
     months : monthsCaseReplace,
     monthsShort : monthsShortCaseReplace,
index fd96674c3c5c6e479c8fd0824a404c51244ce8ae..6639ed6fe99a35c5b083bcd080d40a1ca0470d47 100644 (file)
@@ -4,6 +4,73 @@
 
 import moment from "../moment";
 
+function plural(n) {
+    if (n % 100 === 11) {
+        return true;
+    } else if (n % 10 === 1) {
+        return false;
+    }
+    return true;
+}
+function translate(number, withoutSuffix, key, isFuture) {
+    var result = number + ' ';
+    switch (key) {
+    case 's':
+        return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
+    case 'm':
+        return withoutSuffix ? 'mínúta' : 'mínútu';
+    case 'mm':
+        if (plural(number)) {
+            return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
+        } else if (withoutSuffix) {
+            return result + 'mínúta';
+        }
+        return result + 'mínútu';
+    case 'hh':
+        if (plural(number)) {
+            return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
+        }
+        return result + 'klukkustund';
+    case 'd':
+        if (withoutSuffix) {
+            return 'dagur';
+        }
+        return isFuture ? 'dag' : 'degi';
+    case 'dd':
+        if (plural(number)) {
+            if (withoutSuffix) {
+                return result + 'dagar';
+            }
+            return result + (isFuture ? 'daga' : 'dögum');
+        } else if (withoutSuffix) {
+            return result + 'dagur';
+        }
+        return result + (isFuture ? 'dag' : 'degi');
+    case 'M':
+        if (withoutSuffix) {
+            return 'mánuður';
+        }
+        return isFuture ? 'mánuð' : 'mánuði';
+    case 'MM':
+        if (plural(number)) {
+            if (withoutSuffix) {
+                return result + 'mánuðir';
+            }
+            return result + (isFuture ? 'mánuði' : 'mánuðum');
+        } else if (withoutSuffix) {
+            return result + 'mánuður';
+        }
+        return result + (isFuture ? 'mánuð' : 'mánuði');
+    case 'y':
+        return withoutSuffix || isFuture ? 'ár' : 'ári';
+    case 'yy':
+        if (plural(number)) {
+            return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
+        }
+        return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
+    }
+}
+
 export default moment.defineLocale('is', {
     months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
     monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
index 581f7117ce3dda28836e17715fcfebf61a500ec7..f49e99371ac381deefa226eb96b2df50ad432227 100644 (file)
@@ -4,6 +4,27 @@
 
 import moment from "../moment";
 
+function monthsCaseReplace(m, format) {
+    var months = {
+        'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
+        'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
+    },
+    nounCase = (/D[oD] *MMMM?/).test(format) ?
+        'accusative' :
+        'nominative';
+    return months[nounCase][m.month()];
+}
+function weekdaysCaseReplace(m, format) {
+    var weekdays = {
+        'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
+        'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_')
+    },
+    nounCase = (/(წინა|შემდეგ)/).test(format) ?
+        'accusative' :
+        'nominative';
+    return weekdays[nounCase][m.day()];
+}
+
 export default moment.defineLocale('ka', {
     months : monthsCaseReplace,
     monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
index fb232a2fb614fb79e10c0ce30e23025763c74e68..1e921f3d4b76f15ffcbea70731121988685d8cbb 100644 (file)
@@ -4,6 +4,71 @@
 
 import moment from "../moment";
 
+function processRelativeTime(number, withoutSuffix, key, isFuture) {
+    var format = {
+        'm': ['eng Minutt', 'enger Minutt'],
+        'h': ['eng Stonn', 'enger Stonn'],
+        'd': ['een Dag', 'engem Dag'],
+        'M': ['ee Mount', 'engem Mount'],
+        'y': ['ee Joer', 'engem Joer']
+    };
+    return withoutSuffix ? format[key][0] : format[key][1];
+}
+function processFutureTime(string) {
+    var number = string.substr(0, string.indexOf(' '));
+    if (eifelerRegelAppliesToNumber(number)) {
+        return 'a ' + string;
+    }
+    return 'an ' + string;
+}
+function processPastTime(string) {
+    var number = string.substr(0, string.indexOf(' '));
+    if (eifelerRegelAppliesToNumber(number)) {
+        return 'viru ' + string;
+    }
+    return 'virun ' + string;
+}
+/**
+ * Returns true if the word before the given number loses the '-n' ending.
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
+ *
+ * @param number {integer}
+ * @returns {boolean}
+ */
+function eifelerRegelAppliesToNumber(number) {
+    number = parseInt(number, 10);
+    if (isNaN(number)) {
+        return false;
+    }
+    if (number < 0) {
+        // Negative Number --> always true
+        return true;
+    } else if (number < 10) {
+        // Only 1 digit
+        if (4 <= number && number <= 7) {
+            return true;
+        }
+        return false;
+    } else if (number < 100) {
+        // 2 digits
+        var lastDigit = number % 10, firstDigit = number / 10;
+        if (lastDigit === 0) {
+            return eifelerRegelAppliesToNumber(firstDigit);
+        }
+        return eifelerRegelAppliesToNumber(lastDigit);
+    } else if (number < 10000) {
+        // 3 or 4 digits --> recursively check first digit
+        while (number >= 10) {
+            number = number / 10;
+        }
+        return eifelerRegelAppliesToNumber(number);
+    } else {
+        // Anything larger than 4 digits: recursively check first n-3 digits
+        number = number / 1000;
+        return eifelerRegelAppliesToNumber(number);
+    }
+}
+
 export default moment.defineLocale('lb', {
     months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
     monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
index 11834ed5f6d6c2a8883d6e35cc50eaec7956dbe8..bfaed849027b67f6449570d4b588c39aee4e5cac 100644 (file)
@@ -4,6 +4,55 @@
 
 import moment from "../moment";
 
+var units = {
+    'm' : 'minutė_minutės_minutę',
+    'mm': 'minutės_minučių_minutes',
+    'h' : 'valanda_valandos_valandą',
+    'hh': 'valandos_valandų_valandas',
+    'd' : 'diena_dienos_dieną',
+    'dd': 'dienos_dienų_dienas',
+    'M' : 'mėnuo_mėnesio_mėnesį',
+    'MM': 'mėnesiai_mėnesių_mėnesius',
+    'y' : 'metai_metų_metus',
+    'yy': 'metai_metų_metus'
+},
+weekDays = 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_');
+function translateSeconds(number, withoutSuffix, key, isFuture) {
+    if (withoutSuffix) {
+        return 'kelios sekundės';
+    } else {
+        return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
+    }
+}
+function translateSingular(number, withoutSuffix, key, isFuture) {
+    return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
+}
+function special(number) {
+    return number % 10 === 0 || (number > 10 && number < 20);
+}
+function forms(key) {
+    return units[key].split('_');
+}
+function translate(number, withoutSuffix, key, isFuture) {
+    var result = number + ' ';
+    if (number === 1) {
+        return result + translateSingular(number, withoutSuffix, key[0], isFuture);
+    } else if (withoutSuffix) {
+        return result + (special(number) ? forms(key)[1] : forms(key)[0]);
+    } else {
+        if (isFuture) {
+            return result + forms(key)[1];
+        } else {
+            return result + (special(number) ? forms(key)[1] : forms(key)[2]);
+        }
+    }
+}
+function relativeWeekDay(moment, format) {
+    var nominative = format.indexOf('dddd HH:mm') === -1,
+        weekDay = weekDays[moment.day()];
+    return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + 'į';
+}
+
 export default moment.defineLocale('lt', {
     months : 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
     monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
index 03721758dca958cd039c2b27e4796f6c55aced50..94b1a7340be1edbd6f2ef1daa111853b54dddbca 100644 (file)
@@ -4,6 +4,25 @@
 
 import moment from "../moment";
 
+var units = {
+    'mm': 'minūti_minūtes_minūte_minūtes',
+    'hh': 'stundu_stundas_stunda_stundas',
+    'dd': 'dienu_dienas_diena_dienas',
+    'MM': 'mēnesi_mēnešus_mēnesis_mēneši',
+    'yy': 'gadu_gadus_gads_gadi'
+};
+function format(word, number, withoutSuffix) {
+    var forms = word.split('_');
+    if (withoutSuffix) {
+        return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
+    } else {
+        return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
+    }
+}
+function relativeTimeWithPlural(number, withoutSuffix, key) {
+    return number + ' ' + format(units[key], number, withoutSuffix);
+}
+
 export default moment.defineLocale('lv', {
     months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
     monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
index 660a16e9a2b57d290f54ee93897ba1e782c94ba0..eb27372b42482da0d2a7f463a8a6356a76fcd0bb 100644 (file)
@@ -4,6 +4,31 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '१',
+    '2': '२',
+    '3': '३',
+    '4': '४',
+    '5': '५',
+    '6': '६',
+    '7': '७',
+    '8': '८',
+    '9': '९',
+    '0': '०'
+},
+numberMap = {
+    '१': '1',
+    '२': '2',
+    '३': '3',
+    '४': '4',
+    '५': '5',
+    '६': '6',
+    '७': '7',
+    '८': '8',
+    '९': '9',
+    '०': '0'
+};
+
 export default moment.defineLocale('mr', {
     months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
     monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
index 90b119752edf020c3122684f86443ff5eabb1942..987319447bee266eac714b3fb0bcd3d9b3394cf5 100644 (file)
@@ -4,6 +4,30 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '၁',
+    '2': '၂',
+    '3': '၃',
+    '4': '၄',
+    '5': '၅',
+    '6': '၆',
+    '7': '၇',
+    '8': '၈',
+    '9': '၉',
+    '0': '၀'
+}, numberMap = {
+    '၁': '1',
+    '၂': '2',
+    '၃': '3',
+    '၄': '4',
+    '၅': '5',
+    '၆': '6',
+    '၇': '7',
+    '၈': '8',
+    '၉': '9',
+    '၀': '0'
+};
+
 export default moment.defineLocale('my', {
     months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
     monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
index 0127c9ee257f95fcbff083bf3b814314cec8cbad..d18139ddccb71f00dcab5f04584ae56faa699612 100644 (file)
@@ -4,6 +4,31 @@
 
 import moment from "../moment";
 
+var symbolMap = {
+    '1': '१',
+    '2': '२',
+    '3': '३',
+    '4': '४',
+    '5': '५',
+    '6': '६',
+    '7': '७',
+    '8': '८',
+    '9': '९',
+    '0': '०'
+},
+numberMap = {
+    '१': '1',
+    '२': '2',
+    '३': '3',
+    '४': '4',
+    '५': '5',
+    '६': '6',
+    '७': '7',
+    '८': '8',
+    '९': '9',
+    '०': '0'
+};
+
 export default moment.defineLocale('ne', {
     months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
     monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
index 3e1c408f92b39a8ee617cfa5a6ebedf814c192f2..f3f44e5b698f82ca3b6e9f7376615169ff3482ad 100644 (file)
@@ -4,6 +4,9 @@
 
 import moment from "../moment";
 
+var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+    monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
+
 export default moment.defineLocale('nl', {
     months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
     monthsShort : function (m, format) {
index eb088445f5a678b06866ff9205db8ade64fc8211..089eab3c6bbf83b49636479cadfd2f80edac4aff 100644 (file)
@@ -4,6 +4,29 @@
 
 import moment from "../moment";
 
+var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
+    monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
+function plural(n) {
+    return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
+}
+function translate(number, withoutSuffix, key) {
+    var result = number + ' ';
+    switch (key) {
+    case 'm':
+        return withoutSuffix ? 'minuta' : 'minutę';
+    case 'mm':
+        return result + (plural(number) ? 'minuty' : 'minut');
+    case 'h':
+        return withoutSuffix  ? 'godzina'  : 'godzinę';
+    case 'hh':
+        return result + (plural(number) ? 'godziny' : 'godzin');
+    case 'MM':
+        return result + (plural(number) ? 'miesiące' : 'miesięcy');
+    case 'yy':
+        return result + (plural(number) ? 'lata' : 'lat');
+    }
+}
+
 export default moment.defineLocale('pl', {
     months : function (momentToFormat, format) {
         if (/D MMMM/.test(format)) {
index acdf42b3ee45a877fb51f1c35ac822d6eb6a641e..6ae73c7d4e65a5a3fa09a9ecccd0aca429f5d549 100644 (file)
@@ -5,6 +5,21 @@
 
 import moment from "../moment";
 
+function relativeTimeWithPlural(number, withoutSuffix, key) {
+    var format = {
+            'mm': 'minute',
+            'hh': 'ore',
+            'dd': 'zile',
+            'MM': 'luni',
+            'yy': 'ani'
+        },
+        separator = ' ';
+    if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
+        separator = ' de ';
+    }
+    return number + separator + format[key];
+}
+
 export default moment.defineLocale('ro', {
     months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
     monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
index 49be0599f9b58061f97125bfb32902e4c803f2c5..3aa9d076bedb84e35bbffff74f6dd1feb882efeb 100644 (file)
@@ -5,6 +5,56 @@
 
 import moment from "../moment";
 
+function plural(word, num) {
+    var forms = word.split('_');
+    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+}
+function relativeTimeWithPlural(number, withoutSuffix, key) {
+    var format = {
+        'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
+        'hh': 'час_часа_часов',
+        'dd': 'день_дня_дней',
+        'MM': 'месяц_месяца_месяцев',
+        'yy': 'год_года_лет'
+    };
+    if (key === 'm') {
+        return withoutSuffix ? 'минута' : 'минуту';
+    }
+    else {
+        return number + ' ' + plural(format[key], +number);
+    }
+}
+function monthsCaseReplace(m, format) {
+    var months = {
+        'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
+        'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_')
+    },
+    nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+        'accusative' :
+        'nominative';
+    return months[nounCase][m.month()];
+}
+function monthsShortCaseReplace(m, format) {
+    var monthsShort = {
+        'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
+        'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
+    },
+    nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+        'accusative' :
+        'nominative';
+    return monthsShort[nounCase][m.month()];
+}
+function weekdaysCaseReplace(m, format) {
+    var weekdays = {
+        'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
+        'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_')
+    },
+    nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/).test(format) ?
+        'accusative' :
+        'nominative';
+    return weekdays[nounCase][m.day()];
+}
+
 export default moment.defineLocale('ru', {
     months : monthsCaseReplace,
     monthsShort : monthsShortCaseReplace,
index e005a74b41f9d58eb29c766ab63364c6c22814a8..040f022c014ac9b70e16b45bf581248158588d15 100644 (file)
@@ -5,6 +5,64 @@
 
 import moment from "../moment";
 
+var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
+    monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
+function plural(n) {
+    return (n > 1) && (n < 5);
+}
+function translate(number, withoutSuffix, key, isFuture) {
+    var result = number + ' ';
+    switch (key) {
+    case 's':  // a few seconds / in a few seconds / a few seconds ago
+        return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
+    case 'm':  // a minute / in a minute / a minute ago
+        return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
+    case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'minúty' : 'minút');
+        } else {
+            return result + 'minútami';
+        }
+        break;
+    case 'h':  // an hour / in an hour / an hour ago
+        return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+    case 'hh': // 9 hours / in 9 hours / 9 hours ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'hodiny' : 'hodín');
+        } else {
+            return result + 'hodinami';
+        }
+        break;
+    case 'd':  // a day / in a day / a day ago
+        return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
+    case 'dd': // 9 days / in 9 days / 9 days ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'dni' : 'dní');
+        } else {
+            return result + 'dňami';
+        }
+        break;
+    case 'M':  // a month / in a month / a month ago
+        return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
+    case 'MM': // 9 months / in 9 months / 9 months ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'mesiace' : 'mesiacov');
+        } else {
+            return result + 'mesiacmi';
+        }
+        break;
+    case 'y':  // a year / in a year / a year ago
+        return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
+    case 'yy': // 9 years / in 9 years / 9 years ago
+        if (withoutSuffix || isFuture) {
+            return result + (plural(number) ? 'roky' : 'rokov');
+        } else {
+            return result + 'rokmi';
+        }
+        break;
+    }
+}
+
 export default moment.defineLocale('sk', {
     months : months,
     monthsShort : monthsShort,
index 39f118f6ce2cccbe679d05a2ea3d7e5a79b90d3a..c7ed921dc76c84ff080e8200160ebfef8e0a84eb 100644 (file)
@@ -4,6 +4,67 @@
 
 import moment from "../moment";
 
+function translate(number, withoutSuffix, key) {
+    var result = number + ' ';
+    switch (key) {
+    case 'm':
+        return withoutSuffix ? 'ena minuta' : 'eno minuto';
+    case 'mm':
+        if (number === 1) {
+            result += 'minuta';
+        } else if (number === 2) {
+            result += 'minuti';
+        } else if (number === 3 || number === 4) {
+            result += 'minute';
+        } else {
+            result += 'minut';
+        }
+        return result;
+    case 'h':
+        return withoutSuffix ? 'ena ura' : 'eno uro';
+    case 'hh':
+        if (number === 1) {
+            result += 'ura';
+        } else if (number === 2) {
+            result += 'uri';
+        } else if (number === 3 || number === 4) {
+            result += 'ure';
+        } else {
+            result += 'ur';
+        }
+        return result;
+    case 'dd':
+        if (number === 1) {
+            result += 'dan';
+        } else {
+            result += 'dni';
+        }
+        return result;
+    case 'MM':
+        if (number === 1) {
+            result += 'mesec';
+        } else if (number === 2) {
+            result += 'meseca';
+        } else if (number === 3 || number === 4) {
+            result += 'mesece';
+        } else {
+            result += 'mesecev';
+        }
+        return result;
+    case 'yy':
+        if (number === 1) {
+            result += 'leto';
+        } else if (number === 2) {
+            result += 'leti';
+        } else if (number === 3 || number === 4) {
+            result += 'leta';
+        } else {
+            result += 'let';
+        }
+        return result;
+    }
+}
+
 export default moment.defineLocale('sl', {
     months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
     monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
index e65f2d009a51886712f05be58431c377d84198e4..d24de0e3c3645652b27cbc40559c3de357f69c19 100644 (file)
@@ -4,6 +4,29 @@
 
 import moment from "../moment";
 
+var translator = {
+    words: { //Different grammatical cases
+        m: ['један минут', 'једне минуте'],
+        mm: ['минут', 'минуте', 'минута'],
+        h: ['један сат', 'једног сата'],
+        hh: ['сат', 'сата', 'сати'],
+        dd: ['дан', 'дана', 'дана'],
+        MM: ['месец', 'месеца', 'месеци'],
+        yy: ['година', 'године', 'година']
+    },
+    correctGrammaticalCase: function (number, wordKey) {
+        return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+    },
+    translate: function (number, withoutSuffix, key) {
+        var wordKey = translator.words[key];
+        if (key.length === 1) {
+            return withoutSuffix ? wordKey[0] : wordKey[1];
+        } else {
+            return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
+        }
+    }
+};
+
 export default moment.defineLocale('sr-cyrl', {
     months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
     monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
index bfa9f7076f907c74c26c78174d223a223ff3d1fe..05815732a0e307fc1bc5fa1d0519db12edd7cb50 100644 (file)
@@ -4,6 +4,29 @@
 
 import moment from "../moment";
 
+var translator = {
+    words: { //Different grammatical cases
+        m: ['jedan minut', 'jedne minute'],
+        mm: ['minut', 'minute', 'minuta'],
+        h: ['jedan sat', 'jednog sata'],
+        hh: ['sat', 'sata', 'sati'],
+        dd: ['dan', 'dana', 'dana'],
+        MM: ['mesec', 'meseca', 'meseci'],
+        yy: ['godina', 'godine', 'godina']
+    },
+    correctGrammaticalCase: function (number, wordKey) {
+        return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+    },
+    translate: function (number, withoutSuffix, key) {
+        var wordKey = translator.words[key];
+        if (key.length === 1) {
+            return withoutSuffix ? wordKey[0] : wordKey[1];
+        } else {
+            return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
+        }
+    }
+};
+
 export default moment.defineLocale('sr', {
     months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
     monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
index ea9ea01ee685d95ead6f6b2b0b3fc771a057c4e0..5fdc35807dcec07b1caa89d14d931ebf1f49c871 100644 (file)
@@ -41,16 +41,6 @@ export default moment.defineLocale('ta', {
         y : 'ஒரு வருடம்',
         yy : '%d ஆண்டுகள்'
     },
-      preparse: function (string) {
-        return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
-            return numberMap[match];
-        });
-    },
-    postformat: function (string) {
-        return string.replace(/\d/g, function (match) {
-            return symbolMap[match];
-        });
-    },*/
     ordinalParse: /\d{1,2}வது/,
     ordinal : function (number) {
         return number + 'வது';
index 4c46d465ca4dae37080669f70a4c82101a8a1ac1..938a29cffe28609cec2ba33a73e12dffc40725ec 100644 (file)
@@ -5,6 +5,27 @@
 
 import moment from "../moment";
 
+var suffixes = {
+    1: '\'inci',
+    5: '\'inci',
+    8: '\'inci',
+    70: '\'inci',
+    80: '\'inci',
+    2: '\'nci',
+    7: '\'nci',
+    20: '\'nci',
+    50: '\'nci',
+    3: '\'üncü',
+    4: '\'üncü',
+    100: '\'üncü',
+    6: '\'ncı',
+    9: '\'uncu',
+    10: '\'uncu',
+    30: '\'uncu',
+    60: '\'ıncı',
+    90: '\'ıncı'
+};
+
 export default moment.defineLocale('tr', {
     months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
     monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
index 98b58911d13743b7ba036db2260b8ea2032285be..025985f1e4767d7b700e82b7f23f7d01d426e75a 100644 (file)
@@ -5,6 +5,57 @@
 
 import moment from "../moment";
 
+function plural(word, num) {
+    var forms = word.split('_');
+    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+}
+function relativeTimeWithPlural(number, withoutSuffix, key) {
+    var format = {
+        'mm': 'хвилина_хвилини_хвилин',
+        'hh': 'година_години_годин',
+        'dd': 'день_дні_днів',
+        'MM': 'місяць_місяці_місяців',
+        'yy': 'рік_роки_років'
+    };
+    if (key === 'm') {
+        return withoutSuffix ? 'хвилина' : 'хвилину';
+    }
+    else if (key === 'h') {
+        return withoutSuffix ? 'година' : 'годину';
+    }
+    else {
+        return number + ' ' + plural(format[key], +number);
+    }
+}
+function monthsCaseReplace(m, format) {
+    var months = {
+        'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),
+        'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')
+    },
+    nounCase = (/D[oD]? *MMMM?/).test(format) ?
+        'accusative' :
+        'nominative';
+    return months[nounCase][m.month()];
+}
+function weekdaysCaseReplace(m, format) {
+    var weekdays = {
+        'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
+        'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
+        'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
+    },
+    nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
+        'accusative' :
+        ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
+            'genitive' :
+            'nominative');
+    return weekdays[nounCase][m.day()];
+}
+function processHoursFunction(str) {
+    return function () {
+        return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
+    };
+}
+
 export default moment.defineLocale('uk', {
     months : monthsCaseReplace,
     monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),