momentjs-rails 2.20.1 → 2.29.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/news.md +12 -0
  4. data/test/dummy/app/assets/config/manifest.js +1 -0
  5. data/test/dummy/config/environments/development.rb +2 -0
  6. data/test/dummy/config/environments/production.rb +1 -0
  7. data/test/dummy/config/environments/test.rb +2 -0
  8. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/0t/0ty_fqRlzF-hGYQebubBsuGgCeT9YnqkULkaCu1nwMk.cache +0 -0
  9. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/3D/3DLOuccQFCZCWz_kmyP6PagEyQM5ne4ONIzBwdwG-fY.cache +2 -0
  10. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/3h/3hk-k7Z5qoOh6S1dyiOjpfiwRfblMf4NpG3NVkO_4GQ.cache +1 -0
  11. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/81/81FXcACo3ySybaa-2mJ9JsZ4xXvXxgi6rAT9sildrVs.cache +1 -0
  12. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/97/97gKfWGwqo7IhT-5nqdT3p547QEt2G9nbmU5XVAtEeE.cache +1 -0
  13. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/GO/GOYA_gO9tZqOtwNUptOfYUG1F6q5BF1ZZI0Wr7itvYM.cache +1 -0
  14. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/NG/NGyfZ_kRU3oHnf8bEjRHJwpjyx0NF_U8V_ENdenCoIg.cache +1 -0
  15. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/R9/R9pPKpyMZFVnjZL7kwY21faYzV2WpIx_hPb5GrUown8.cache +2 -0
  16. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/W1/W1cCnSuixTbIt3rgc5Z-4BGC1iBfw6gqKVjuOh66lSY.cache +3 -0
  17. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Xr/Xr9AioDZNswMqHmbREXo4J_kNVPlbysC8G37BX65-rY.cache +0 -0
  18. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/lK/lKG81FVPPHkSni295teRgLDoWVYRamY_BCSFxMiagSs.cache +1 -0
  19. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/q7/q7CVcZSJHIEQqdPLpSAb4YHepJZFY541_7ToMaHvbtA.cache +0 -0
  20. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/wF/wFKYFOm2u1A3crk6JyBKUw2L5ybvI0Tbt2jPPZXfdWQ.cache +3 -0
  21. data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/yY/yY97dYnGEDUjVioT9bUJucvTt0w_ToimRXWj3YYvD10.cache +0 -0
  22. data/test/integration/navigation_test.rb +1 -1
  23. data/vendor/assets/javascripts/moment/af.js +67 -59
  24. data/vendor/assets/javascripts/moment/ar-dz.js +153 -46
  25. data/vendor/assets/javascripts/moment/ar-kw.js +51 -45
  26. data/vendor/assets/javascripts/moment/ar-ly.js +167 -112
  27. data/vendor/assets/javascripts/moment/ar-ma.js +51 -45
  28. data/vendor/assets/javascripts/moment/ar-sa.js +100 -90
  29. data/vendor/assets/javascripts/moment/ar-tn.js +51 -45
  30. data/vendor/assets/javascripts/moment/ar.js +182 -125
  31. data/vendor/assets/javascripts/moment/az.js +97 -90
  32. data/vendor/assets/javascripts/moment/be.js +130 -112
  33. data/vendor/assets/javascripts/moment/bg.js +81 -74
  34. data/vendor/assets/javascripts/moment/bm.js +47 -45
  35. data/vendor/assets/javascripts/moment/bn-bd.js +140 -0
  36. data/vendor/assets/javascripts/moment/bn.js +113 -103
  37. data/vendor/assets/javascripts/moment/bo.js +118 -103
  38. data/vendor/assets/javascripts/moment/br.js +158 -88
  39. data/vendor/assets/javascripts/moment/bs.js +141 -133
  40. data/vendor/assets/javascripts/moment/ca.js +91 -69
  41. data/vendor/assets/javascripts/moment/cs.js +172 -161
  42. data/vendor/assets/javascripts/moment/cv.js +58 -48
  43. data/vendor/assets/javascripts/moment/cy.js +92 -65
  44. data/vendor/assets/javascripts/moment/da.js +49 -46
  45. data/vendor/assets/javascripts/moment/de-at.js +71 -61
  46. data/vendor/assets/javascripts/moment/de-ch.js +71 -63
  47. data/vendor/assets/javascripts/moment/de.js +71 -61
  48. data/vendor/assets/javascripts/moment/dv.js +85 -85
  49. data/vendor/assets/javascripts/moment/el.js +99 -83
  50. data/vendor/assets/javascripts/moment/en-au.js +64 -53
  51. data/vendor/assets/javascripts/moment/en-ca.js +60 -49
  52. data/vendor/assets/javascripts/moment/en-gb.js +64 -53
  53. data/vendor/assets/javascripts/moment/en-ie.js +64 -53
  54. data/vendor/assets/javascripts/moment/en-il.js +75 -0
  55. data/vendor/assets/javascripts/moment/en-in.js +79 -0
  56. data/vendor/assets/javascripts/moment/en-nz.js +64 -53
  57. data/vendor/assets/javascripts/moment/en-sg.js +79 -0
  58. data/vendor/assets/javascripts/moment/eo.js +62 -57
  59. data/vendor/assets/javascripts/moment/es-do.js +99 -72
  60. data/vendor/assets/javascripts/moment/es-mx.js +121 -0
  61. data/vendor/assets/javascripts/moment/es-us.js +100 -63
  62. data/vendor/assets/javascripts/moment/es.js +100 -72
  63. data/vendor/assets/javascripts/moment/et.js +71 -64
  64. data/vendor/assets/javascripts/moment/eu.js +61 -52
  65. data/vendor/assets/javascripts/moment/fa.js +108 -92
  66. data/vendor/assets/javascripts/moment/fi.js +118 -93
  67. data/vendor/assets/javascripts/moment/fil.js +69 -0
  68. data/vendor/assets/javascripts/moment/fo.js +53 -46
  69. data/vendor/assets/javascripts/moment/fr-ca.js +65 -59
  70. data/vendor/assets/javascripts/moment/fr-ch.js +69 -63
  71. data/vendor/assets/javascripts/moment/fr.js +102 -67
  72. data/vendor/assets/javascripts/moment/fy.js +70 -60
  73. data/vendor/assets/javascripts/moment/ga.js +106 -0
  74. data/vendor/assets/javascripts/moment/gd.js +90 -61
  75. data/vendor/assets/javascripts/moment/gl.js +67 -59
  76. data/vendor/assets/javascripts/moment/gom-deva.js +137 -0
  77. data/vendor/assets/javascripts/moment/gom-latn.js +119 -108
  78. data/vendor/assets/javascripts/moment/gu.js +117 -109
  79. data/vendor/assets/javascripts/moment/he.js +84 -79
  80. data/vendor/assets/javascripts/moment/hi.js +163 -109
  81. data/vendor/assets/javascripts/moment/hr.js +148 -136
  82. data/vendor/assets/javascripts/moment/hu.js +110 -92
  83. data/vendor/assets/javascripts/moment/hy-am.js +88 -79
  84. data/vendor/assets/javascripts/moment/id.js +71 -68
  85. data/vendor/assets/javascripts/moment/is.js +128 -110
  86. data/vendor/assets/javascripts/moment/it-ch.js +75 -0
  87. data/vendor/assets/javascripts/moment/it.js +99 -53
  88. data/vendor/assets/javascripts/moment/ja.js +144 -66
  89. data/vendor/assets/javascripts/moment/jv.js +71 -68
  90. data/vendor/assets/javascripts/moment/ka.js +85 -72
  91. data/vendor/assets/javascripts/moment/kk.js +77 -72
  92. data/vendor/assets/javascripts/moment/km.js +99 -44
  93. data/vendor/assets/javascripts/moment/kn.js +119 -111
  94. data/vendor/assets/javascripts/moment/ko.js +70 -67
  95. data/vendor/assets/javascripts/moment/ku.js +129 -0
  96. data/vendor/assets/javascripts/moment/ky.js +79 -73
  97. data/vendor/assets/javascripts/moment/lb.js +125 -115
  98. data/vendor/assets/javascripts/moment/lo.js +62 -56
  99. data/vendor/assets/javascripts/moment/lt.js +117 -100
  100. data/vendor/assets/javascripts/moment/lv.js +87 -81
  101. data/vendor/assets/javascripts/moment/me.js +109 -94
  102. data/vendor/assets/javascripts/moment/mi.js +56 -50
  103. data/vendor/assets/javascripts/moment/mk.js +80 -74
  104. data/vendor/assets/javascripts/moment/ml.js +77 -66
  105. data/vendor/assets/javascripts/moment/mn.js +111 -0
  106. data/vendor/assets/javascripts/moment/mr.js +194 -142
  107. data/vendor/assets/javascripts/moment/ms-my.js +71 -68
  108. data/vendor/assets/javascripts/moment/ms.js +71 -68
  109. data/vendor/assets/javascripts/moment/mt.js +52 -46
  110. data/vendor/assets/javascripts/moment/my.js +83 -78
  111. data/vendor/assets/javascripts/moment/nb.js +55 -48
  112. data/vendor/assets/javascripts/moment/ne.js +116 -108
  113. data/vendor/assets/javascripts/moment/nl-be.js +93 -69
  114. data/vendor/assets/javascripts/moment/nl.js +95 -69
  115. data/vendor/assets/javascripts/moment/nn.js +56 -47
  116. data/vendor/assets/javascripts/moment/oc-lnc.js +96 -0
  117. data/vendor/assets/javascripts/moment/pa-in.js +117 -109
  118. data/vendor/assets/javascripts/moment/pl.js +128 -104
  119. data/vendor/assets/javascripts/moment/pt-br.js +53 -46
  120. data/vendor/assets/javascripts/moment/pt.js +58 -50
  121. data/vendor/assets/javascripts/moment/ro.js +69 -59
  122. data/vendor/assets/javascripts/moment/ru.js +194 -155
  123. data/vendor/assets/javascripts/moment/sd.js +76 -83
  124. data/vendor/assets/javascripts/moment/se.js +53 -47
  125. data/vendor/assets/javascripts/moment/si.js +65 -57
  126. data/vendor/assets/javascripts/moment/sk.js +136 -138
  127. data/vendor/assets/javascripts/moment/sl.js +162 -154
  128. data/vendor/assets/javascripts/moment/sq.js +59 -54
  129. data/vendor/assets/javascripts/moment/sr-cyrl.js +119 -93
  130. data/vendor/assets/javascripts/moment/sr.js +121 -93
  131. data/vendor/assets/javascripts/moment/ss.js +79 -74
  132. data/vendor/assets/javascripts/moment/sv.js +64 -55
  133. data/vendor/assets/javascripts/moment/sw.js +51 -45
  134. data/vendor/assets/javascripts/moment/ta.js +126 -115
  135. data/vendor/assets/javascripts/moment/te.js +84 -75
  136. data/vendor/assets/javascripts/moment/tet.js +63 -53
  137. data/vendor/assets/javascripts/moment/tg.js +128 -0
  138. data/vendor/assets/javascripts/moment/th.js +61 -53
  139. data/vendor/assets/javascripts/moment/tk.js +102 -0
  140. data/vendor/assets/javascripts/moment/tl-ph.js +53 -48
  141. data/vendor/assets/javascripts/moment/tlh.js +113 -101
  142. data/vendor/assets/javascripts/moment/tr.js +100 -74
  143. data/vendor/assets/javascripts/moment/tzl.js +83 -76
  144. data/vendor/assets/javascripts/moment/tzm-latn.js +50 -44
  145. data/vendor/assets/javascripts/moment/tzm.js +50 -44
  146. data/vendor/assets/javascripts/moment/ug-cn.js +122 -0
  147. data/vendor/assets/javascripts/moment/uk.js +155 -130
  148. data/vendor/assets/javascripts/moment/ur.js +76 -83
  149. data/vendor/assets/javascripts/moment/uz-latn.js +50 -44
  150. data/vendor/assets/javascripts/moment/uz.js +47 -44
  151. data/vendor/assets/javascripts/moment/vi.js +76 -65
  152. data/vendor/assets/javascripts/moment/x-pseudo.js +69 -54
  153. data/vendor/assets/javascripts/moment/yo.js +49 -46
  154. data/vendor/assets/javascripts/moment/zh-cn.js +115 -96
  155. data/vendor/assets/javascripts/moment/zh-hk.js +95 -89
  156. data/vendor/assets/javascripts/moment/zh-mo.js +111 -0
  157. data/vendor/assets/javascripts/moment/zh-tw.js +94 -89
  158. data/vendor/assets/javascripts/moment.js +5030 -3880
  159. metadata +64 -31
  160. data/test/dummy/tmp/cache/assets/D1C/680/sprockets%2F16ed4d5afdb2919596e6f8790e2116c2 +0 -0
  161. data/test/dummy/tmp/cache/assets/D35/CA0/sprockets%2F493e64bce2d302801dc01cf7cd096a58 +0 -0
  162. data/test/dummy/tmp/cache/assets/D3F/5F0/sprockets%2F4a6c53eae7c6e41a69a191578bbb6417 +0 -0
  163. data/test/dummy/tmp/cache/assets/D58/BD0/sprockets%2F4de9ddc9b725c715a54c98697b2528fe +0 -0
  164. data/test/dummy/tmp/cache/assets/D75/510/sprockets%2Fe690787ac522f47a6be024bfcc1767ee +0 -0
  165. data/test/dummy/tmp/cache/assets/E10/250/sprockets%2Fe4badb9ddfda484eb9671bf88567be61 +0 -0
