Skip to content

Commit 1d8746c

Browse files
artsiom-voitasArtsiom Voitas
andauthored
fix: Updated Belarusian locale with relative time (#2656)
* updated Belarusian locale with relative time * minor update * fixed eslint --------- Co-authored-by: Artsiom Voitas <[email protected]>
1 parent 9e9f76c commit 1d8746c

File tree

1 file changed

+80
-7
lines changed

1 file changed

+80
-7
lines changed

src/locale/be.js

Lines changed: 80 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,99 @@
11
// Belarusian [be]
22
import dayjs from 'dayjs'
33

4+
const monthFormat = 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
5+
const monthStandalone = 'студзень_лютый_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
6+
7+
const monthShortFormat = 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж.'.split('_')
8+
const monthShortStandalone = 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_')
9+
10+
const MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/
11+
12+
function plural(word, num) {
13+
const forms = word.split('_')
14+
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]) // eslint-disable-line
15+
}
16+
function relativeTimeWithPlural(number, withoutSuffix, key) {
17+
const format = {
18+
ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
19+
mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
20+
hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
21+
dd: 'дзень_дня_дзён',
22+
MM: 'месяц_месяца_месяцаў',
23+
yy: 'год_гады_гадоў'
24+
}
25+
if (key === 'm') {
26+
return withoutSuffix ? 'хвіліна' : 'хвіліну'
27+
} else if (key === 'h') {
28+
return withoutSuffix ? 'гадзіна' : 'гадзіну'
29+
}
30+
31+
return `${number} ${plural(format[key], +number)}`
32+
}
33+
34+
const months = (dayjsInstance, format) => {
35+
if (MONTHS_IN_FORMAT.test(format)) {
36+
return monthFormat[dayjsInstance.month()]
37+
}
38+
return monthStandalone[dayjsInstance.month()]
39+
}
40+
months.s = monthStandalone
41+
months.f = monthFormat
42+
43+
const monthsShort = (dayjsInstance, format) => {
44+
if (MONTHS_IN_FORMAT.test(format)) {
45+
return monthShortFormat[dayjsInstance.month()]
46+
}
47+
return monthShortStandalone[dayjsInstance.month()]
48+
}
49+
monthsShort.s = monthShortStandalone
50+
monthsShort.f = monthShortFormat
51+
452
const locale = {
553
name: 'be',
6-
weekdays: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
7-
months: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
54+
weekdays: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
55+
weekdaysShort: 'няд_пнд_аўт_сер_чцв_пят_суб'.split('_'),
56+
weekdaysMin: 'нд_пн_аў_ср_чц_пт_сб'.split('_'),
57+
months,
58+
monthsShort,
859
weekStart: 1,
9-
weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
10-
monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
11-
weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
12-
ordinal: n => n,
60+
yearStart: 4,
1361
formats: {
1462
LT: 'HH:mm',
1563
LTS: 'HH:mm:ss',
1664
L: 'DD.MM.YYYY',
1765
LL: 'D MMMM YYYY г.',
1866
LLL: 'D MMMM YYYY г., HH:mm',
1967
LLLL: 'dddd, D MMMM YYYY г., HH:mm'
68+
},
69+
relativeTime: {
70+
future: 'праз %s',
71+
past: '%s таму',
72+
s: 'некалькі секунд',
73+
m: relativeTimeWithPlural,
74+
mm: relativeTimeWithPlural,
75+
h: relativeTimeWithPlural,
76+
hh: relativeTimeWithPlural,
77+
d: 'дзень',
78+
dd: relativeTimeWithPlural,
79+
M: 'месяц',
80+
MM: relativeTimeWithPlural,
81+
y: 'год',
82+
yy: relativeTimeWithPlural
83+
},
84+
ordinal: n => n,
85+
meridiem: (hour) => {
86+
if (hour < 4) {
87+
return 'ночы'
88+
} else if (hour < 12) {
89+
return 'раніцы'
90+
} else if (hour < 17) {
91+
return 'дня'
92+
}
93+
return 'вечара'
2094
}
2195
}
2296

2397
dayjs.locale(locale, null, true)
2498

2599
export default locale
26-

0 commit comments

Comments
 (0)