Skip to content

Commit c19aed9

Browse files
authored
update dayjs locale mapping (#382)
1 parent 7a06d66 commit c19aed9

File tree

1 file changed

+75
-28
lines changed

1 file changed

+75
-28
lines changed

src/generate/dayjs.ts

Lines changed: 75 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,70 @@ dayjs.extend((o, c) => {
2828

2929
type IlocaleMapObject = Record<string, string>;
3030
const localeMap: IlocaleMapObject = {
31+
// ar_EG:
32+
// az_AZ:
33+
// bg_BG:
34+
bn_BD: 'bn-bd',
35+
by_BY: 'be',
36+
// ca_ES:
37+
// cs_CZ:
38+
// da_DK:
39+
// de_DE:
40+
// el_GR:
3141
en_GB: 'en-gb',
3242
en_US: 'en',
43+
// es_ES:
44+
// et_EE:
45+
// fa_IR:
46+
// fi_FI:
47+
fr_BE: 'fr', // todo: dayjs has no fr_BE locale, use fr at present
48+
fr_CA: 'fr-ca',
49+
// fr_FR:
50+
// ga_IE:
51+
// gl_ES:
52+
// he_IL:
53+
// hi_IN:
54+
// hr_HR:
55+
// hu_HU:
56+
hy_AM: 'hy-am',
57+
// id_ID:
58+
// is_IS:
59+
// it_IT:
60+
// ja_JP:
61+
// ka_GE:
62+
// kk_KZ:
63+
// km_KH:
64+
kmr_IQ: 'ku',
65+
// kn_IN:
66+
// ko_KR:
67+
// ku_IQ: // previous ku in antd
68+
// lt_LT:
69+
// lv_LV:
70+
// mk_MK:
71+
// ml_IN:
72+
// mn_MN:
73+
// ms_MY:
74+
// nb_NO:
75+
// ne_NP:
76+
nl_BE: 'nl-be',
77+
// nl_NL:
78+
// pl_PL:
79+
pt_BR: 'pt-br',
80+
// pt_PT:
81+
// ro_RO:
82+
// ru_RU:
83+
// sk_SK:
84+
// sl_SI:
85+
// sr_RS:
86+
// sv_SE:
87+
// ta_IN:
88+
// th_TH:
89+
// tr_TR:
90+
// uk_UA:
91+
// ur_PK:
92+
// vi_VN:
3393
zh_CN: 'zh-cn',
94+
zh_HK: 'zh-hk',
3495
zh_TW: 'zh-tw',
3596
};
3697

@@ -47,18 +108,18 @@ const parseNoMatchNotice = () => {
47108
const generateConfig: GenerateConfig<Dayjs> = {
48109
// get
49110
getNow: () => dayjs(),
50-
getFixedDate: string => dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']),
51-
getEndDate: date => date.endOf('month'),
52-
getWeekDay: date => {
111+
getFixedDate: (string) => dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']),
112+
getEndDate: (date) => date.endOf('month'),
113+
getWeekDay: (date) => {
53114
const clone = date.locale('en');
54115
return clone.weekday() + clone.localeData().firstDayOfWeek();
55116
},
56-
getYear: date => date.year(),
57-
getMonth: date => date.month(),
58-
getDate: date => date.date(),
59-
getHour: date => date.hour(),
60-
getMinute: date => date.minute(),
61-
getSecond: date => date.second(),
117+
getYear: (date) => date.year(),
118+
getMonth: (date) => date.month(),
119+
getDate: (date) => date.date(),
120+
getHour: (date) => date.hour(),
121+
getMinute: (date) => date.minute(),
122+
getSecond: (date) => date.second(),
62123

63124
// set
64125
addYear: (date, diff) => date.add(diff, 'year'),
@@ -73,26 +134,14 @@ const generateConfig: GenerateConfig<Dayjs> = {
73134

74135
// Compare
75136
isAfter: (date1, date2) => date1.isAfter(date2),
76-
isValidate: date => date.isValid(),
137+
isValidate: (date) => date.isValid(),
77138

78139
locale: {
79-
getWeekFirstDay: locale =>
80-
dayjs()
81-
.locale(parseLocale(locale))
82-
.localeData()
83-
.firstDayOfWeek(),
140+
getWeekFirstDay: (locale) => dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek(),
84141
getWeekFirstDate: (locale, date) => date.locale(parseLocale(locale)).weekday(0),
85142
getWeek: (locale, date) => date.locale(parseLocale(locale)).week(),
86-
getShortWeekDays: locale =>
87-
dayjs()
88-
.locale(parseLocale(locale))
89-
.localeData()
90-
.weekdaysMin(),
91-
getShortMonths: locale =>
92-
dayjs()
93-
.locale(parseLocale(locale))
94-
.localeData()
95-
.monthsShort(),
143+
getShortWeekDays: (locale) => dayjs().locale(parseLocale(locale)).localeData().weekdaysMin(),
144+
getShortMonths: (locale) => dayjs().locale(parseLocale(locale)).localeData().monthsShort(),
96145
format: (locale, date, format) => date.locale(parseLocale(locale)).format(format),
97146
parse: (locale, text, formats) => {
98147
const localeStr = parseLocale(locale);
@@ -103,9 +152,7 @@ const generateConfig: GenerateConfig<Dayjs> = {
103152
// parse Wo
104153
const year = formatText.split('-')[0];
105154
const weekStr = formatText.split('-')[1];
106-
const firstWeek = dayjs(year, 'YYYY')
107-
.startOf('year')
108-
.locale(localeStr);
155+
const firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);
109156
for (let j = 0; j <= 52; j += 1) {
110157
const nextWeek = firstWeek.add(j, 'week');
111158
if (nextWeek.format('Wo') === weekStr) {

0 commit comments

Comments
 (0)