Skip to content

Commit 69d4564

Browse files
authored
Merge pull request #2 from devforth/add-dayjs-translation
fix: add translation of date strings
2 parents f6fd4e7 + 445731b commit 69d4564

File tree

3 files changed

+246
-0
lines changed

3 files changed

+246
-0
lines changed

custom/datepickerLocales.ts

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
export default {
2+
"ar": import('/node_modules/flowbite-datepicker/js/i18n/locales/ar.js'),
3+
"ar-tn": import('/node_modules/flowbite-datepicker/js/i18n/locales/ar-tn.js'),
4+
"az": import('/node_modules/flowbite-datepicker/js/i18n/locales/az.js'),
5+
"bg": import('/node_modules/flowbite-datepicker/js/i18n/locales/bg.js'),
6+
"bm": import('/node_modules/flowbite-datepicker/js/i18n/locales/bm.js'),
7+
"bn": import('/node_modules/flowbite-datepicker/js/i18n/locales/bn.js'),
8+
"br": import('/node_modules/flowbite-datepicker/js/i18n/locales/br.js'),
9+
"bs": import('/node_modules/flowbite-datepicker/js/i18n/locales/bs.js'),
10+
"ca": import('/node_modules/flowbite-datepicker/js/i18n/locales/ca.js'),
11+
"cs": import('/node_modules/flowbite-datepicker/js/i18n/locales/cs.js'),
12+
"cy": import('/node_modules/flowbite-datepicker/js/i18n/locales/cy.js'),
13+
"da": import('/node_modules/flowbite-datepicker/js/i18n/locales/da.js'),
14+
"de": import('/node_modules/flowbite-datepicker/js/i18n/locales/de.js'),
15+
"el": import('/node_modules/flowbite-datepicker/js/i18n/locales/el.js'),
16+
"en-AU": import('/node_modules/flowbite-datepicker/js/i18n/locales/en-AU.js'),
17+
"en-CA": import('/node_modules/flowbite-datepicker/js/i18n/locales/en-CA.js'),
18+
"en-GB": import('/node_modules/flowbite-datepicker/js/i18n/locales/en-GB.js'),
19+
"en-IE": import('/node_modules/flowbite-datepicker/js/i18n/locales/en-IE.js'),
20+
"en-NZ": import('/node_modules/flowbite-datepicker/js/i18n/locales/en-NZ.js'),
21+
"en-ZA": import('/node_modules/flowbite-datepicker/js/i18n/locales/en-ZA.js'),
22+
"eo": import('/node_modules/flowbite-datepicker/js/i18n/locales/eo.js'),
23+
"es": import('/node_modules/flowbite-datepicker/js/i18n/locales/es.js'),
24+
"et": import('/node_modules/flowbite-datepicker/js/i18n/locales/et.js'),
25+
"eu": import('/node_modules/flowbite-datepicker/js/i18n/locales/eu.js'),
26+
"fa": import('/node_modules/flowbite-datepicker/js/i18n/locales/fa.js'),
27+
"fi": import('/node_modules/flowbite-datepicker/js/i18n/locales/fi.js'),
28+
"fo": import('/node_modules/flowbite-datepicker/js/i18n/locales/fo.js'),
29+
"fr-CH": import('/node_modules/flowbite-datepicker/js/i18n/locales/fr-CH.js'),
30+
"fr": import('/node_modules/flowbite-datepicker/js/i18n/locales/fr.js'),
31+
"gl": import('/node_modules/flowbite-datepicker/js/i18n/locales/gl.js'),
32+
"he": import('/node_modules/flowbite-datepicker/js/i18n/locales/he.js'),
33+
"hi": import('/node_modules/flowbite-datepicker/js/i18n/locales/hi.js'),
34+
"hr": import('/node_modules/flowbite-datepicker/js/i18n/locales/hr.js'),
35+
"hu": import('/node_modules/flowbite-datepicker/js/i18n/locales/hu.js'),
36+
"hy": import('/node_modules/flowbite-datepicker/js/i18n/locales/hy.js'),
37+
"id": import('/node_modules/flowbite-datepicker/js/i18n/locales/id.js'),
38+
"is": import('/node_modules/flowbite-datepicker/js/i18n/locales/is.js'),
39+
"it-CH": import('/node_modules/flowbite-datepicker/js/i18n/locales/it-CH.js'),
40+
"it": import('/node_modules/flowbite-datepicker/js/i18n/locales/it.js'),
41+
"ja": import('/node_modules/flowbite-datepicker/js/i18n/locales/ja.js'),
42+
"ka": import('/node_modules/flowbite-datepicker/js/i18n/locales/ka.js'),
43+
"kk": import('/node_modules/flowbite-datepicker/js/i18n/locales/kk.js'),
44+
"km": import('/node_modules/flowbite-datepicker/js/i18n/locales/km.js'),
45+
"ko": import('/node_modules/flowbite-datepicker/js/i18n/locales/ko.js'),
46+
"lt": import('/node_modules/flowbite-datepicker/js/i18n/locales/lt.js'),
47+
"lv": import('/node_modules/flowbite-datepicker/js/i18n/locales/lv.js'),
48+
"me": import('/node_modules/flowbite-datepicker/js/i18n/locales/me.js'),
49+
"mk": import('/node_modules/flowbite-datepicker/js/i18n/locales/mk.js'),
50+
"mn": import('/node_modules/flowbite-datepicker/js/i18n/locales/mn.js'),
51+
"mr": import('/node_modules/flowbite-datepicker/js/i18n/locales/mr.js'),
52+
"ms": import('/node_modules/flowbite-datepicker/js/i18n/locales/ms.js'),
53+
"nl-BE": import('/node_modules/flowbite-datepicker/js/i18n/locales/nl-BE.js'),
54+
"nl": import('/node_modules/flowbite-datepicker/js/i18n/locales/nl.js'),
55+
"no": import('/node_modules/flowbite-datepicker/js/i18n/locales/no.js'),
56+
"oc": import('/node_modules/flowbite-datepicker/js/i18n/locales/oc.js'),
57+
"pl": import('/node_modules/flowbite-datepicker/js/i18n/locales/pl.js'),
58+
"pt-BR": import('/node_modules/flowbite-datepicker/js/i18n/locales/pt-BR.js'),
59+
"pt": import('/node_modules/flowbite-datepicker/js/i18n/locales/pt.js'),
60+
"ro": import('/node_modules/flowbite-datepicker/js/i18n/locales/ro.js'),
61+
"ru": import('/node_modules/flowbite-datepicker/js/i18n/locales/ru.js'),
62+
"si": import('/node_modules/flowbite-datepicker/js/i18n/locales/si.js'),
63+
"sk": import('/node_modules/flowbite-datepicker/js/i18n/locales/sk.js'),
64+
"sl": import('/node_modules/flowbite-datepicker/js/i18n/locales/sl.js'),
65+
"sq": import('/node_modules/flowbite-datepicker/js/i18n/locales/sq.js'),
66+
"sr": import('/node_modules/flowbite-datepicker/js/i18n/locales/sr.js'),
67+
"sr-latn": import('/node_modules/flowbite-datepicker/js/i18n/locales/sr-latn.js'),
68+
"sv": import('/node_modules/flowbite-datepicker/js/i18n/locales/sv.js'),
69+
"sw": import('/node_modules/flowbite-datepicker/js/i18n/locales/sw.js'),
70+
"ta": import('/node_modules/flowbite-datepicker/js/i18n/locales/ta.js'),
71+
"tg": import('/node_modules/flowbite-datepicker/js/i18n/locales/tg.js'),
72+
"th": import('/node_modules/flowbite-datepicker/js/i18n/locales/th.js'),
73+
"tk": import('/node_modules/flowbite-datepicker/js/i18n/locales/tk.js'),
74+
"tr": import('/node_modules/flowbite-datepicker/js/i18n/locales/tr.js'),
75+
"uk": import('/node_modules/flowbite-datepicker/js/i18n/locales/uk.js'),
76+
"uz-cyrl": import('/node_modules/flowbite-datepicker/js/i18n/locales/uz-cyrl.js'),
77+
"uz-latn": import('/node_modules/flowbite-datepicker/js/i18n/locales/uz-latn.js'),
78+
"vi": import('/node_modules/flowbite-datepicker/js/i18n/locales/vi.js'),
79+
"zh-CN": import('/node_modules/flowbite-datepicker/js/i18n/locales/zh-CN.js'),
80+
"zh-TW": import('/node_modules/flowbite-datepicker/js/i18n/locales/zh-TW.js'),
81+
};