@@ -11,61 +11,66 @@
11
11
  factory(global.moment)
12
12
  }(this, (function (moment) { 'use strict';
13
13
 
14
+ //! moment.js locale configuration
14
15
 
15
- var sq = moment.defineLocale('sq', {
16
- months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
17
- monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
18
- weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
19
- weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
20
- weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
21
- weekdaysParseExact : true,
22
- meridiemParse: /PD|MD/,
23
- isPM: function (input) {
24
- return input.charAt(0) === 'M';
25
- },
26
- meridiem : function (hours, minutes, isLower) {
27
- return hours < 12 ? 'PD' : 'MD';
28
- },
29
- longDateFormat : {
30
- LT : 'HH:mm',
31
- LTS : 'HH:mm:ss',
32
- L : 'DD/MM/YYYY',
33
- LL : 'D MMMM YYYY',
34
- LLL : 'D MMMM YYYY HH:mm',
35
- LLLL : 'dddd, D MMMM YYYY HH:mm'
36
- },
37
- calendar : {
38
- sameDay : '[Sot në] LT',
39
- nextDay : '[Nesër në] LT',
40
- nextWeek : 'dddd [në] LT',
41
- lastDay : '[Dje në] LT',
42
- lastWeek : 'dddd [e kaluar në] LT',
43
- sameElse : 'L'
44
- },
45
- relativeTime : {
46
- future : 'në %s',
47
- past : '%s më parë',
48
- s : 'disa sekonda',
49
- ss : '%d sekonda',
50
- m : 'një minutë',
51
- mm : '%d minuta',
52
- h : 'një orë',
53
- hh : '%d orë',
54
- d : 'një ditë',
55
- dd : '%d ditë',
56
- M : 'një muaj',
57
- MM : '%d muaj',
58
- y : 'një vit',
59
- yy : '%d vite'
60
- },
61
- dayOfMonthOrdinalParse: /\d{1,2}\./,
62
- ordinal : '%d.',
63
- week : {
64
- dow : 1, // Monday is the first day of the week.
65
- doy : 4 // The week that contains Jan 4th is the first week of the year.
66
- }
67
- });
16
+ var sq = moment.defineLocale('sq', {
17
+ months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
18
+ '_'
19
+ ),
20
+ monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
21
+ weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
22
+ '_'
23
+ ),
24
+ weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
25
+ weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
26
+ weekdaysParseExact: true,
27
+ meridiemParse: /PD|MD/,
28
+ isPM: function (input) {
29
+ return input.charAt(0) === 'M';
30
+ },
31
+ meridiem: function (hours, minutes, isLower) {
32
+ return hours < 12 ? 'PD' : 'MD';
33
+ },
34
+ longDateFormat: {
35
+ LT: 'HH:mm',
36
+ LTS: 'HH:mm:ss',
37
+ L: 'DD/MM/YYYY',
38
+ LL: 'D MMMM YYYY',
39
+ LLL: 'D MMMM YYYY HH:mm',
40
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
41
+ },
42
+ calendar: {
43
+ sameDay: '[Sot në] LT',
44
+ nextDay: '[Nesër në] LT',
45
+ nextWeek: 'dddd [në] LT',
46
+ lastDay: '[Dje në] LT',
47
+ lastWeek: 'dddd [e kaluar ] LT',
48
+ sameElse: 'L',
49
+ },
50
+ relativeTime: {
51
+ future: ' %s',
52
+ past: '%s më parë',
53
+ s: 'disa sekonda',
54
+ ss: '%d sekonda',
55
+ m: 'një minutë',
56
+ mm: '%d minuta',
57
+ h: 'një orë',
58
+ hh: '%d orë',
59
+ d: 'një ditë',
60
+ dd: '%d ditë',
61
+ M: 'një muaj',
62
+ MM: '%d muaj',
63
+ y: 'një vit',
64
+ yy: '%d vite',
65
+ },
66
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
67
+ ordinal: '%d.',
68
+ week: {
69
+ dow: 1, // Monday is the first day of the week.
70
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
71
+ },
72
+ });
68
73
 
69
- return sq;
74
+ return sq;
70
75
 
71
76
  })));
