UNPKG

5.58 kBJavaScriptView Raw
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})));