custom/dayjsLocales.ts

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
export default {
2+
"af": import('dayjs/locale/af'),
3+
"am": import('dayjs/locale/am'),
4+
"ar-dz": import('dayjs/locale/ar-dz'),
5+
"ar-iq": import('dayjs/locale/ar-iq'),
6+
"ar-kw": import('dayjs/locale/ar-kw'),
7+
"ar-ly": import('dayjs/locale/ar-ly'),
8+
"ar-ma": import('dayjs/locale/ar-ma'),
9+
"ar-sa": import('dayjs/locale/ar-sa'),
10+
"ar-tn": import('dayjs/locale/ar-tn'),
11+
"ar": import('dayjs/locale/ar'),
12+
"az": import('dayjs/locale/az'),
13+
"be": import('dayjs/locale/be'),
14+
"bg": import('dayjs/locale/bg'),
15+
"bi": import('dayjs/locale/bi'),
16+
"bm": import('dayjs/locale/bm'),
17+
"bn-bd": import('dayjs/locale/bn-bd'),
18+
"bn": import('dayjs/locale/bn'),
19+
"bo": import('dayjs/locale/bo'),
20+
"br": import('dayjs/locale/br'),
21+
"bs": import('dayjs/locale/bs'),
22+
"ca": import('dayjs/locale/ca'),
23+
"cs": import('dayjs/locale/cs'),
24+
"cv": import('dayjs/locale/cv'),
25+
"cy": import('dayjs/locale/cy'),
26+
"da": import('dayjs/locale/da'),
27+
"de-at": import('dayjs/locale/de-at'),
28+
"de-ch": import('dayjs/locale/de-ch'),
29+
"de": import('dayjs/locale/de'),
30+
"dv": import('dayjs/locale/dv'),
31+
"el": import('dayjs/locale/el'),
32+
"en-au": import('dayjs/locale/en-au'),
33+
"en-ca": import('dayjs/locale/en-ca'),
34+
"en-gb": import('dayjs/locale/en-gb'),
35+
"en-ie": import('dayjs/locale/en-ie'),
36+
"en-il": import('dayjs/locale/en-il'),
37+
"en-in": import('dayjs/locale/en-in'),
38+
"en-nz": import('dayjs/locale/en-nz'),
39+
"en-sg": import('dayjs/locale/en-sg'),
40+
"en-tt": import('dayjs/locale/en-tt'),
41+
"en": import('dayjs/locale/en'),
42+
"eo": import('dayjs/locale/eo'),
43+
"es-do": import('dayjs/locale/es-do'),
44+
"es-mx": import('dayjs/locale/es-mx'),
45+
"es-pr": import('dayjs/locale/es-pr'),
46+
"es-us": import('dayjs/locale/es-us'),
47+
"es": import('dayjs/locale/es'),
48+
"et": import('dayjs/locale/et'),
49+
"eu": import('dayjs/locale/eu'),
50+
"fa": import('dayjs/locale/fa'),
51+
"fi": import('dayjs/locale/fi'),
52+
"fo": import('dayjs/locale/fo'),
53+
"fr-ca": import('dayjs/locale/fr-ca'),
54+
"fr-ch": import('dayjs/locale/fr-ch'),
55+
"fr": import('dayjs/locale/fr'),
56+
"fy": import('dayjs/locale/fy'),
57+
"ga": import('dayjs/locale/ga'),
58+
"gd": import('dayjs/locale/gd'),
59+
"gl": import('dayjs/locale/gl'),
60+
"gom-latn": import('dayjs/locale/gom-latn'),
61+
"gu": import('dayjs/locale/gu'),
62+
"he": import('dayjs/locale/he'),
63+
"hi": import('dayjs/locale/hi'),
64+
"hr": import('dayjs/locale/hr'),
65+
"ht": import('dayjs/locale/ht'),
66+
"hu": import('dayjs/locale/hu'),
67+
"hy-am": import('dayjs/locale/hy-am'),
68+
"id": import('dayjs/locale/id'),
69+
"is": import('dayjs/locale/is'),
70+
"it-ch": import('dayjs/locale/it-ch'),
71+
"it": import('dayjs/locale/it'),
72+
"ja": import('dayjs/locale/ja'),
73+
"jv": import('dayjs/locale/jv'),
74+
"ka": import('dayjs/locale/ka'),
75+
"kk": import('dayjs/locale/kk'),
76+
"km": import('dayjs/locale/km'),
77+
"kn": import('dayjs/locale/kn'),
78+
"ko": import('dayjs/locale/ko'),
79+
"ku": import('dayjs/locale/ku'),
80+
"ky": import('dayjs/locale/ky'),
81+
"lb": import('dayjs/locale/lb'),
82+
"lo": import('dayjs/locale/lo'),
83+
"lt": import('dayjs/locale/lt'),
84+
"lv": import('dayjs/locale/lv'),
85+
"me": import('dayjs/locale/me'),
86+
"mi": import('dayjs/locale/mi'),
87+
"mk": import('dayjs/locale/mk'),
88+
"ml": import('dayjs/locale/ml'),
89+
"mn": import('dayjs/locale/mn'),
90+
"mr": import('dayjs/locale/mr'),
91+
"ms-my": import('dayjs/locale/ms-my'),
92+
"ms": import('dayjs/locale/ms'),
93+
"mt": import('dayjs/locale/mt'),
94+
"my": import('dayjs/locale/my'),
95+
"nb": import('dayjs/locale/nb'),
96+
"ne": import('dayjs/locale/ne'),
97+
"nl-be": import('dayjs/locale/nl-be'),
98+
"nl": import('dayjs/locale/nl'),
99+
"nn": import('dayjs/locale/nn'),
100+
"oc-lnc": import('dayjs/locale/oc-lnc'),
101+
"pa-in": import('dayjs/locale/pa-in'),
102+
"pl": import('dayjs/locale/pl'),
103+
"pt-br": import('dayjs/locale/pt-br'),
104+
"pt": import('dayjs/locale/pt'),
105+
"rn": import('dayjs/locale/rn'),
106+
"ro": import('dayjs/locale/ro'),
107+
"ru": import('dayjs/locale/ru'),
108+
"rw": import('dayjs/locale/rw'),
109+
"sd": import('dayjs/locale/sd'),
110+
"se": import('dayjs/locale/se'),
111+
"si": import('dayjs/locale/si'),
112+
"sk": import('dayjs/locale/sk'),
113+
"sl": import('dayjs/locale/sl'),
114+
"sq": import('dayjs/locale/sq'),
115+
"sr-cyrl": import('dayjs/locale/sr-cyrl'),
116+
"sr": import('dayjs/locale/sr'),
117+
"ss": import('dayjs/locale/ss'),
118+
"sv-fi": import('dayjs/locale/sv-fi'),
119+
"sv": import('dayjs/locale/sv'),
120+
"sw": import('dayjs/locale/sw'),
121+
"ta": import('dayjs/locale/ta'),
122+
"te": import('dayjs/locale/te'),
123+
"tet": import('dayjs/locale/tet'),
124+
"tg": import('dayjs/locale/tg'),
125+
"th": import('dayjs/locale/th'),
126+
"tk": import('dayjs/locale/tk'),
127+
"tl-ph": import('dayjs/locale/tl-ph'),
128+
"tlh": import('dayjs/locale/tlh'),
129+
"tr": import('dayjs/locale/tr'),
130+
"tzl": import('dayjs/locale/tzl'),
131+
"tzm-latn": import('dayjs/locale/tzm-latn'),
132+
"tzm": import('dayjs/locale/tzm'),
133+
"ug-cn": import('dayjs/locale/ug-cn'),
134+
"uk": import('dayjs/locale/uk'),
135+
"ur": import('dayjs/locale/ur'),
136+
"uz-latn": import('dayjs/locale/uz-latn'),
137+
"uz": import('dayjs/locale/uz'),
138+
"vi": import('dayjs/locale/vi'),
139+
"x-pseudo": import('dayjs/locale/x-pseudo'),
140+
"yo": import('dayjs/locale/yo'),
141+
"zh-cn": import('dayjs/locale/zh-cn'),
142+
"zh-hk": import('dayjs/locale/zh-hk'),
143+
"zh-tw": import('dayjs/locale/zh-tw'),
144+
"zh": import('dayjs/locale/zh'),
145+
};