@@ -1,6 +1,7 @@
1
1
  //! moment.js locale configuration
2
2
  //! locale : Serbian Cyrillic [sr-cyrl]
3
3
  //! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
4
+ //! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic
4
5
 
5
6
  ;(function (global, factory) {
6
7
  typeof exports === 'object' && typeof module !== 'undefined'
@@ -9,104 +10,129 @@
9
10
  factory(global.moment)
10
11
  }(this, (function (moment) { 'use strict';
11
12
 
13
+ //! moment.js locale configuration
12
14
 
13
- var translator = {
14
- words: { //Different grammatical cases
15
- ss: ['секунда', 'секунде', 'секунди'],
16
- m: ['један минут', 'једне минуте'],
17
- mm: ['минут', 'минуте', 'минута'],
18
- h: ['један сат', 'једног сата'],
19
- hh: ['сат', 'сата', 'сати'],
20
- dd: ['дан', 'дана', 'дана'],
21
- MM: ['месец', 'месеца', 'месеци'],
22
- yy: ['година', 'године', 'година']
23
- },
24
- correctGrammaticalCase: function (number, wordKey) {
25
- return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
26
- },
27
- translate: function (number, withoutSuffix, key) {
28
- var wordKey = translator.words[key];
29
- if (key.length === 1) {
30
- return withoutSuffix ? wordKey[0] : wordKey[1];
31
- } else {
32
- return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
33
- }
34
- }
35
- };
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
+ }
36
49
 
37
- var srCyrl = moment.defineLocale('sr-cyrl', {
38
- months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),
39
- monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
40
- monthsParseExact: true,
41
- weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
42
- weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
43
- weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
44
- weekdaysParseExact : true,
45
- longDateFormat: {
46
- LT: 'H:mm',
47
- LTS : 'H:mm:ss',
48
- L: 'DD.MM.YYYY',
49
- LL: 'D. MMMM YYYY',
50
- LLL: 'D. MMMM YYYY H:mm',
51
- LLLL: 'dddd, D. MMMM YYYY H:mm'
52
- },
53
- calendar: {
54
- sameDay: '[данас у] LT',
55
- nextDay: '[сутра у] LT',
56
- nextWeek: function () {
57
- switch (this.day()) {
58
- case 0:
59
- return '[у] [недељу] [у] LT';
60
- case 3:
61
- return '[у] [среду] [у] LT';
62
- case 6:
63
- return '[у] [суботу] [у] LT';
64
- case 1:
65
- case 2:
66
- case 4:
67
- case 5:
68
- return '[у] dddd [у] LT';
50
+ word = translator.correctGrammaticalCase(number, wordKey);
51
+ // Nominativ
52
+ if (key === 'yy' && withoutSuffix && word === 'годину') {
53
+ return number + ' година';
69
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,
70
127
  },
71
- lastDay : '[јуче у] LT',
72
- lastWeek : function () {
73
- var lastWeekDays = [
74
- '[прошле] [недеље] [у] LT',
75
- '[прошлог] [понедељка] [у] LT',
76
- '[прошлог] [уторка] [у] LT',
77
- '[прошле] [среде] [у] LT',
78
- '[прошлог] [четвртка] [у] LT',
79
- '[прошлог] [петка] [у] LT',
80
- '[прошле] [суботе] [у] LT'
81
- ];
82
- return lastWeekDays[this.day()];
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.
83
133
  },
84
- sameElse : 'L'
85
- },
86
- relativeTime : {
87
- future : 'за %s',
88
- past : 'пре %s',
89
- s : 'неколико секунди',
90
- ss : translator.translate,
91
- m : translator.translate,
92
- mm : translator.translate,
93
- h : translator.translate,
94
- hh : translator.translate,
95
- d : 'дан',
96
- dd : translator.translate,
97
- M : 'месец',
98
- MM : translator.translate,
99
- y : 'годину',
100
- yy : translator.translate
101
- },
102
- dayOfMonthOrdinalParse: /\d{1,2}\./,
103
- ordinal : '%d.',
104
- week : {
105
- dow : 1, // Monday is the first day of the week.
106
- doy : 7 // The week that contains Jan 1st is the first week of the year.
107
- }
108
- });
134
+ });
109
135
 
110
- return srCyrl;
136
+ return srCyrl;
111
137
 
112
138
  })));
