GPQAPP

Форк
0
174 строки · 6.7 Кб
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: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
43
                    '_'
44
                ),
45
                accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
46
                    '_'
47
                ),
48
                genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
49
                    '_'
50
                ),
51
            },
52
            nounCase;
53

54
        if (m === true) {
55
            return weekdays['nominative']
56
                .slice(1, 7)
57
                .concat(weekdays['nominative'].slice(0, 1));
58
        }
59
        if (!m) {
60
            return weekdays['nominative'];
61
        }
62

63
        nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
64
            ? 'accusative'
65
            : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
66
            ? 'genitive'
67
            : 'nominative';
68
        return weekdays[nounCase][m.day()];
69
    }
70
    function processHoursFunction(str) {
71
        return function () {
72
            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
73
        };
74
    }
75

76
    var uk = moment.defineLocale('uk', {
77
        months: {
78
            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
79
                '_'
80
            ),
81
            standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
82
                '_'
83
            ),
84
        },
85
        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
86
            '_'
87
        ),
88
        weekdays: weekdaysCaseReplace,
89
        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
90
        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
91
        longDateFormat: {
92
            LT: 'HH:mm',
93
            LTS: 'HH:mm:ss',
94
            L: 'DD.MM.YYYY',
95
            LL: 'D MMMM YYYY р.',
96
            LLL: 'D MMMM YYYY р., HH:mm',
97
            LLLL: 'dddd, D MMMM YYYY р., HH:mm',
98
        },
99
        calendar: {
100
            sameDay: processHoursFunction('[Сьогодні '),
101
            nextDay: processHoursFunction('[Завтра '),
102
            lastDay: processHoursFunction('[Вчора '),
103
            nextWeek: processHoursFunction('[У] dddd ['),
104
            lastWeek: function () {
105
                switch (this.day()) {
106
                    case 0:
107
                    case 3:
108
                    case 5:
109
                    case 6:
110
                        return processHoursFunction('[Минулої] dddd [').call(this);
111
                    case 1:
112
                    case 2:
113
                    case 4:
114
                        return processHoursFunction('[Минулого] dddd [').call(this);
115
                }
116
            },
117
            sameElse: 'L',
118
        },
119
        relativeTime: {
120
            future: 'за %s',
121
            past: '%s тому',
122
            s: 'декілька секунд',
123
            ss: relativeTimeWithPlural,
124
            m: relativeTimeWithPlural,
125
            mm: relativeTimeWithPlural,
126
            h: 'годину',
127
            hh: relativeTimeWithPlural,
128
            d: 'день',
129
            dd: relativeTimeWithPlural,
130
            M: 'місяць',
131
            MM: relativeTimeWithPlural,
132
            y: 'рік',
133
            yy: relativeTimeWithPlural,
134
        },
135
        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
136
        meridiemParse: /ночі|ранку|дня|вечора/,
137
        isPM: function (input) {
138
            return /^(дня|вечора)$/.test(input);
139
        },
140
        meridiem: function (hour, minute, isLower) {
141
            if (hour < 4) {
142
                return 'ночі';
143
            } else if (hour < 12) {
144
                return 'ранку';
145
            } else if (hour < 17) {
146
                return 'дня';
147
            } else {
148
                return 'вечора';
149
            }
150
        },
151
        dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
152
        ordinal: function (number, period) {
153
            switch (period) {
154
                case 'M':
155
                case 'd':
156
                case 'DDD':
157
                case 'w':
158
                case 'W':
159
                    return number + '-й';
160
                case 'D':
161
                    return number + '-го';
162
                default:
163
                    return number;
164
            }
165
        },
166
        week: {
167
            dow: 1, // Monday is the first day of the week.
168
            doy: 7, // The week that contains Jan 7th is the first week of the year.
169
        },
170
    });
171

172
    return uk;
173

174
})));
175

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.