PageSourceSearch

https://panor.ru/js/moment/locale/ru.js

js panor.ru collected 2026-09-25 02:31:38 UTC 9,449 bytes, 219 lines download raw bytes

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

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.