@@ -1,6 +1,7 @@
1
1
  //! moment.js locale configuration
2
2
  //! locale : Serbian [sr]
3
3
  //! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
4
+ //! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic
4
5
 
5
6
  ;(function (global, factory) {
6
7
  typeof exports === 'object' && typeof module !== 'undefined'
@@ -9,104 +10,131 @@
9
10
  factory(global.moment)
10
11
  }(this, (function (moment) { 'use strict';
11
12
 
13
+ //! moment.js locale configuration
12
14
 
13
- var translator = {
14
- words: { //Different grammatical cases
15
- ss: ['sekunda', 'sekunde', 'sekundi'],
16
- m: ['jedan minut', 'jedne minute'],
17
- mm: ['minut', 'minute', 'minuta'],
18
- h: ['jedan sat', 'jednog sata'],
19
- hh: ['sat', 'sata', 'sati'],
20
- dd: ['dan', 'dana', 'dana'],
21
- MM: ['mesec', 'meseca', 'meseci'],
22
- yy: ['godina', 'godine', 'godina']
23
- },
24
- correctGrammaticalCase: function (number, wordKey) {
25
- return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
26
- },
27
- translate: function (number, withoutSuffix, key) {
28
- var wordKey = translator.words[key];
29
- if (key.length === 1) {
30
- return withoutSuffix ? wordKey[0] : wordKey[1];
31
- } else {
32
- return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
33
- }
34
- }
35
- };
15
+ var translator = {
16
+ words: {
17
+ //Different grammatical cases
18
+ ss: ['sekunda', 'sekunde', 'sekundi'],
19
+ m: ['jedan minut', 'jednog minuta'],
20
+ mm: ['minut', 'minuta', 'minuta'],
21
+ h: ['jedan sat', 'jednog sata'],
22
+ hh: ['sat', 'sata', 'sati'],
23
+ d: ['jedan dan', 'jednog dana'],
24
+ dd: ['dan', 'dana', 'dana'],
25
+ M: ['jedan mesec', 'jednog meseca'],
26
+ MM: ['mesec', 'meseca', 'meseci'],
27
+ y: ['jednu godinu', 'jedne godine'],
28
+ yy: ['godinu', 'godine', 'godina'],
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 'jedna godina';
47
+ return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
48
+ }
36
49
 
37
- var sr = moment.defineLocale('sr', {
38
- months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
39
- monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
40
- monthsParseExact: true,
41
- weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
42
- weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
43
- weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
44
- weekdaysParseExact : true,
45
- longDateFormat: {
46
- LT: 'H:mm',
47
- LTS : 'H:mm:ss',
48
- L: 'DD.MM.YYYY',
49
- LL: 'D. MMMM YYYY',
50
- LLL: 'D. MMMM YYYY H:mm',
51
- LLLL: 'dddd, D. MMMM YYYY H:mm'
52
- },
53
- calendar: {
54
- sameDay: '[danas u] LT',
55
- nextDay: '[sutra u] LT',
56
- nextWeek: function () {
57
- switch (this.day()) {
58
- case 0:
59
- return '[u] [nedelju] [u] LT';
60
- case 3:
61
- return '[u] [sredu] [u] LT';
62
- case 6:
63
- return '[u] [subotu] [u] LT';
64
- case 1:
65
- case 2:
66
- case 4:
67
- case 5:
68
- return '[u] dddd [u] LT';
50
+ word = translator.correctGrammaticalCase(number, wordKey);
51
+ // Nominativ
52
+ if (key === 'yy' && withoutSuffix && word === 'godinu') {
53
+ return number + ' godina';
69
54
  }
55
+
56
+ return number + ' ' + word;
57
+ },
58
+ };
59
+
60
+ var sr = moment.defineLocale('sr', {
61
+ months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
62
+ '_'
63
+ ),
64
+ monthsShort:
65
+ 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
66
+ monthsParseExact: true,
67
+ weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
68
+ '_'
69
+ ),
70
+ weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
71
+ weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
72
+ weekdaysParseExact: true,
73
+ longDateFormat: {
74
+ LT: 'H:mm',
75
+ LTS: 'H:mm:ss',
76
+ L: 'D. M. YYYY.',
77
+ LL: 'D. MMMM YYYY.',
78
+ LLL: 'D. MMMM YYYY. H:mm',
79
+ LLLL: 'dddd, D. MMMM YYYY. H:mm',
80
+ },
81
+ calendar: {
82
+ sameDay: '[danas u] LT',
83
+ nextDay: '[sutra u] LT',
84
+ nextWeek: function () {
85
+ switch (this.day()) {
86
+ case 0:
87
+ return '[u] [nedelju] [u] LT';
88
+ case 3:
89
+ return '[u] [sredu] [u] LT';
90
+ case 6:
91
+ return '[u] [subotu] [u] LT';
92
+ case 1:
93
+ case 2:
94
+ case 4:
95
+ case 5:
96
+ return '[u] dddd [u] LT';
97
+ }
98
+ },
99
+ lastDay: '[juče u] LT',
100
+ lastWeek: function () {
101
+ var lastWeekDays = [
102
+ '[prošle] [nedelje] [u] LT',
103
+ '[prošlog] [ponedeljka] [u] LT',
104
+ '[prošlog] [utorka] [u] LT',
105
+ '[prošle] [srede] [u] LT',
106
+ '[prošlog] [četvrtka] [u] LT',
107
+ '[prošlog] [petka] [u] LT',
108
+ '[prošle] [subote] [u] LT',
109
+ ];
110
+ return lastWeekDays[this.day()];
111
+ },
112
+ sameElse: 'L',
113
+ },
114
+ relativeTime: {
115
+ future: 'za %s',
116
+ past: 'pre %s',
117
+ s: 'nekoliko sekundi',
118
+ ss: translator.translate,
119
+ m: translator.translate,
120
+ mm: translator.translate,
121
+ h: translator.translate,
122
+ hh: translator.translate,
123
+ d: translator.translate,
124
+ dd: translator.translate,
125
+ M: translator.translate,
126
+ MM: translator.translate,
127
+ y: translator.translate,
128
+ yy: translator.translate,
70
129
  },
71
- lastDay : '[juče u] LT',
72
- lastWeek : function () {
73
- var lastWeekDays = [
74
- '[prošle] [nedelje] [u] LT',
75
- '[prošlog] [ponedeljka] [u] LT',
76
- '[prošlog] [utorka] [u] LT',
77
- '[prošle] [srede] [u] LT',
78
- '[prošlog] [četvrtka] [u] LT',
79
- '[prošlog] [petka] [u] LT',
80
- '[prošle] [subote] [u] LT'
81
- ];
82
- return lastWeekDays[this.day()];
130
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
131
+ ordinal: '%d.',
132
+ week: {
133
+ dow: 1, // Monday is the first day of the week.
134
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
83
135
  },
84
- sameElse : 'L'
85
- },
86
- relativeTime : {
87
- future : 'za %s',
88
- past : 'pre %s',
89
- s : 'nekoliko sekundi',
90
- ss : translator.translate,
91
- m : translator.translate,
92
- mm : translator.translate,
93
- h : translator.translate,
94
- hh : translator.translate,
95
- d : 'dan',
96
- dd : translator.translate,
97
- M : 'mesec',
98
- MM : translator.translate,
99
- y : 'godinu',
100
- yy : translator.translate
101
- },
102
- dayOfMonthOrdinalParse: /\d{1,2}\./,
103
- ordinal : '%d.',
104
- week : {
105
- dow : 1, // Monday is the first day of the week.
106
- doy : 7 // The week that contains Jan 1st is the first week of the year.
107
- }
108
- });
136
+ });
109
137
 
110
- return sr;
138
+ return sr;
111
139
 
112
140
  })));