sr-cyrl.js (5578B)
1//! moment.js locale configuration 2//! locale : Serbian Cyrillic [sr-cyrl] 3//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j 4//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic 5 6;(function (global, factory) { 7 typeof exports === 'object' && typeof module !== 'undefined' 8 && typeof require === 'function' ? factory(require('../moment')) : 9 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 10 factory(global.moment) 11}(this, (function (moment) { 'use strict'; 12 13 //! moment.js locale configuration 14 15 var translator = { 16 words: { 17 //Different grammatical cases 18 ss: ['секунда', 'секунде', 'секунди'], 19 m: ['један минут', 'једног минута'], 20 mm: ['минут', 'минута', 'минута'], 21 h: ['један сат', 'једног сата'], 22 hh: ['сат', 'сата', 'сати'], 23 d: ['један дан', 'једног дана'], 24 dd: ['дан', 'дана', 'дана'], 25 M: ['један месец', 'једног месеца'], 26 MM: ['месец', 'месеца', 'месеци'], 27 y: ['једну годину', 'једне године'], 28 yy: ['годину', 'године', 'година'], 29 }, 30 correctGrammaticalCase: function (number, wordKey) { 31 if ( 32 number % 10 >= 1 && 33 number % 10 <= 4 && 34 (number % 100 < 10 || number % 100 >= 20) 35 ) { 36 return number % 10 === 1 ? wordKey[0] : wordKey[1]; 37 } 38 return wordKey[2]; 39 }, 40 translate: function (number, withoutSuffix, key, isFuture) { 41 var wordKey = translator.words[key], 42 word; 43 44 if (key.length === 1) { 45 // Nominativ 46 if (key === 'y' && withoutSuffix) return 'једна година'; 47 return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; 48 } 49 50 word = translator.correctGrammaticalCase(number, wordKey); 51 // Nominativ 52 if (key === 'yy' && withoutSuffix && word === 'годину') { 53 return number + ' година'; 54 } 55 56 return number + ' ' + word; 57 }, 58 }; 59 60 var srCyrl = moment.defineLocale('sr-cyrl', { 61 months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( 62 '_' 63 ), 64 monthsShort: 65 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), 66 monthsParseExact: true, 67 weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), 68 weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), 69 weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), 70 weekdaysParseExact: true, 71 longDateFormat: { 72 LT: 'H:mm', 73 LTS: 'H:mm:ss', 74 L: 'D. M. YYYY.', 75 LL: 'D. MMMM YYYY.', 76 LLL: 'D. MMMM YYYY. H:mm', 77 LLLL: 'dddd, D. MMMM YYYY. H:mm', 78 }, 79 calendar: { 80 sameDay: '[данас у] LT', 81 nextDay: '[сутра у] LT', 82 nextWeek: function () { 83 switch (this.day()) { 84 case 0: 85 return '[у] [недељу] [у] LT'; 86 case 3: 87 return '[у] [среду] [у] LT'; 88 case 6: 89 return '[у] [суботу] [у] LT'; 90 case 1: 91 case 2: 92 case 4: 93 case 5: 94 return '[у] dddd [у] LT'; 95 } 96 }, 97 lastDay: '[јуче у] LT', 98 lastWeek: function () { 99 var lastWeekDays = [ 100 '[прошле] [недеље] [у] LT', 101 '[прошлог] [понедељка] [у] LT', 102 '[прошлог] [уторка] [у] LT', 103 '[прошле] [среде] [у] LT', 104 '[прошлог] [четвртка] [у] LT', 105 '[прошлог] [петка] [у] LT', 106 '[прошле] [суботе] [у] LT', 107 ]; 108 return lastWeekDays[this.day()]; 109 }, 110 sameElse: 'L', 111 }, 112 relativeTime: { 113 future: 'за %s', 114 past: 'пре %s', 115 s: 'неколико секунди', 116 ss: translator.translate, 117 m: translator.translate, 118 mm: translator.translate, 119 h: translator.translate, 120 hh: translator.translate, 121 d: translator.translate, 122 dd: translator.translate, 123 M: translator.translate, 124 MM: translator.translate, 125 y: translator.translate, 126 yy: translator.translate, 127 }, 128 dayOfMonthOrdinalParse: /\d{1,2}\./, 129 ordinal: '%d.', 130 week: { 131 dow: 1, // Monday is the first day of the week. 132 doy: 7, // The week that contains Jan 1st is the first week of the year. 133 }, 134 }); 135 136 return srCyrl; 137 138})));