uk.js (6935B)
1//! moment.js locale configuration 2//! locale : Ukrainian [uk] 3//! author : zemlanin : https://github.com/zemlanin 4//! Author : Menelion Elensúle : https://github.com/Oire 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 function plural(word, num) { 16 var forms = word.split('_'); 17 return num % 10 === 1 && num % 100 !== 11 18 ? forms[0] 19 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 20 ? forms[1] 21 : forms[2]; 22 } 23 function relativeTimeWithPlural(number, withoutSuffix, key) { 24 var format = { 25 ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', 26 mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', 27 hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', 28 dd: 'день_дні_днів', 29 MM: 'місяць_місяці_місяців', 30 yy: 'рік_роки_років', 31 }; 32 if (key === 'm') { 33 return withoutSuffix ? 'хвилина' : 'хвилину'; 34 } else if (key === 'h') { 35 return withoutSuffix ? 'година' : 'годину'; 36 } else { 37 return number + ' ' + plural(format[key], +number); 38 } 39 } 40 function weekdaysCaseReplace(m, format) { 41 var weekdays = { 42 nominative: 43 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( 44 '_' 45 ), 46 accusative: 47 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( 48 '_' 49 ), 50 genitive: 51 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( 52 '_' 53 ), 54 }, 55 nounCase; 56 57 if (m === true) { 58 return weekdays['nominative'] 59 .slice(1, 7) 60 .concat(weekdays['nominative'].slice(0, 1)); 61 } 62 if (!m) { 63 return weekdays['nominative']; 64 } 65 66 nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) 67 ? 'accusative' 68 : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) 69 ? 'genitive' 70 : 'nominative'; 71 return weekdays[nounCase][m.day()]; 72 } 73 function processHoursFunction(str) { 74 return function () { 75 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; 76 }; 77 } 78 79 var uk = moment.defineLocale('uk', { 80 months: { 81 format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( 82 '_' 83 ), 84 standalone: 85 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( 86 '_' 87 ), 88 }, 89 monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( 90 '_' 91 ), 92 weekdays: weekdaysCaseReplace, 93 weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), 94 weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), 95 longDateFormat: { 96 LT: 'HH:mm', 97 LTS: 'HH:mm:ss', 98 L: 'DD.MM.YYYY', 99 LL: 'D MMMM YYYY р.', 100 LLL: 'D MMMM YYYY р., HH:mm', 101 LLLL: 'dddd, D MMMM YYYY р., HH:mm', 102 }, 103 calendar: { 104 sameDay: processHoursFunction('[Сьогодні '), 105 nextDay: processHoursFunction('[Завтра '), 106 lastDay: processHoursFunction('[Вчора '), 107 nextWeek: processHoursFunction('[У] dddd ['), 108 lastWeek: function () { 109 switch (this.day()) { 110 case 0: 111 case 3: 112 case 5: 113 case 6: 114 return processHoursFunction('[Минулої] dddd [').call(this); 115 case 1: 116 case 2: 117 case 4: 118 return processHoursFunction('[Минулого] dddd [').call(this); 119 } 120 }, 121 sameElse: 'L', 122 }, 123 relativeTime: { 124 future: 'за %s', 125 past: '%s тому', 126 s: 'декілька секунд', 127 ss: relativeTimeWithPlural, 128 m: relativeTimeWithPlural, 129 mm: relativeTimeWithPlural, 130 h: 'годину', 131 hh: relativeTimeWithPlural, 132 d: 'день', 133 dd: relativeTimeWithPlural, 134 M: 'місяць', 135 MM: relativeTimeWithPlural, 136 y: 'рік', 137 yy: relativeTimeWithPlural, 138 }, 139 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason 140 meridiemParse: /ночі|ранку|дня|вечора/, 141 isPM: function (input) { 142 return /^(дня|вечора)$/.test(input); 143 }, 144 meridiem: function (hour, minute, isLower) { 145 if (hour < 4) { 146 return 'ночі'; 147 } else if (hour < 12) { 148 return 'ранку'; 149 } else if (hour < 17) { 150 return 'дня'; 151 } else { 152 return 'вечора'; 153 } 154 }, 155 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, 156 ordinal: function (number, period) { 157 switch (period) { 158 case 'M': 159 case 'd': 160 case 'DDD': 161 case 'w': 162 case 'W': 163 return number + '-й'; 164 case 'D': 165 return number + '-го'; 166 default: 167 return number; 168 } 169 }, 170 week: { 171 dow: 1, // Monday is the first day of the week. 172 doy: 7, // The week that contains Jan 7th is the first week of the year. 173 }, 174 }); 175 176 return uk; 177 178})));