| @@ 5-110 (lines=106) @@ | ||
| 2 | //! locale : Serbian Cyrillic [sr-cyrl] |
|
| 3 | //! author : Milan Janačković<[email protected]> : https://github.com/milan-j |
|
| 4 | ||
| 5 | ;(function (global, factory) { |
|
| 6 | typeof exports === 'object' && typeof module !== 'undefined' |
|
| 7 | && typeof require === 'function' ? factory(require('../moment')) : |
|
| 8 | typeof define === 'function' && define.amd ? define(['../moment'], factory) : |
|
| 9 | factory(global.moment) |
|
| 10 | }(this, function (moment) { 'use strict'; |
|
| 11 | ||
| 12 | ||
| 13 | var translator = { |
|
| 14 | words: { //Different grammatical cases |
|
| 15 | m: ['један минут', 'једне минуте'], |
|
| 16 | mm: ['минут', 'минуте', 'минута'], |
|
| 17 | h: ['један сат', 'једног сата'], |
|
| 18 | hh: ['сат', 'сата', 'сати'], |
|
| 19 | dd: ['дан', 'дана', 'дана'], |
|
| 20 | MM: ['месец', 'месеца', 'месеци'], |
|
| 21 | yy: ['година', 'године', 'година'] |
|
| 22 | }, |
|
| 23 | correctGrammaticalCase: function (number, wordKey) { |
|
| 24 | return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); |
|
| 25 | }, |
|
| 26 | translate: function (number, withoutSuffix, key) { |
|
| 27 | var wordKey = translator.words[key]; |
|
| 28 | if (key.length === 1) { |
|
| 29 | return withoutSuffix ? wordKey[0] : wordKey[1]; |
|
| 30 | } else { |
|
| 31 | return number + ' ' + translator.correctGrammaticalCase(number, wordKey); |
|
| 32 | } |
|
| 33 | } |
|
| 34 | }; |
|
| 35 | ||
| 36 | var sr_cyrl = moment.defineLocale('sr-cyrl', { |
|
| 37 | months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'), |
|
| 38 | monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), |
|
| 39 | monthsParseExact: true, |
|
| 40 | weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), |
|
| 41 | weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), |
|
| 42 | weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), |
|
| 43 | weekdaysParseExact : true, |
|
| 44 | longDateFormat: { |
|
| 45 | LT: 'H:mm', |
|
| 46 | LTS : 'H:mm:ss', |
|
| 47 | L: 'DD. MM. YYYY', |
|
| 48 | LL: 'D. MMMM YYYY', |
|
| 49 | LLL: 'D. MMMM YYYY H:mm', |
|
| 50 | LLLL: 'dddd, D. MMMM YYYY H:mm' |
|
| 51 | }, |
|
| 52 | calendar: { |
|
| 53 | sameDay: '[данас у] LT', |
|
| 54 | nextDay: '[сутра у] LT', |
|
| 55 | nextWeek: function () { |
|
| 56 | switch (this.day()) { |
|
| 57 | case 0: |
|
| 58 | return '[у] [недељу] [у] LT'; |
|
| 59 | case 3: |
|
| 60 | return '[у] [среду] [у] LT'; |
|
| 61 | case 6: |
|
| 62 | return '[у] [суботу] [у] LT'; |
|
| 63 | case 1: |
|
| 64 | case 2: |
|
| 65 | case 4: |
|
| 66 | case 5: |
|
| 67 | return '[у] dddd [у] LT'; |
|
| 68 | } |
|
| 69 | }, |
|
| 70 | lastDay : '[јуче у] LT', |
|
| 71 | lastWeek : function () { |
|
| 72 | var lastWeekDays = [ |
|
| 73 | '[прошле] [недеље] [у] LT', |
|
| 74 | '[прошлог] [понедељка] [у] LT', |
|
| 75 | '[прошлог] [уторка] [у] LT', |
|
| 76 | '[прошле] [среде] [у] LT', |
|
| 77 | '[прошлог] [четвртка] [у] LT', |
|
| 78 | '[прошлог] [петка] [у] LT', |
|
| 79 | '[прошле] [суботе] [у] LT' |
|
| 80 | ]; |
|
| 81 | return lastWeekDays[this.day()]; |
|
| 82 | }, |
|
| 83 | sameElse : 'L' |
|
| 84 | }, |
|
| 85 | relativeTime : { |
|
| 86 | future : 'за %s', |
|
| 87 | past : 'пре %s', |
|
| 88 | s : 'неколико секунди', |
|
| 89 | m : translator.translate, |
|
| 90 | mm : translator.translate, |
|
| 91 | h : translator.translate, |
|
| 92 | hh : translator.translate, |
|
| 93 | d : 'дан', |
|
| 94 | dd : translator.translate, |
|
| 95 | M : 'месец', |
|
| 96 | MM : translator.translate, |
|
| 97 | y : 'годину', |
|
| 98 | yy : translator.translate |
|
| 99 | }, |
|
| 100 | ordinalParse: /\d{1,2}\./, |
|
| 101 | ordinal : '%d.', |
|
| 102 | week : { |
|
| 103 | dow : 1, // Monday is the first day of the week. |
|
| 104 | doy : 7 // The week that contains Jan 1st is the first week of the year. |
|
| 105 | } |
|
| 106 | }); |
|
| 107 | ||
| 108 | return sr_cyrl; |
|
| 109 | ||
| 110 | })); |
|
| @@ 5-110 (lines=106) @@ | ||
| 2 | //! locale : Serbian [sr] |
|
| 3 | //! author : Milan Janačković<[email protected]> : https://github.com/milan-j |
|
| 4 | ||
| 5 | ;(function (global, factory) { |
|
| 6 | typeof exports === 'object' && typeof module !== 'undefined' |
|
| 7 | && typeof require === 'function' ? factory(require('../moment')) : |
|
| 8 | typeof define === 'function' && define.amd ? define(['../moment'], factory) : |
|
| 9 | factory(global.moment) |
|
| 10 | }(this, function (moment) { 'use strict'; |
|
| 11 | ||
| 12 | ||
| 13 | var translator = { |
|
| 14 | words: { //Different grammatical cases |
|
| 15 | m: ['jedan minut', 'jedne minute'], |
|
| 16 | mm: ['minut', 'minute', 'minuta'], |
|
| 17 | h: ['jedan sat', 'jednog sata'], |
|
| 18 | hh: ['sat', 'sata', 'sati'], |
|
| 19 | dd: ['dan', 'dana', 'dana'], |
|
| 20 | MM: ['mesec', 'meseca', 'meseci'], |
|
| 21 | yy: ['godina', 'godine', 'godina'] |
|
| 22 | }, |
|
| 23 | correctGrammaticalCase: function (number, wordKey) { |
|
| 24 | return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); |
|
| 25 | }, |
|
| 26 | translate: function (number, withoutSuffix, key) { |
|
| 27 | var wordKey = translator.words[key]; |
|
| 28 | if (key.length === 1) { |
|
| 29 | return withoutSuffix ? wordKey[0] : wordKey[1]; |
|
| 30 | } else { |
|
| 31 | return number + ' ' + translator.correctGrammaticalCase(number, wordKey); |
|
| 32 | } |
|
| 33 | } |
|
| 34 | }; |
|
| 35 | ||
| 36 | var sr = moment.defineLocale('sr', { |
|
| 37 | months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), |
|
| 38 | monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), |
|
| 39 | monthsParseExact: true, |
|
| 40 | weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'), |
|
| 41 | weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), |
|
| 42 | weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), |
|
| 43 | weekdaysParseExact : true, |
|
| 44 | longDateFormat: { |
|
| 45 | LT: 'H:mm', |
|
| 46 | LTS : 'H:mm:ss', |
|
| 47 | L: 'DD. MM. YYYY', |
|
| 48 | LL: 'D. MMMM YYYY', |
|
| 49 | LLL: 'D. MMMM YYYY H:mm', |
|
| 50 | LLLL: 'dddd, D. MMMM YYYY H:mm' |
|
| 51 | }, |
|
| 52 | calendar: { |
|
| 53 | sameDay: '[danas u] LT', |
|
| 54 | nextDay: '[sutra u] LT', |
|
| 55 | nextWeek: function () { |
|
| 56 | switch (this.day()) { |
|
| 57 | case 0: |
|
| 58 | return '[u] [nedelju] [u] LT'; |
|
| 59 | case 3: |
|
| 60 | return '[u] [sredu] [u] LT'; |
|
| 61 | case 6: |
|
| 62 | return '[u] [subotu] [u] LT'; |
|
| 63 | case 1: |
|
| 64 | case 2: |
|
| 65 | case 4: |
|
| 66 | case 5: |
|
| 67 | return '[u] dddd [u] LT'; |
|
| 68 | } |
|
| 69 | }, |
|
| 70 | lastDay : '[juče u] LT', |
|
| 71 | lastWeek : function () { |
|
| 72 | var lastWeekDays = [ |
|
| 73 | '[prošle] [nedelje] [u] LT', |
|
| 74 | '[prošlog] [ponedeljka] [u] LT', |
|
| 75 | '[prošlog] [utorka] [u] LT', |
|
| 76 | '[prošle] [srede] [u] LT', |
|
| 77 | '[prošlog] [četvrtka] [u] LT', |
|
| 78 | '[prošlog] [petka] [u] LT', |
|
| 79 | '[prošle] [subote] [u] LT' |
|
| 80 | ]; |
|
| 81 | return lastWeekDays[this.day()]; |
|
| 82 | }, |
|
| 83 | sameElse : 'L' |
|
| 84 | }, |
|
| 85 | relativeTime : { |
|
| 86 | future : 'za %s', |
|
| 87 | past : 'pre %s', |
|
| 88 | s : 'nekoliko sekundi', |
|
| 89 | m : translator.translate, |
|
| 90 | mm : translator.translate, |
|
| 91 | h : translator.translate, |
|
| 92 | hh : translator.translate, |
|
| 93 | d : 'dan', |
|
| 94 | dd : translator.translate, |
|
| 95 | M : 'mesec', |
|
| 96 | MM : translator.translate, |
|
| 97 | y : 'godinu', |
|
| 98 | yy : translator.translate |
|
| 99 | }, |
|
| 100 | ordinalParse: /\d{1,2}\./, |
|
| 101 | ordinal : '%d.', |
|
| 102 | week : { |
|
| 103 | dow : 1, // Monday is the first day of the week. |
|
| 104 | doy : 7 // The week that contains Jan 1st is the first week of the year. |
|
| 105 | } |
|
| 106 | }); |
|
| 107 | ||
| 108 | return sr; |
|
| 109 | ||
| 110 | })); |
|