custom/langCommon.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11

22
import { callAdminForthApi } from '@/utils';
3+
import dayjsLocales from './dayjsLocales';
4+
import datepickerLocales from './datepickerLocales';
5+
import dayjs from 'dayjs';
6+
import Datepicker from "flowbite-datepicker/Datepicker";
37

48

59
const messagesCache: Record<
@@ -33,6 +37,22 @@ export async function setLang({ setLocaleMessage, locale }: any, pluginInstanceI
3337
messages: messages
3438
};
3539
}
40+
41+
// set dayjs locale
42+
try {
43+
await dayjsLocales[langIso];
44+
dayjs.locale(langIso);
45+
} catch {
46+
dayjs.locale('en');
47+
}
48+
49+
// set datepicker locale
50+
if (datepickerLocales[langIso]) {
51+
Datepicker.locales[langIso] = (await datepickerLocales[langIso]).default[langIso];
52+
} else if (Object.keys(datepickerLocales).some((l) => l.startsWith(`${langIso}-`)) && langIso !== 'en') {
53+
const lang = Object.keys(datepickerLocales).find((l) => l.startsWith(`${langIso}-`));
54+
Datepicker.locales[langIso] = (await datepickerLocales[lang]).default[lang];
55+
}
3656

3757
// set locale and locale message
3858
setLocaleMessage(langIso, messagesCache[langIso].messages);

0 commit comments

Comments
 (0)