1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | import moment from '../moment';
|
8 |
|
9 | function plural(word, num) {
|
10 | var forms = word.split('_');
|
11 | return num % 10 === 1 && num % 100 !== 11
|
12 | ? forms[0]
|
13 | : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
|
14 | ? forms[1]
|
15 | : forms[2];
|
16 | }
|
17 | function relativeTimeWithPlural(number, withoutSuffix, key) {
|
18 | var format = {
|
19 | ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
|
20 | mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
|
21 | hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
|
22 | dd: 'дзень_дні_дзён',
|
23 | MM: 'месяц_месяцы_месяцаў',
|
24 | yy: 'год_гады_гадоў',
|
25 | };
|
26 | if (key === 'm') {
|
27 | return withoutSuffix ? 'хвіліна' : 'хвіліну';
|
28 | } else if (key === 'h') {
|
29 | return withoutSuffix ? 'гадзіна' : 'гадзіну';
|
30 | } else {
|
31 | return number + ' ' + plural(format[key], +number);
|
32 | }
|
33 | }
|
34 |
|
35 | export default moment.defineLocale('be', {
|
36 | months: {
|
37 | format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
|
38 | '_'
|
39 | ),
|
40 | standalone:
|
41 | 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
|
42 | '_'
|
43 | ),
|
44 | },
|
45 | monthsShort:
|
46 | 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
|
47 | weekdays: {
|
48 | format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
|
49 | '_'
|
50 | ),
|
51 | standalone:
|
52 | 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
|
53 | '_'
|
54 | ),
|
55 | isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
|
56 | },
|
57 | weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
|
58 | weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
|
59 | longDateFormat: {
|
60 | LT: 'HH:mm',
|
61 | LTS: 'HH:mm:ss',
|
62 | L: 'DD.MM.YYYY',
|
63 | LL: 'D MMMM YYYY г.',
|
64 | LLL: 'D MMMM YYYY г., HH:mm',
|
65 | LLLL: 'dddd, D MMMM YYYY г., HH:mm',
|
66 | },
|
67 | calendar: {
|
68 | sameDay: '[Сёння ў] LT',
|
69 | nextDay: '[Заўтра ў] LT',
|
70 | lastDay: '[Учора ў] LT',
|
71 | nextWeek: function () {
|
72 | return '[У] dddd [ў] LT';
|
73 | },
|
74 | lastWeek: function () {
|
75 | switch (this.day()) {
|
76 | case 0:
|
77 | case 3:
|
78 | case 5:
|
79 | case 6:
|
80 | return '[У мінулую] dddd [ў] LT';
|
81 | case 1:
|
82 | case 2:
|
83 | case 4:
|
84 | return '[У мінулы] dddd [ў] LT';
|
85 | }
|
86 | },
|
87 | sameElse: 'L',
|
88 | },
|
89 | relativeTime: {
|
90 | future: 'праз %s',
|
91 | past: '%s таму',
|
92 | s: 'некалькі секунд',
|
93 | m: relativeTimeWithPlural,
|
94 | mm: relativeTimeWithPlural,
|
95 | h: relativeTimeWithPlural,
|
96 | hh: relativeTimeWithPlural,
|
97 | d: 'дзень',
|
98 | dd: relativeTimeWithPlural,
|
99 | M: 'месяц',
|
100 | MM: relativeTimeWithPlural,
|
101 | y: 'год',
|
102 | yy: relativeTimeWithPlural,
|
103 | },
|
104 | meridiemParse: /ночы|раніцы|дня|вечара/,
|
105 | isPM: function (input) {
|
106 | return /^(дня|вечара)$/.test(input);
|
107 | },
|
108 | meridiem: function (hour, minute, isLower) {
|
109 | if (hour < 4) {
|
110 | return 'ночы';
|
111 | } else if (hour < 12) {
|
112 | return 'раніцы';
|
113 | } else if (hour < 17) {
|
114 | return 'дня';
|
115 | } else {
|
116 | return 'вечара';
|
117 | }
|
118 | },
|
119 | dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
|
120 | ordinal: function (number, period) {
|
121 | switch (period) {
|
122 | case 'M':
|
123 | case 'd':
|
124 | case 'DDD':
|
125 | case 'w':
|
126 | case 'W':
|
127 | return (number % 10 === 2 || number % 10 === 3) &&
|
128 | number % 100 !== 12 &&
|
129 | number % 100 !== 13
|
130 | ? number + '-і'
|
131 | : number + '-ы';
|
132 | case 'D':
|
133 | return number + '-га';
|
134 | default:
|
135 | return number;
|
136 | }
|
137 | },
|
138 | week: {
|
139 | dow: 1,
|
140 | doy: 7,
|
141 | },
|
142 | });
|