Release note for Id83eda95
[mediawiki.git] / resources / lib / moment / locale / be.js
blob68a6f37cb790f6d781a58596eabe75b3ec16bf0d
1 // moment.js locale configuration
2 // locale : belarusian (be)
3 // author : Dmitry Demidov : https://github.com/demidov91
4 // author: Praleska: http://praleska.pro/
5 // Author : Menelion Elensúle : https://github.com/Oire
7 (function (factory) {
8     if (typeof define === 'function' && define.amd) {
9         define(['moment'], factory); // AMD
10     } else if (typeof exports === 'object') {
11         module.exports = factory(require('../moment')); // Node
12     } else {
13         factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
14     }
15 }(function (moment) {
16     function plural(word, num) {
17         var forms = word.split('_');
18         return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
19     }
21     function relativeTimeWithPlural(number, withoutSuffix, key) {
22         var format = {
23             'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
24             'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
25             'dd': 'дзень_дні_дзён',
26             'MM': 'месяц_месяцы_месяцаў',
27             'yy': 'год_гады_гадоў'
28         };
29         if (key === 'm') {
30             return withoutSuffix ? 'хвіліна' : 'хвіліну';
31         }
32         else if (key === 'h') {
33             return withoutSuffix ? 'гадзіна' : 'гадзіну';
34         }
35         else {
36             return number + ' ' + plural(format[key], +number);
37         }
38     }
40     function monthsCaseReplace(m, format) {
41         var months = {
42             'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
43             'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
44         },
46         nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
47             'accusative' :
48             'nominative';
50         return months[nounCase][m.month()];
51     }
53     function weekdaysCaseReplace(m, format) {
54         var weekdays = {
55             'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
56             'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_')
57         },
59         nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ?
60             'accusative' :
61             'nominative';
63         return weekdays[nounCase][m.day()];
64     }
66     return moment.defineLocale('be', {
67         months : monthsCaseReplace,
68         monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
69         weekdays : weekdaysCaseReplace,
70         weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
71         weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
72         longDateFormat : {
73             LT : 'HH:mm',
74             LTS : 'LT:ss',
75             L : 'DD.MM.YYYY',
76             LL : 'D MMMM YYYY г.',
77             LLL : 'D MMMM YYYY г., LT',
78             LLLL : 'dddd, D MMMM YYYY г., LT'
79         },
80         calendar : {
81             sameDay: '[Сёння ў] LT',
82             nextDay: '[Заўтра ў] LT',
83             lastDay: '[Учора ў] LT',
84             nextWeek: function () {
85                 return '[У] dddd [ў] LT';
86             },
87             lastWeek: function () {
88                 switch (this.day()) {
89                 case 0:
90                 case 3:
91                 case 5:
92                 case 6:
93                     return '[У мінулую] dddd [ў] LT';
94                 case 1:
95                 case 2:
96                 case 4:
97                     return '[У мінулы] dddd [ў] LT';
98                 }
99             },
100             sameElse: 'L'
101         },
102         relativeTime : {
103             future : 'праз %s',
104             past : '%s таму',
105             s : 'некалькі секунд',
106             m : relativeTimeWithPlural,
107             mm : relativeTimeWithPlural,
108             h : relativeTimeWithPlural,
109             hh : relativeTimeWithPlural,
110             d : 'дзень',
111             dd : relativeTimeWithPlural,
112             M : 'месяц',
113             MM : relativeTimeWithPlural,
114             y : 'год',
115             yy : relativeTimeWithPlural
116         },
119         meridiem : function (hour, minute, isLower) {
120             if (hour < 4) {
121                 return 'ночы';
122             } else if (hour < 12) {
123                 return 'раніцы';
124             } else if (hour < 17) {
125                 return 'дня';
126             } else {
127                 return 'вечара';
128             }
129         },
131         ordinalParse: /\d{1,2}-(і|ы|га)/,
132         ordinal: function (number, period) {
133             switch (period) {
134             case 'M':
135             case 'd':
136             case 'DDD':
137             case 'w':
138             case 'W':
139                 return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
140             case 'D':
141                 return number + '-га';
142             default:
143                 return number;
144             }
145         },
147         week : {
148             dow : 1, // Monday is the first day of the week.
149             doy : 7  // The week that contains Jan 1st is the first week of the year.
150         }
151     });
152 }));