ru.js (9566B)
1//! moment.js locale configuration 2//! locale : Russian [ru] 3//! author : Viktorminator : https://github.com/Viktorminator 4//! author : Menelion Elensúle : https://github.com/Oire 5//! author : Коренберг Марк : https://github.com/socketpair 6 7;(function (global, factory) { 8 typeof exports === 'object' && typeof module !== 'undefined' 9 && typeof require === 'function' ? factory(require('../moment')) : 10 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 11 factory(global.moment) 12}(this, (function (moment) { 'use strict'; 13 14 //! moment.js locale configuration 15 16 function plural(word, num) { 17 var forms = word.split('_'); 18 return num % 10 === 1 && num % 100 !== 11 19 ? forms[0] 20 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 21 ? forms[1] 22 : forms[2]; 23 } 24 function relativeTimeWithPlural(number, withoutSuffix, key) { 25 var format = { 26 ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', 27 mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', 28 hh: 'час_часа_часов', 29 dd: 'день_дня_дней', 30 ww: 'неделя_недели_недель', 31 MM: 'месяц_месяца_месяцев', 32 yy: 'год_года_лет', 33 }; 34 if (key === 'm') { 35 return withoutSuffix ? 'минута' : 'минуту'; 36 } else { 37 return number + ' ' + plural(format[key], +number); 38 } 39 } 40 var monthsParse = [ 41 /^янв/i, 42 /^фев/i, 43 /^мар/i, 44 /^апр/i, 45 /^ма[йя]/i, 46 /^июн/i, 47 /^июл/i, 48 /^авг/i, 49 /^сен/i, 50 /^окт/i, 51 /^ноя/i, 52 /^дек/i, 53 ]; 54 55 // http://new.gramota.ru/spravka/rules/139-prop : § 103 56 // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 57 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 58 var ru = moment.defineLocale('ru', { 59 months: { 60 format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( 61 '_' 62 ), 63 standalone: 64 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( 65 '_' 66 ), 67 }, 68 monthsShort: { 69 // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? 70 format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( 71 '_' 72 ), 73 standalone: 74 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( 75 '_' 76 ), 77 }, 78 weekdays: { 79 standalone: 80 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( 81 '_' 82 ), 83 format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( 84 '_' 85 ), 86 isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, 87 }, 88 weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), 89 weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), 90 monthsParse: monthsParse, 91 longMonthsParse: monthsParse, 92 shortMonthsParse: monthsParse, 93 94 // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки 95 monthsRegex: 96 /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, 97 98 // копия предыдущего 99 monthsShortRegex: 100 /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, 101 102 // полные названия с падежами 103 monthsStrictRegex: 104 /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, 105 106 // Выражение, которое соответствует только сокращённым формам 107 monthsShortStrictRegex: 108 /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, 109 longDateFormat: { 110 LT: 'H:mm', 111 LTS: 'H:mm:ss', 112 L: 'DD.MM.YYYY', 113 LL: 'D MMMM YYYY г.', 114 LLL: 'D MMMM YYYY г., H:mm', 115 LLLL: 'dddd, D MMMM YYYY г., H:mm', 116 }, 117 calendar: { 118 sameDay: '[Сегодня, в] LT', 119 nextDay: '[Завтра, в] LT', 120 lastDay: '[Вчера, в] LT', 121 nextWeek: function (now) { 122 if (now.week() !== this.week()) { 123 switch (this.day()) { 124 case 0: 125 return '[В следующее] dddd, [в] LT'; 126 case 1: 127 case 2: 128 case 4: 129 return '[В следующий] dddd, [в] LT'; 130 case 3: 131 case 5: 132 case 6: 133 return '[В следующую] dddd, [в] LT'; 134 } 135 } else { 136 if (this.day() === 2) { 137 return '[Во] dddd, [в] LT'; 138 } else { 139 return '[В] dddd, [в] LT'; 140 } 141 } 142 }, 143 lastWeek: function (now) { 144 if (now.week() !== this.week()) { 145 switch (this.day()) { 146 case 0: 147 return '[В прошлое] dddd, [в] LT'; 148 case 1: 149 case 2: 150 case 4: 151 return '[В прошлый] dddd, [в] LT'; 152 case 3: 153 case 5: 154 case 6: 155 return '[В прошлую] dddd, [в] LT'; 156 } 157 } else { 158 if (this.day() === 2) { 159 return '[Во] dddd, [в] LT'; 160 } else { 161 return '[В] dddd, [в] LT'; 162 } 163 } 164 }, 165 sameElse: 'L', 166 }, 167 relativeTime: { 168 future: 'через %s', 169 past: '%s назад', 170 s: 'несколько секунд', 171 ss: relativeTimeWithPlural, 172 m: relativeTimeWithPlural, 173 mm: relativeTimeWithPlural, 174 h: 'час', 175 hh: relativeTimeWithPlural, 176 d: 'день', 177 dd: relativeTimeWithPlural, 178 w: 'неделя', 179 ww: relativeTimeWithPlural, 180 M: 'месяц', 181 MM: relativeTimeWithPlural, 182 y: 'год', 183 yy: relativeTimeWithPlural, 184 }, 185 meridiemParse: /ночи|утра|дня|вечера/i, 186 isPM: function (input) { 187 return /^(дня|вечера)$/.test(input); 188 }, 189 meridiem: function (hour, minute, isLower) { 190 if (hour < 4) { 191 return 'ночи'; 192 } else if (hour < 12) { 193 return 'утра'; 194 } else if (hour < 17) { 195 return 'дня'; 196 } else { 197 return 'вечера'; 198 } 199 }, 200 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, 201 ordinal: function (number, period) { 202 switch (period) { 203 case 'M': 204 case 'd': 205 case 'DDD': 206 return number + '-й'; 207 case 'D': 208 return number + '-го'; 209 case 'w': 210 case 'W': 211 return number + '-я'; 212 default: 213 return number; 214 } 215 }, 216 week: { 217 dow: 1, // Monday is the first day of the week. 218 doy: 4, // The week that contains Jan 4th is the first week of the year. 219 }, 220 }); 221 222 return ru; 223 224})));