Handle unsupported dayjs locales
DayJs doesn't support all the locales returned by "navigator.language"
This commit is contained in:
@@ -18,6 +18,9 @@
|
|||||||
"gql:codegen-formatter": "ts-node -T tools/scripts/codegenFormatter.ts",
|
"gql:codegen-formatter": "ts-node -T tools/scripts/codegenFormatter.ts",
|
||||||
"gql:codegen": "yarn gql:codegen-base & yarn gql:codegen-formatter",
|
"gql:codegen": "yarn gql:codegen-base & yarn gql:codegen-formatter",
|
||||||
"i18n:gen-resources": "ts-node -T tools/scripts/generatei18nResources.ts",
|
"i18n:gen-resources": "ts-node -T tools/scripts/generatei18nResources.ts",
|
||||||
|
"dayjs:gen-locales-array": "ts-node -T tools/scripts/generateDayJsLocales.ts",
|
||||||
|
"dayjs:gen-locales-import": "ts-node -T tools/scripts/generateDayJsLocalesImport.ts",
|
||||||
|
"dayjs:gen-locales": "yarn dayjs:gen-locales-array && yarn dayjs:gen-locales-import",
|
||||||
"prepare": "husky"
|
"prepare": "husky"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ export const DateSetting = ({
|
|||||||
<Dialog open={isDialogOpen} onClose={closeDialog}>
|
<Dialog open={isDialogOpen} onClose={closeDialog}>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogTitle sx={{ paddingLeft: 0 }}>{settingName}</DialogTitle>
|
<DialogTitle sx={{ paddingLeft: 0 }}>{settingName}</DialogTitle>
|
||||||
<LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={navigator.language}>
|
<LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={dayjs.locale()}>
|
||||||
<DatePicker
|
<DatePicker
|
||||||
value={dialogValue ? dayjs(Number(dialogValue)) : null}
|
value={dialogValue ? dayjs(Number(dialogValue)) : null}
|
||||||
onChange={(date) => {
|
onChange={(date) => {
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ export const TimeSetting = ({
|
|||||||
<Dialog open={isDialogOpen} onClose={closeDialog}>
|
<Dialog open={isDialogOpen} onClose={closeDialog}>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogTitle sx={{ paddingLeft: 0 }}>{settingName}</DialogTitle>
|
<DialogTitle sx={{ paddingLeft: 0 }}>{settingName}</DialogTitle>
|
||||||
<LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={navigator.language}>
|
<LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={dayjs.locale()}>
|
||||||
<TimePicker
|
<TimePicker
|
||||||
value={dayjs(dialogValue, 'HH:mm')}
|
value={dayjs(dialogValue, 'HH:mm')}
|
||||||
defaultValue={dayjs(defaultValue, 'HH:mm')}
|
defaultValue={dayjs(defaultValue, 'HH:mm')}
|
||||||
|
|||||||
190
src/lib/dayjs/LocaleImporter.ts
Normal file
190
src/lib/dayjs/LocaleImporter.ts
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { DAYJS_LOCALES, DayJsLocale } from '@/lib/dayjs/Locales.ts';
|
||||||
|
|
||||||
|
export const getDayJsLocale = (locale: string): DayJsLocale => {
|
||||||
|
if (DAYJS_LOCALES.includes(locale as DayJsLocale)) {
|
||||||
|
return locale as DayJsLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DAYJS_LOCALES.includes(locale.toLowerCase() as DayJsLocale)) {
|
||||||
|
return locale.toLowerCase() as DayJsLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
const convertedLocale = locale.split('-')[0].toLowerCase();
|
||||||
|
if (DAYJS_LOCALES.includes(convertedLocale as DayJsLocale)) {
|
||||||
|
return convertedLocale as DayJsLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'en';
|
||||||
|
};
|
||||||
|
|
||||||
|
export const importDayJsLocale = async (locale: string): Promise<DayJsLocale> => {
|
||||||
|
const dayjsLocale = getDayJsLocale(locale);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||||
|
await localesToImport[dayjsLocale]();
|
||||||
|
} catch (e) {
|
||||||
|
// ignore - dayjs falls back to "en" by default
|
||||||
|
}
|
||||||
|
|
||||||
|
return dayjsLocale;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* **IMPORTANT:**
|
||||||
|
*
|
||||||
|
* This is generated by the `dayjs:gen-locales-imports` script
|
||||||
|
*/
|
||||||
|
const localesToImport: Record<(typeof DAYJS_LOCALES)[number], () => Promise<unknown>> = {
|
||||||
|
af: () => import('dayjs/locale/af.js'),
|
||||||
|
am: () => import('dayjs/locale/am.js'),
|
||||||
|
'ar-dz': () => import('dayjs/locale/ar-dz.js'),
|
||||||
|
'ar-iq': () => import('dayjs/locale/ar-iq.js'),
|
||||||
|
'ar-kw': () => import('dayjs/locale/ar-kw.js'),
|
||||||
|
'ar-ly': () => import('dayjs/locale/ar-ly.js'),
|
||||||
|
'ar-ma': () => import('dayjs/locale/ar-ma.js'),
|
||||||
|
'ar-sa': () => import('dayjs/locale/ar-sa.js'),
|
||||||
|
'ar-tn': () => import('dayjs/locale/ar-tn.js'),
|
||||||
|
ar: () => import('dayjs/locale/ar.js'),
|
||||||
|
az: () => import('dayjs/locale/az.js'),
|
||||||
|
be: () => import('dayjs/locale/be.js'),
|
||||||
|
bg: () => import('dayjs/locale/bg.js'),
|
||||||
|
bi: () => import('dayjs/locale/bi.js'),
|
||||||
|
bm: () => import('dayjs/locale/bm.js'),
|
||||||
|
'bn-bd': () => import('dayjs/locale/bn-bd.js'),
|
||||||
|
bn: () => import('dayjs/locale/bn.js'),
|
||||||
|
bo: () => import('dayjs/locale/bo.js'),
|
||||||
|
br: () => import('dayjs/locale/br.js'),
|
||||||
|
bs: () => import('dayjs/locale/bs.js'),
|
||||||
|
ca: () => import('dayjs/locale/ca.js'),
|
||||||
|
cs: () => import('dayjs/locale/cs.js'),
|
||||||
|
cv: () => import('dayjs/locale/cv.js'),
|
||||||
|
cy: () => import('dayjs/locale/cy.js'),
|
||||||
|
da: () => import('dayjs/locale/da.js'),
|
||||||
|
'de-at': () => import('dayjs/locale/de-at.js'),
|
||||||
|
'de-ch': () => import('dayjs/locale/de-ch.js'),
|
||||||
|
de: () => import('dayjs/locale/de.js'),
|
||||||
|
dv: () => import('dayjs/locale/dv.js'),
|
||||||
|
el: () => import('dayjs/locale/el.js'),
|
||||||
|
'en-au': () => import('dayjs/locale/en-au.js'),
|
||||||
|
'en-ca': () => import('dayjs/locale/en-ca.js'),
|
||||||
|
'en-gb': () => import('dayjs/locale/en-gb.js'),
|
||||||
|
'en-ie': () => import('dayjs/locale/en-ie.js'),
|
||||||
|
'en-il': () => import('dayjs/locale/en-il.js'),
|
||||||
|
'en-in': () => import('dayjs/locale/en-in.js'),
|
||||||
|
'en-nz': () => import('dayjs/locale/en-nz.js'),
|
||||||
|
'en-sg': () => import('dayjs/locale/en-sg.js'),
|
||||||
|
'en-tt': () => import('dayjs/locale/en-tt.js'),
|
||||||
|
en: () => import('dayjs/locale/en.js'),
|
||||||
|
eo: () => import('dayjs/locale/eo.js'),
|
||||||
|
'es-do': () => import('dayjs/locale/es-do.js'),
|
||||||
|
'es-mx': () => import('dayjs/locale/es-mx.js'),
|
||||||
|
'es-pr': () => import('dayjs/locale/es-pr.js'),
|
||||||
|
'es-us': () => import('dayjs/locale/es-us.js'),
|
||||||
|
es: () => import('dayjs/locale/es.js'),
|
||||||
|
et: () => import('dayjs/locale/et.js'),
|
||||||
|
eu: () => import('dayjs/locale/eu.js'),
|
||||||
|
fa: () => import('dayjs/locale/fa.js'),
|
||||||
|
fi: () => import('dayjs/locale/fi.js'),
|
||||||
|
fo: () => import('dayjs/locale/fo.js'),
|
||||||
|
'fr-ca': () => import('dayjs/locale/fr-ca.js'),
|
||||||
|
'fr-ch': () => import('dayjs/locale/fr-ch.js'),
|
||||||
|
fr: () => import('dayjs/locale/fr.js'),
|
||||||
|
fy: () => import('dayjs/locale/fy.js'),
|
||||||
|
ga: () => import('dayjs/locale/ga.js'),
|
||||||
|
gd: () => import('dayjs/locale/gd.js'),
|
||||||
|
gl: () => import('dayjs/locale/gl.js'),
|
||||||
|
'gom-latn': () => import('dayjs/locale/gom-latn.js'),
|
||||||
|
gu: () => import('dayjs/locale/gu.js'),
|
||||||
|
he: () => import('dayjs/locale/he.js'),
|
||||||
|
hi: () => import('dayjs/locale/hi.js'),
|
||||||
|
hr: () => import('dayjs/locale/hr.js'),
|
||||||
|
ht: () => import('dayjs/locale/ht.js'),
|
||||||
|
hu: () => import('dayjs/locale/hu.js'),
|
||||||
|
'hy-am': () => import('dayjs/locale/hy-am.js'),
|
||||||
|
id: () => import('dayjs/locale/id.js'),
|
||||||
|
is: () => import('dayjs/locale/is.js'),
|
||||||
|
'it-ch': () => import('dayjs/locale/it-ch.js'),
|
||||||
|
it: () => import('dayjs/locale/it.js'),
|
||||||
|
ja: () => import('dayjs/locale/ja.js'),
|
||||||
|
jv: () => import('dayjs/locale/jv.js'),
|
||||||
|
ka: () => import('dayjs/locale/ka.js'),
|
||||||
|
kk: () => import('dayjs/locale/kk.js'),
|
||||||
|
km: () => import('dayjs/locale/km.js'),
|
||||||
|
kn: () => import('dayjs/locale/kn.js'),
|
||||||
|
ko: () => import('dayjs/locale/ko.js'),
|
||||||
|
ku: () => import('dayjs/locale/ku.js'),
|
||||||
|
ky: () => import('dayjs/locale/ky.js'),
|
||||||
|
lb: () => import('dayjs/locale/lb.js'),
|
||||||
|
lo: () => import('dayjs/locale/lo.js'),
|
||||||
|
lt: () => import('dayjs/locale/lt.js'),
|
||||||
|
lv: () => import('dayjs/locale/lv.js'),
|
||||||
|
me: () => import('dayjs/locale/me.js'),
|
||||||
|
mi: () => import('dayjs/locale/mi.js'),
|
||||||
|
mk: () => import('dayjs/locale/mk.js'),
|
||||||
|
ml: () => import('dayjs/locale/ml.js'),
|
||||||
|
mn: () => import('dayjs/locale/mn.js'),
|
||||||
|
mr: () => import('dayjs/locale/mr.js'),
|
||||||
|
'ms-my': () => import('dayjs/locale/ms-my.js'),
|
||||||
|
ms: () => import('dayjs/locale/ms.js'),
|
||||||
|
mt: () => import('dayjs/locale/mt.js'),
|
||||||
|
my: () => import('dayjs/locale/my.js'),
|
||||||
|
nb: () => import('dayjs/locale/nb.js'),
|
||||||
|
ne: () => import('dayjs/locale/ne.js'),
|
||||||
|
'nl-be': () => import('dayjs/locale/nl-be.js'),
|
||||||
|
nl: () => import('dayjs/locale/nl.js'),
|
||||||
|
nn: () => import('dayjs/locale/nn.js'),
|
||||||
|
'oc-lnc': () => import('dayjs/locale/oc-lnc.js'),
|
||||||
|
'pa-in': () => import('dayjs/locale/pa-in.js'),
|
||||||
|
pl: () => import('dayjs/locale/pl.js'),
|
||||||
|
'pt-br': () => import('dayjs/locale/pt-br.js'),
|
||||||
|
pt: () => import('dayjs/locale/pt.js'),
|
||||||
|
rn: () => import('dayjs/locale/rn.js'),
|
||||||
|
ro: () => import('dayjs/locale/ro.js'),
|
||||||
|
ru: () => import('dayjs/locale/ru.js'),
|
||||||
|
rw: () => import('dayjs/locale/rw.js'),
|
||||||
|
sd: () => import('dayjs/locale/sd.js'),
|
||||||
|
se: () => import('dayjs/locale/se.js'),
|
||||||
|
si: () => import('dayjs/locale/si.js'),
|
||||||
|
sk: () => import('dayjs/locale/sk.js'),
|
||||||
|
sl: () => import('dayjs/locale/sl.js'),
|
||||||
|
sq: () => import('dayjs/locale/sq.js'),
|
||||||
|
'sr-cyrl': () => import('dayjs/locale/sr-cyrl.js'),
|
||||||
|
sr: () => import('dayjs/locale/sr.js'),
|
||||||
|
ss: () => import('dayjs/locale/ss.js'),
|
||||||
|
'sv-fi': () => import('dayjs/locale/sv-fi.js'),
|
||||||
|
sv: () => import('dayjs/locale/sv.js'),
|
||||||
|
sw: () => import('dayjs/locale/sw.js'),
|
||||||
|
ta: () => import('dayjs/locale/ta.js'),
|
||||||
|
te: () => import('dayjs/locale/te.js'),
|
||||||
|
tet: () => import('dayjs/locale/tet.js'),
|
||||||
|
tg: () => import('dayjs/locale/tg.js'),
|
||||||
|
th: () => import('dayjs/locale/th.js'),
|
||||||
|
tk: () => import('dayjs/locale/tk.js'),
|
||||||
|
'tl-ph': () => import('dayjs/locale/tl-ph.js'),
|
||||||
|
tlh: () => import('dayjs/locale/tlh.js'),
|
||||||
|
tr: () => import('dayjs/locale/tr.js'),
|
||||||
|
tzl: () => import('dayjs/locale/tzl.js'),
|
||||||
|
'tzm-latn': () => import('dayjs/locale/tzm-latn.js'),
|
||||||
|
tzm: () => import('dayjs/locale/tzm.js'),
|
||||||
|
'ug-cn': () => import('dayjs/locale/ug-cn.js'),
|
||||||
|
uk: () => import('dayjs/locale/uk.js'),
|
||||||
|
ur: () => import('dayjs/locale/ur.js'),
|
||||||
|
'uz-latn': () => import('dayjs/locale/uz-latn.js'),
|
||||||
|
uz: () => import('dayjs/locale/uz.js'),
|
||||||
|
vi: () => import('dayjs/locale/vi.js'),
|
||||||
|
'x-pseudo': () => import('dayjs/locale/x-pseudo.js'),
|
||||||
|
yo: () => import('dayjs/locale/yo.js'),
|
||||||
|
'zh-cn': () => import('dayjs/locale/zh-cn.js'),
|
||||||
|
'zh-hk': () => import('dayjs/locale/zh-hk.js'),
|
||||||
|
'zh-tw': () => import('dayjs/locale/zh-tw.js'),
|
||||||
|
zh: () => import('dayjs/locale/zh.js'),
|
||||||
|
};
|
||||||
160
src/lib/dayjs/Locales.ts
Normal file
160
src/lib/dayjs/Locales.ts
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export type DayJsLocale = (typeof DAYJS_LOCALES)[number];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* **IMPORTANT:**
|
||||||
|
*
|
||||||
|
* This is generated by the `dayjs:gen-locales-array` script
|
||||||
|
*/
|
||||||
|
export const DAYJS_LOCALES = [
|
||||||
|
'af',
|
||||||
|
'am',
|
||||||
|
'ar-dz',
|
||||||
|
'ar-iq',
|
||||||
|
'ar-kw',
|
||||||
|
'ar-ly',
|
||||||
|
'ar-ma',
|
||||||
|
'ar-sa',
|
||||||
|
'ar-tn',
|
||||||
|
'ar',
|
||||||
|
'az',
|
||||||
|
'be',
|
||||||
|
'bg',
|
||||||
|
'bi',
|
||||||
|
'bm',
|
||||||
|
'bn-bd',
|
||||||
|
'bn',
|
||||||
|
'bo',
|
||||||
|
'br',
|
||||||
|
'bs',
|
||||||
|
'ca',
|
||||||
|
'cs',
|
||||||
|
'cv',
|
||||||
|
'cy',
|
||||||
|
'da',
|
||||||
|
'de-at',
|
||||||
|
'de-ch',
|
||||||
|
'de',
|
||||||
|
'dv',
|
||||||
|
'el',
|
||||||
|
'en-au',
|
||||||
|
'en-ca',
|
||||||
|
'en-gb',
|
||||||
|
'en-ie',
|
||||||
|
'en-il',
|
||||||
|
'en-in',
|
||||||
|
'en-nz',
|
||||||
|
'en-sg',
|
||||||
|
'en-tt',
|
||||||
|
'en',
|
||||||
|
'eo',
|
||||||
|
'es-do',
|
||||||
|
'es-mx',
|
||||||
|
'es-pr',
|
||||||
|
'es-us',
|
||||||
|
'es',
|
||||||
|
'et',
|
||||||
|
'eu',
|
||||||
|
'fa',
|
||||||
|
'fi',
|
||||||
|
'fo',
|
||||||
|
'fr-ca',
|
||||||
|
'fr-ch',
|
||||||
|
'fr',
|
||||||
|
'fy',
|
||||||
|
'ga',
|
||||||
|
'gd',
|
||||||
|
'gl',
|
||||||
|
'gom-latn',
|
||||||
|
'gu',
|
||||||
|
'he',
|
||||||
|
'hi',
|
||||||
|
'hr',
|
||||||
|
'ht',
|
||||||
|
'hu',
|
||||||
|
'hy-am',
|
||||||
|
'id',
|
||||||
|
'is',
|
||||||
|
'it-ch',
|
||||||
|
'it',
|
||||||
|
'ja',
|
||||||
|
'jv',
|
||||||
|
'ka',
|
||||||
|
'kk',
|
||||||
|
'km',
|
||||||
|
'kn',
|
||||||
|
'ko',
|
||||||
|
'ku',
|
||||||
|
'ky',
|
||||||
|
'lb',
|
||||||
|
'lo',
|
||||||
|
'lt',
|
||||||
|
'lv',
|
||||||
|
'me',
|
||||||
|
'mi',
|
||||||
|
'mk',
|
||||||
|
'ml',
|
||||||
|
'mn',
|
||||||
|
'mr',
|
||||||
|
'ms-my',
|
||||||
|
'ms',
|
||||||
|
'mt',
|
||||||
|
'my',
|
||||||
|
'nb',
|
||||||
|
'ne',
|
||||||
|
'nl-be',
|
||||||
|
'nl',
|
||||||
|
'nn',
|
||||||
|
'oc-lnc',
|
||||||
|
'pa-in',
|
||||||
|
'pl',
|
||||||
|
'pt-br',
|
||||||
|
'pt',
|
||||||
|
'rn',
|
||||||
|
'ro',
|
||||||
|
'ru',
|
||||||
|
'rw',
|
||||||
|
'sd',
|
||||||
|
'se',
|
||||||
|
'si',
|
||||||
|
'sk',
|
||||||
|
'sl',
|
||||||
|
'sq',
|
||||||
|
'sr-cyrl',
|
||||||
|
'sr',
|
||||||
|
'ss',
|
||||||
|
'sv-fi',
|
||||||
|
'sv',
|
||||||
|
'sw',
|
||||||
|
'ta',
|
||||||
|
'te',
|
||||||
|
'tet',
|
||||||
|
'tg',
|
||||||
|
'th',
|
||||||
|
'tk',
|
||||||
|
'tl-ph',
|
||||||
|
'tlh',
|
||||||
|
'tr',
|
||||||
|
'tzl',
|
||||||
|
'tzm-latn',
|
||||||
|
'tzm',
|
||||||
|
'ug-cn',
|
||||||
|
'uk',
|
||||||
|
'ur',
|
||||||
|
'uz-latn',
|
||||||
|
'uz',
|
||||||
|
'vi',
|
||||||
|
'x-pseudo',
|
||||||
|
'yo',
|
||||||
|
'zh-cn',
|
||||||
|
'zh-hk',
|
||||||
|
'zh-tw',
|
||||||
|
'zh',
|
||||||
|
] as const;
|
||||||
@@ -12,12 +12,11 @@ import calendar from 'dayjs/plugin/calendar';
|
|||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
import isToday from 'dayjs/plugin/isToday';
|
import isToday from 'dayjs/plugin/isToday';
|
||||||
import isYesterday from 'dayjs/plugin/isYesterday';
|
import isYesterday from 'dayjs/plugin/isYesterday';
|
||||||
|
import { importDayJsLocale } from '@/lib/dayjs/LocaleImporter.ts';
|
||||||
// import localizedFormat from 'dayjs/plugin/localizedFormat';
|
// import localizedFormat from 'dayjs/plugin/localizedFormat';
|
||||||
// import updateLocale from 'dayjs/plugin/updateLocale';
|
// import updateLocale from 'dayjs/plugin/updateLocale';
|
||||||
// import { t } from 'i18next';
|
// import { t } from 'i18next';
|
||||||
|
|
||||||
import { loadDayJsLocale } from '@/util/language.tsx';
|
|
||||||
|
|
||||||
dayjs.extend(customParseFormat);
|
dayjs.extend(customParseFormat);
|
||||||
dayjs.extend(calendar);
|
dayjs.extend(calendar);
|
||||||
dayjs.extend(relativeTime);
|
dayjs.extend(relativeTime);
|
||||||
@@ -26,8 +25,8 @@ dayjs.extend(isYesterday);
|
|||||||
// dayjs.extend(localizedFormat);
|
// dayjs.extend(localizedFormat);
|
||||||
// dayjs.extend(updateLocale);
|
// dayjs.extend(updateLocale);
|
||||||
|
|
||||||
loadDayJsLocale(navigator.language).then(() => {
|
importDayJsLocale(navigator.language).then((dayjsLocale) => {
|
||||||
dayjs.locale(navigator.language);
|
dayjs.locale(dayjsLocale);
|
||||||
// dayjs.updateLocale(navigator.language, {
|
// dayjs.updateLocale(navigator.language, {
|
||||||
// calendar: {
|
// calendar: {
|
||||||
// lastDay: `[${t('global.date.label.yesterday_at')}] LT`,
|
// lastDay: `[${t('global.date.label.yesterday_at')}] LT`,
|
||||||
|
|||||||
@@ -8,12 +8,9 @@
|
|||||||
|
|
||||||
import { I18nResourceCode } from '@/i18n';
|
import { I18nResourceCode } from '@/i18n';
|
||||||
|
|
||||||
export const loadDefaultDayJsLocale = () => import('dayjs/locale/en.js');
|
|
||||||
|
|
||||||
export type ISOLanguage = {
|
export type ISOLanguage = {
|
||||||
name: string;
|
name: string;
|
||||||
nativeName: string;
|
nativeName: string;
|
||||||
dayjsImport: () => Promise<any>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// full list: https://github.com/meikidd/iso-639-1/blob/master/src/data.js
|
// full list: https://github.com/meikidd/iso-639-1/blob/master/src/data.js
|
||||||
@@ -26,52 +23,42 @@ export const ISOLanguages: { [languageCode in I18nResourceCode]: ISOLanguage } &
|
|||||||
'es-419': {
|
'es-419': {
|
||||||
name: 'Spanish; Castilian',
|
name: 'Spanish; Castilian',
|
||||||
nativeName: 'Español',
|
nativeName: 'Español',
|
||||||
dayjsImport: () => import('dayjs/locale/es.js'),
|
|
||||||
},
|
},
|
||||||
'pt-pt': {
|
'pt-pt': {
|
||||||
name: 'Portuguese',
|
name: 'Portuguese',
|
||||||
nativeName: 'Português (Portugal)',
|
nativeName: 'Português (Portugal)',
|
||||||
dayjsImport: () => import('dayjs/locale/pt.js'),
|
|
||||||
},
|
},
|
||||||
'pt-br': {
|
'pt-br': {
|
||||||
name: 'Portuguese; Brasil',
|
name: 'Portuguese; Brasil',
|
||||||
nativeName: 'Português (Brasil)',
|
nativeName: 'Português (Brasil)',
|
||||||
dayjsImport: () => import('dayjs/locale/pt-br.js'),
|
|
||||||
},
|
},
|
||||||
zh_Hans: {
|
zh_Hans: {
|
||||||
name: 'Chinese (Simplified)',
|
name: 'Chinese (Simplified)',
|
||||||
nativeName: '中文 (HANS)',
|
nativeName: '中文 (HANS)',
|
||||||
dayjsImport: () => import('dayjs/locale/zh-cn.js'),
|
|
||||||
},
|
},
|
||||||
zh_Hant: {
|
zh_Hant: {
|
||||||
name: 'Chinese (Traditional)',
|
name: 'Chinese (Traditional)',
|
||||||
nativeName: '中文 (HANT)',
|
nativeName: '中文 (HANT)',
|
||||||
dayjsImport: () => import('dayjs/locale/zh-hk.js'),
|
|
||||||
},
|
},
|
||||||
'zh-rhk': {
|
'zh-rhk': {
|
||||||
name: 'Chinese',
|
name: 'Chinese',
|
||||||
nativeName: '中文 (RHK)',
|
nativeName: '中文 (RHK)',
|
||||||
dayjsImport: () => import('dayjs/locale/zh-hk.js'),
|
|
||||||
},
|
},
|
||||||
'zh-rtw': {
|
'zh-rtw': {
|
||||||
name: 'Chinese',
|
name: 'Chinese',
|
||||||
nativeName: '中文 (RTW)',
|
nativeName: '中文 (RTW)',
|
||||||
dayjsImport: () => import('dayjs/locale/zh-tw.js'),
|
|
||||||
},
|
},
|
||||||
fil: {
|
fil: {
|
||||||
name: 'Filipino',
|
name: 'Filipino',
|
||||||
nativeName: 'Filipino',
|
nativeName: 'Filipino',
|
||||||
dayjsImport: () => import('dayjs/locale/tl-ph'),
|
|
||||||
},
|
},
|
||||||
sh: {
|
sh: {
|
||||||
name: 'Serbo-Croatian',
|
name: 'Serbo-Croatian',
|
||||||
nativeName: 'srpskohrvatski',
|
nativeName: 'srpskohrvatski',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
'nb-NO': {
|
'nb-NO': {
|
||||||
name: 'Norwegian Bokmål',
|
name: 'Norwegian Bokmål',
|
||||||
nativeName: 'Norsk bokmål',
|
nativeName: 'Norsk bokmål',
|
||||||
dayjsImport: () => import('dayjs/locale/nb.js'),
|
|
||||||
},
|
},
|
||||||
// #############################
|
// #############################
|
||||||
// ### ###
|
// ### ###
|
||||||
@@ -81,918 +68,735 @@ export const ISOLanguages: { [languageCode in I18nResourceCode]: ISOLanguage } &
|
|||||||
aa: {
|
aa: {
|
||||||
name: 'Afar',
|
name: 'Afar',
|
||||||
nativeName: 'Afaraf',
|
nativeName: 'Afaraf',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ab: {
|
ab: {
|
||||||
name: 'Abkhaz',
|
name: 'Abkhaz',
|
||||||
nativeName: 'аҧсуа бызшәа',
|
nativeName: 'аҧсуа бызшәа',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ae: {
|
ae: {
|
||||||
name: 'Avestan',
|
name: 'Avestan',
|
||||||
nativeName: 'avesta',
|
nativeName: 'avesta',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
af: {
|
af: {
|
||||||
name: 'Afrikaans',
|
name: 'Afrikaans',
|
||||||
nativeName: 'Afrikaans',
|
nativeName: 'Afrikaans',
|
||||||
dayjsImport: () => import('dayjs/locale/af.js'),
|
|
||||||
},
|
},
|
||||||
ak: {
|
ak: {
|
||||||
name: 'Akan',
|
name: 'Akan',
|
||||||
nativeName: 'Akan',
|
nativeName: 'Akan',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
am: {
|
am: {
|
||||||
name: 'Amharic',
|
name: 'Amharic',
|
||||||
nativeName: 'አማርኛ',
|
nativeName: 'አማርኛ',
|
||||||
dayjsImport: () => import('dayjs/locale/am.js'),
|
|
||||||
},
|
},
|
||||||
an: {
|
an: {
|
||||||
name: 'Aragonese',
|
name: 'Aragonese',
|
||||||
nativeName: 'aragonés',
|
nativeName: 'aragonés',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ar: {
|
ar: {
|
||||||
name: 'Arabic',
|
name: 'Arabic',
|
||||||
nativeName: 'اَلْعَرَبِيَّةُ',
|
nativeName: 'اَلْعَرَبِيَّةُ',
|
||||||
dayjsImport: () => import('dayjs/locale/ar.js'),
|
|
||||||
},
|
},
|
||||||
as: {
|
as: {
|
||||||
name: 'Assamese',
|
name: 'Assamese',
|
||||||
nativeName: 'অসমীয়া',
|
nativeName: 'অসমীয়া',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
av: {
|
av: {
|
||||||
name: 'Avaric',
|
name: 'Avaric',
|
||||||
nativeName: 'авар мацӀ',
|
nativeName: 'авар мацӀ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ay: {
|
ay: {
|
||||||
name: 'Aymara',
|
name: 'Aymara',
|
||||||
nativeName: 'aymar aru',
|
nativeName: 'aymar aru',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
az: {
|
az: {
|
||||||
name: 'Azerbaijani',
|
name: 'Azerbaijani',
|
||||||
nativeName: 'azərbaycan dili',
|
nativeName: 'azərbaycan dili',
|
||||||
dayjsImport: () => import('dayjs/locale/az.js'),
|
|
||||||
},
|
},
|
||||||
ba: {
|
ba: {
|
||||||
name: 'Bashkir',
|
name: 'Bashkir',
|
||||||
nativeName: 'башҡорт теле',
|
nativeName: 'башҡорт теле',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
be: {
|
be: {
|
||||||
name: 'Belarusian',
|
name: 'Belarusian',
|
||||||
nativeName: 'беларуская мова',
|
nativeName: 'беларуская мова',
|
||||||
dayjsImport: () => import('dayjs/locale/be.js'),
|
|
||||||
},
|
},
|
||||||
bg: {
|
bg: {
|
||||||
name: 'Bulgarian',
|
name: 'Bulgarian',
|
||||||
nativeName: 'български език',
|
nativeName: 'български език',
|
||||||
dayjsImport: () => import('dayjs/locale/bg.js'),
|
|
||||||
},
|
},
|
||||||
bi: {
|
bi: {
|
||||||
name: 'Bislama',
|
name: 'Bislama',
|
||||||
nativeName: 'Bislama',
|
nativeName: 'Bislama',
|
||||||
dayjsImport: () => import('dayjs/locale/bi.js'),
|
|
||||||
},
|
},
|
||||||
bm: {
|
bm: {
|
||||||
name: 'Bambara',
|
name: 'Bambara',
|
||||||
nativeName: 'bamanankan',
|
nativeName: 'bamanankan',
|
||||||
dayjsImport: () => import('dayjs/locale/bm.js'),
|
|
||||||
},
|
},
|
||||||
bn: {
|
bn: {
|
||||||
name: 'Bengali',
|
name: 'Bengali',
|
||||||
nativeName: 'বাংলা',
|
nativeName: 'বাংলা',
|
||||||
dayjsImport: () => import('dayjs/locale/bn.js'),
|
|
||||||
},
|
},
|
||||||
bo: {
|
bo: {
|
||||||
name: 'Tibetan',
|
name: 'Tibetan',
|
||||||
nativeName: 'བོད་ཡིག',
|
nativeName: 'བོད་ཡིག',
|
||||||
dayjsImport: () => import('dayjs/locale/bo.js'),
|
|
||||||
},
|
},
|
||||||
br: {
|
br: {
|
||||||
name: 'Breton',
|
name: 'Breton',
|
||||||
nativeName: 'brezhoneg',
|
nativeName: 'brezhoneg',
|
||||||
dayjsImport: () => import('dayjs/locale/br.js'),
|
|
||||||
},
|
},
|
||||||
bs: {
|
bs: {
|
||||||
name: 'Bosnian',
|
name: 'Bosnian',
|
||||||
nativeName: 'bosanski jezik',
|
nativeName: 'bosanski jezik',
|
||||||
dayjsImport: () => import('dayjs/locale/bs.js'),
|
|
||||||
},
|
},
|
||||||
ca: {
|
ca: {
|
||||||
name: 'Catalan',
|
name: 'Catalan',
|
||||||
nativeName: 'Català',
|
nativeName: 'Català',
|
||||||
dayjsImport: () => import('dayjs/locale/ca.js'),
|
|
||||||
},
|
},
|
||||||
ce: {
|
ce: {
|
||||||
name: 'Chechen',
|
name: 'Chechen',
|
||||||
nativeName: 'нохчийн мотт',
|
nativeName: 'нохчийн мотт',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ch: {
|
ch: {
|
||||||
name: 'Chamorro',
|
name: 'Chamorro',
|
||||||
nativeName: 'Chamoru',
|
nativeName: 'Chamoru',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
co: {
|
co: {
|
||||||
name: 'Corsican',
|
name: 'Corsican',
|
||||||
nativeName: 'corsu',
|
nativeName: 'corsu',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
cr: {
|
cr: {
|
||||||
name: 'Cree',
|
name: 'Cree',
|
||||||
nativeName: 'ᓀᐦᐃᔭᐍᐏᐣ',
|
nativeName: 'ᓀᐦᐃᔭᐍᐏᐣ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
cs: {
|
cs: {
|
||||||
name: 'Czech',
|
name: 'Czech',
|
||||||
nativeName: 'čeština',
|
nativeName: 'čeština',
|
||||||
dayjsImport: () => import('dayjs/locale/cs.js'),
|
|
||||||
},
|
},
|
||||||
cu: {
|
cu: {
|
||||||
name: 'Old Church Slavonic',
|
name: 'Old Church Slavonic',
|
||||||
nativeName: 'ѩзыкъ словѣньскъ',
|
nativeName: 'ѩзыкъ словѣньскъ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
cv: {
|
cv: {
|
||||||
name: 'Chuvash',
|
name: 'Chuvash',
|
||||||
nativeName: 'чӑваш чӗлхи',
|
nativeName: 'чӑваш чӗлхи',
|
||||||
dayjsImport: () => import('dayjs/locale/cv.js'),
|
|
||||||
},
|
},
|
||||||
cy: {
|
cy: {
|
||||||
name: 'Welsh',
|
name: 'Welsh',
|
||||||
nativeName: 'Cymraeg',
|
nativeName: 'Cymraeg',
|
||||||
dayjsImport: () => import('dayjs/locale/cy.js'),
|
|
||||||
},
|
},
|
||||||
da: {
|
da: {
|
||||||
name: 'Danish',
|
name: 'Danish',
|
||||||
nativeName: 'Dansk',
|
nativeName: 'Dansk',
|
||||||
dayjsImport: () => import('dayjs/locale/da.js'),
|
|
||||||
},
|
},
|
||||||
de: {
|
de: {
|
||||||
name: 'German',
|
name: 'German',
|
||||||
nativeName: 'Deutsch',
|
nativeName: 'Deutsch',
|
||||||
dayjsImport: () => import('dayjs/locale/de.js'),
|
|
||||||
},
|
},
|
||||||
dv: {
|
dv: {
|
||||||
name: 'Divehi',
|
name: 'Divehi',
|
||||||
nativeName: 'ދިވެހި',
|
nativeName: 'ދިވެހި',
|
||||||
dayjsImport: () => import('dayjs/locale/dv.js'),
|
|
||||||
},
|
},
|
||||||
dz: {
|
dz: {
|
||||||
name: 'Dzongkha',
|
name: 'Dzongkha',
|
||||||
nativeName: 'རྫོང་ཁ',
|
nativeName: 'རྫོང་ཁ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ee: {
|
ee: {
|
||||||
name: 'Ewe',
|
name: 'Ewe',
|
||||||
nativeName: 'Eʋegbe',
|
nativeName: 'Eʋegbe',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
el: {
|
el: {
|
||||||
name: 'Greek',
|
name: 'Greek',
|
||||||
nativeName: 'Ελληνικά',
|
nativeName: 'Ελληνικά',
|
||||||
dayjsImport: () => import('dayjs/locale/el.js'),
|
|
||||||
},
|
},
|
||||||
en: {
|
en: {
|
||||||
name: 'English',
|
name: 'English',
|
||||||
nativeName: 'English',
|
nativeName: 'English',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
eo: {
|
eo: {
|
||||||
name: 'Esperanto',
|
name: 'Esperanto',
|
||||||
nativeName: 'Esperanto',
|
nativeName: 'Esperanto',
|
||||||
dayjsImport: () => import('dayjs/locale/eo.js'),
|
|
||||||
},
|
},
|
||||||
es: {
|
es: {
|
||||||
name: 'Spanish',
|
name: 'Spanish',
|
||||||
nativeName: 'Español',
|
nativeName: 'Español',
|
||||||
dayjsImport: () => import('dayjs/locale/es.js'),
|
|
||||||
},
|
},
|
||||||
et: {
|
et: {
|
||||||
name: 'Estonian',
|
name: 'Estonian',
|
||||||
nativeName: 'eesti',
|
nativeName: 'eesti',
|
||||||
dayjsImport: () => import('dayjs/locale/et.js'),
|
|
||||||
},
|
},
|
||||||
eu: {
|
eu: {
|
||||||
name: 'Basque',
|
name: 'Basque',
|
||||||
nativeName: 'euskara',
|
nativeName: 'euskara',
|
||||||
dayjsImport: () => import('dayjs/locale/eu.js'),
|
|
||||||
},
|
},
|
||||||
fa: {
|
fa: {
|
||||||
name: 'Persian',
|
name: 'Persian',
|
||||||
nativeName: 'فارسی',
|
nativeName: 'فارسی',
|
||||||
dayjsImport: () => import('dayjs/locale/fa.js'),
|
|
||||||
},
|
},
|
||||||
ff: {
|
ff: {
|
||||||
name: 'Fula',
|
name: 'Fula',
|
||||||
nativeName: 'Fulfulde',
|
nativeName: 'Fulfulde',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
fi: {
|
fi: {
|
||||||
name: 'Finnish',
|
name: 'Finnish',
|
||||||
nativeName: 'suomi',
|
nativeName: 'suomi',
|
||||||
dayjsImport: () => import('dayjs/locale/fi.js'),
|
|
||||||
},
|
},
|
||||||
fj: {
|
fj: {
|
||||||
name: 'Fijian',
|
name: 'Fijian',
|
||||||
nativeName: 'vosa Vakaviti',
|
nativeName: 'vosa Vakaviti',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
fo: {
|
fo: {
|
||||||
name: 'Faroese',
|
name: 'Faroese',
|
||||||
nativeName: 'Føroyskt',
|
nativeName: 'Føroyskt',
|
||||||
dayjsImport: () => import('dayjs/locale/fo.js'),
|
|
||||||
},
|
},
|
||||||
fr: {
|
fr: {
|
||||||
name: 'French',
|
name: 'French',
|
||||||
nativeName: 'Français',
|
nativeName: 'Français',
|
||||||
dayjsImport: () => import('dayjs/locale/fr.js'),
|
|
||||||
},
|
},
|
||||||
fy: {
|
fy: {
|
||||||
name: 'Western Frisian',
|
name: 'Western Frisian',
|
||||||
nativeName: 'Frysk',
|
nativeName: 'Frysk',
|
||||||
dayjsImport: () => import('dayjs/locale/fy.js'),
|
|
||||||
},
|
},
|
||||||
ga: {
|
ga: {
|
||||||
name: 'Irish',
|
name: 'Irish',
|
||||||
nativeName: 'Gaeilge',
|
nativeName: 'Gaeilge',
|
||||||
dayjsImport: () => import('dayjs/locale/ga.js'),
|
|
||||||
},
|
},
|
||||||
gd: {
|
gd: {
|
||||||
name: 'Scottish Gaelic',
|
name: 'Scottish Gaelic',
|
||||||
nativeName: 'Gàidhlig',
|
nativeName: 'Gàidhlig',
|
||||||
dayjsImport: () => import('dayjs/locale/gd.js'),
|
|
||||||
},
|
},
|
||||||
gl: {
|
gl: {
|
||||||
name: 'Galician',
|
name: 'Galician',
|
||||||
nativeName: 'galego',
|
nativeName: 'galego',
|
||||||
dayjsImport: () => import('dayjs/locale/gl.js'),
|
|
||||||
},
|
},
|
||||||
gn: {
|
gn: {
|
||||||
name: 'Guaraní',
|
name: 'Guaraní',
|
||||||
nativeName: "Avañe'ẽ",
|
nativeName: "Avañe'ẽ",
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
gu: {
|
gu: {
|
||||||
name: 'Gujarati',
|
name: 'Gujarati',
|
||||||
nativeName: 'ગુજરાતી',
|
nativeName: 'ગુજરાતી',
|
||||||
dayjsImport: () => import('dayjs/locale/gu.js'),
|
|
||||||
},
|
},
|
||||||
gv: {
|
gv: {
|
||||||
name: 'Manx',
|
name: 'Manx',
|
||||||
nativeName: 'Gaelg',
|
nativeName: 'Gaelg',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ha: {
|
ha: {
|
||||||
name: 'Hausa',
|
name: 'Hausa',
|
||||||
nativeName: 'هَوُسَ',
|
nativeName: 'هَوُسَ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
he: {
|
he: {
|
||||||
name: 'Hebrew',
|
name: 'Hebrew',
|
||||||
nativeName: 'עברית',
|
nativeName: 'עברית',
|
||||||
dayjsImport: () => import('dayjs/locale/he.js'),
|
|
||||||
},
|
},
|
||||||
hi: {
|
hi: {
|
||||||
name: 'Hindi',
|
name: 'Hindi',
|
||||||
nativeName: 'हिन्दी',
|
nativeName: 'हिन्दी',
|
||||||
dayjsImport: () => import('dayjs/locale/hi.js'),
|
|
||||||
},
|
},
|
||||||
ho: {
|
ho: {
|
||||||
name: 'Hiri Motu',
|
name: 'Hiri Motu',
|
||||||
nativeName: 'Hiri Motu',
|
nativeName: 'Hiri Motu',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
hr: {
|
hr: {
|
||||||
name: 'Croatian',
|
name: 'Croatian',
|
||||||
nativeName: 'Hrvatski',
|
nativeName: 'Hrvatski',
|
||||||
dayjsImport: () => import('dayjs/locale/hr.js'),
|
|
||||||
},
|
},
|
||||||
ht: {
|
ht: {
|
||||||
name: 'Haitian',
|
name: 'Haitian',
|
||||||
nativeName: 'Kreyòl ayisyen',
|
nativeName: 'Kreyòl ayisyen',
|
||||||
dayjsImport: () => import('dayjs/locale/ht.js'),
|
|
||||||
},
|
},
|
||||||
hu: {
|
hu: {
|
||||||
name: 'Hungarian',
|
name: 'Hungarian',
|
||||||
nativeName: 'magyar',
|
nativeName: 'magyar',
|
||||||
dayjsImport: () => import('dayjs/locale/hu.js'),
|
|
||||||
},
|
},
|
||||||
hy: {
|
hy: {
|
||||||
name: 'Armenian',
|
name: 'Armenian',
|
||||||
nativeName: 'Հայերեն',
|
nativeName: 'Հայերեն',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
hz: {
|
hz: {
|
||||||
name: 'Herero',
|
name: 'Herero',
|
||||||
nativeName: 'Otjiherero',
|
nativeName: 'Otjiherero',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ia: {
|
ia: {
|
||||||
name: 'Interlingua',
|
name: 'Interlingua',
|
||||||
nativeName: 'Interlingua',
|
nativeName: 'Interlingua',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
id: {
|
id: {
|
||||||
name: 'Indonesian',
|
name: 'Indonesian',
|
||||||
nativeName: 'Bahasa Indonesia',
|
nativeName: 'Bahasa Indonesia',
|
||||||
dayjsImport: () => import('dayjs/locale/id.js'),
|
|
||||||
},
|
},
|
||||||
ie: {
|
ie: {
|
||||||
name: 'Interlingue',
|
name: 'Interlingue',
|
||||||
nativeName: 'Interlingue',
|
nativeName: 'Interlingue',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ig: {
|
ig: {
|
||||||
name: 'Igbo',
|
name: 'Igbo',
|
||||||
nativeName: 'Asụsụ Igbo',
|
nativeName: 'Asụsụ Igbo',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ii: {
|
ii: {
|
||||||
name: 'Nuosu',
|
name: 'Nuosu',
|
||||||
nativeName: 'ꆈꌠ꒿ Nuosuhxop',
|
nativeName: 'ꆈꌠ꒿ Nuosuhxop',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ik: {
|
ik: {
|
||||||
name: 'Inupiaq',
|
name: 'Inupiaq',
|
||||||
nativeName: 'Iñupiaq',
|
nativeName: 'Iñupiaq',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
io: {
|
io: {
|
||||||
name: 'Ido',
|
name: 'Ido',
|
||||||
nativeName: 'Ido',
|
nativeName: 'Ido',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
is: {
|
is: {
|
||||||
name: 'Icelandic',
|
name: 'Icelandic',
|
||||||
nativeName: 'Íslenska',
|
nativeName: 'Íslenska',
|
||||||
dayjsImport: () => import('dayjs/locale/is.js'),
|
|
||||||
},
|
},
|
||||||
it: {
|
it: {
|
||||||
name: 'Italian',
|
name: 'Italian',
|
||||||
nativeName: 'Italiano',
|
nativeName: 'Italiano',
|
||||||
dayjsImport: () => import('dayjs/locale/it.js'),
|
|
||||||
},
|
},
|
||||||
iu: {
|
iu: {
|
||||||
name: 'Inuktitut',
|
name: 'Inuktitut',
|
||||||
nativeName: 'ᐃᓄᒃᑎᑐᑦ',
|
nativeName: 'ᐃᓄᒃᑎᑐᑦ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ja: {
|
ja: {
|
||||||
name: 'Japanese',
|
name: 'Japanese',
|
||||||
nativeName: '日本語',
|
nativeName: '日本語',
|
||||||
dayjsImport: () => import('dayjs/locale/ja.js'),
|
|
||||||
},
|
},
|
||||||
jv: {
|
jv: {
|
||||||
name: 'Javanese',
|
name: 'Javanese',
|
||||||
nativeName: 'basa Jawa',
|
nativeName: 'basa Jawa',
|
||||||
dayjsImport: () => import('dayjs/locale/jv.js'),
|
|
||||||
},
|
},
|
||||||
ka: {
|
ka: {
|
||||||
name: 'Georgian',
|
name: 'Georgian',
|
||||||
nativeName: 'ქართული',
|
nativeName: 'ქართული',
|
||||||
dayjsImport: () => import('dayjs/locale/ka.js'),
|
|
||||||
},
|
},
|
||||||
kg: {
|
kg: {
|
||||||
name: 'Kongo',
|
name: 'Kongo',
|
||||||
nativeName: 'Kikongo',
|
nativeName: 'Kikongo',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ki: {
|
ki: {
|
||||||
name: 'Kikuyu',
|
name: 'Kikuyu',
|
||||||
nativeName: 'Gĩkũyũ',
|
nativeName: 'Gĩkũyũ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
kj: {
|
kj: {
|
||||||
name: 'Kwanyama',
|
name: 'Kwanyama',
|
||||||
nativeName: 'Kuanyama',
|
nativeName: 'Kuanyama',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
kk: {
|
kk: {
|
||||||
name: 'Kazakh',
|
name: 'Kazakh',
|
||||||
nativeName: 'қазақ тілі',
|
nativeName: 'қазақ тілі',
|
||||||
dayjsImport: () => import('dayjs/locale/kk.js'),
|
|
||||||
},
|
},
|
||||||
kl: {
|
kl: {
|
||||||
name: 'Kalaallisut',
|
name: 'Kalaallisut',
|
||||||
nativeName: 'kalaallisut',
|
nativeName: 'kalaallisut',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
km: {
|
km: {
|
||||||
name: 'Khmer',
|
name: 'Khmer',
|
||||||
nativeName: 'ខេមរភាសា',
|
nativeName: 'ខេមរភាសា',
|
||||||
dayjsImport: () => import('dayjs/locale/km.js'),
|
|
||||||
},
|
},
|
||||||
kn: {
|
kn: {
|
||||||
name: 'Kannada',
|
name: 'Kannada',
|
||||||
nativeName: 'ಕನ್ನಡ',
|
nativeName: 'ಕನ್ನಡ',
|
||||||
dayjsImport: () => import('dayjs/locale/kn.js'),
|
|
||||||
},
|
},
|
||||||
ko: {
|
ko: {
|
||||||
name: 'Korean',
|
name: 'Korean',
|
||||||
nativeName: '한국어',
|
nativeName: '한국어',
|
||||||
dayjsImport: () => import('dayjs/locale/ko.js'),
|
|
||||||
},
|
},
|
||||||
kr: {
|
kr: {
|
||||||
name: 'Kanuri',
|
name: 'Kanuri',
|
||||||
nativeName: 'Kanuri',
|
nativeName: 'Kanuri',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ks: {
|
ks: {
|
||||||
name: 'Kashmiri',
|
name: 'Kashmiri',
|
||||||
nativeName: 'कश्मीरी',
|
nativeName: 'कश्मीरी',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ku: {
|
ku: {
|
||||||
name: 'Kurdish',
|
name: 'Kurdish',
|
||||||
nativeName: 'Kurdî',
|
nativeName: 'Kurdî',
|
||||||
dayjsImport: () => import('dayjs/locale/ku.js'),
|
|
||||||
},
|
},
|
||||||
kv: {
|
kv: {
|
||||||
name: 'Komi',
|
name: 'Komi',
|
||||||
nativeName: 'коми кыв',
|
nativeName: 'коми кыв',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
kw: {
|
kw: {
|
||||||
name: 'Cornish',
|
name: 'Cornish',
|
||||||
nativeName: 'Kernewek',
|
nativeName: 'Kernewek',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ky: {
|
ky: {
|
||||||
name: 'Kyrgyz',
|
name: 'Kyrgyz',
|
||||||
nativeName: 'Кыргызча',
|
nativeName: 'Кыргызча',
|
||||||
dayjsImport: () => import('dayjs/locale/ky.js'),
|
|
||||||
},
|
},
|
||||||
la: {
|
la: {
|
||||||
name: 'Latin',
|
name: 'Latin',
|
||||||
nativeName: 'latine',
|
nativeName: 'latine',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
lb: {
|
lb: {
|
||||||
name: 'Luxembourgish',
|
name: 'Luxembourgish',
|
||||||
nativeName: 'Lëtzebuergesch',
|
nativeName: 'Lëtzebuergesch',
|
||||||
dayjsImport: () => import('dayjs/locale/lb.js'),
|
|
||||||
},
|
},
|
||||||
lg: {
|
lg: {
|
||||||
name: 'Ganda',
|
name: 'Ganda',
|
||||||
nativeName: 'Luganda',
|
nativeName: 'Luganda',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
li: {
|
li: {
|
||||||
name: 'Limburgish',
|
name: 'Limburgish',
|
||||||
nativeName: 'Limburgs',
|
nativeName: 'Limburgs',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ln: {
|
ln: {
|
||||||
name: 'Lingala',
|
name: 'Lingala',
|
||||||
nativeName: 'Lingála',
|
nativeName: 'Lingála',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
lo: {
|
lo: {
|
||||||
name: 'Lao',
|
name: 'Lao',
|
||||||
nativeName: 'ພາສາລາວ',
|
nativeName: 'ພາສາລາວ',
|
||||||
dayjsImport: () => import('dayjs/locale/lo.js'),
|
|
||||||
},
|
},
|
||||||
lt: {
|
lt: {
|
||||||
name: 'Lithuanian',
|
name: 'Lithuanian',
|
||||||
nativeName: 'lietuvių kalba',
|
nativeName: 'lietuvių kalba',
|
||||||
dayjsImport: () => import('dayjs/locale/lt.js'),
|
|
||||||
},
|
},
|
||||||
lu: {
|
lu: {
|
||||||
name: 'Luba-Katanga',
|
name: 'Luba-Katanga',
|
||||||
nativeName: 'Kiluba',
|
nativeName: 'Kiluba',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
lv: {
|
lv: {
|
||||||
name: 'Latvian',
|
name: 'Latvian',
|
||||||
nativeName: 'latviešu valoda',
|
nativeName: 'latviešu valoda',
|
||||||
dayjsImport: () => import('dayjs/locale/lv.js'),
|
|
||||||
},
|
},
|
||||||
mg: {
|
mg: {
|
||||||
name: 'Malagasy',
|
name: 'Malagasy',
|
||||||
nativeName: 'fiteny malagasy',
|
nativeName: 'fiteny malagasy',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
mh: {
|
mh: {
|
||||||
name: 'Marshallese',
|
name: 'Marshallese',
|
||||||
nativeName: 'Kajin M̧ajeļ',
|
nativeName: 'Kajin M̧ajeļ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
mi: {
|
mi: {
|
||||||
name: 'Māori',
|
name: 'Māori',
|
||||||
nativeName: 'te reo Māori',
|
nativeName: 'te reo Māori',
|
||||||
dayjsImport: () => import('dayjs/locale/mi.js'),
|
|
||||||
},
|
},
|
||||||
mk: {
|
mk: {
|
||||||
name: 'Macedonian',
|
name: 'Macedonian',
|
||||||
nativeName: 'македонски јазик',
|
nativeName: 'македонски јазик',
|
||||||
dayjsImport: () => import('dayjs/locale/mk.js'),
|
|
||||||
},
|
},
|
||||||
ml: {
|
ml: {
|
||||||
name: 'Malayalam',
|
name: 'Malayalam',
|
||||||
nativeName: 'മലയാളം',
|
nativeName: 'മലയാളം',
|
||||||
dayjsImport: () => import('dayjs/locale/ml.js'),
|
|
||||||
},
|
},
|
||||||
mn: {
|
mn: {
|
||||||
name: 'Mongolian',
|
name: 'Mongolian',
|
||||||
nativeName: 'Монгол хэл',
|
nativeName: 'Монгол хэл',
|
||||||
dayjsImport: () => import('dayjs/locale/mn.js'),
|
|
||||||
},
|
},
|
||||||
mr: {
|
mr: {
|
||||||
name: 'Marathi',
|
name: 'Marathi',
|
||||||
nativeName: 'मराठी',
|
nativeName: 'मराठी',
|
||||||
dayjsImport: () => import('dayjs/locale/mr.js'),
|
|
||||||
},
|
},
|
||||||
ms: {
|
ms: {
|
||||||
name: 'Malay',
|
name: 'Malay',
|
||||||
nativeName: 'Bahasa Melayu',
|
nativeName: 'Bahasa Melayu',
|
||||||
dayjsImport: () => import('dayjs/locale/ms.js'),
|
|
||||||
},
|
},
|
||||||
mt: {
|
mt: {
|
||||||
name: 'Maltese',
|
name: 'Maltese',
|
||||||
nativeName: 'Malti',
|
nativeName: 'Malti',
|
||||||
dayjsImport: () => import('dayjs/locale/mt.js'),
|
|
||||||
},
|
},
|
||||||
my: {
|
my: {
|
||||||
name: 'Burmese',
|
name: 'Burmese',
|
||||||
nativeName: 'ဗမာစာ',
|
nativeName: 'ဗမာစာ',
|
||||||
dayjsImport: () => import('dayjs/locale/my.js'),
|
|
||||||
},
|
},
|
||||||
na: {
|
na: {
|
||||||
name: 'Nauru',
|
name: 'Nauru',
|
||||||
nativeName: 'Dorerin Naoero',
|
nativeName: 'Dorerin Naoero',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
nb: {
|
nb: {
|
||||||
name: 'Norwegian Bokmål',
|
name: 'Norwegian Bokmål',
|
||||||
nativeName: 'Norsk bokmål',
|
nativeName: 'Norsk bokmål',
|
||||||
dayjsImport: () => import('dayjs/locale/nb.js'),
|
|
||||||
},
|
},
|
||||||
nd: {
|
nd: {
|
||||||
name: 'Northern Ndebele',
|
name: 'Northern Ndebele',
|
||||||
nativeName: 'isiNdebele',
|
nativeName: 'isiNdebele',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ne: {
|
ne: {
|
||||||
name: 'Nepali',
|
name: 'Nepali',
|
||||||
nativeName: 'नेपाली',
|
nativeName: 'नेपाली',
|
||||||
dayjsImport: () => import('dayjs/locale/ne.js'),
|
|
||||||
},
|
},
|
||||||
ng: {
|
ng: {
|
||||||
name: 'Ndonga',
|
name: 'Ndonga',
|
||||||
nativeName: 'Owambo',
|
nativeName: 'Owambo',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
nl: {
|
nl: {
|
||||||
name: 'Dutch',
|
name: 'Dutch',
|
||||||
nativeName: 'Nederlands',
|
nativeName: 'Nederlands',
|
||||||
dayjsImport: () => import('dayjs/locale/nl.js'),
|
|
||||||
},
|
},
|
||||||
nn: {
|
nn: {
|
||||||
name: 'Norwegian Nynorsk',
|
name: 'Norwegian Nynorsk',
|
||||||
nativeName: 'Norsk nynorsk',
|
nativeName: 'Norsk nynorsk',
|
||||||
dayjsImport: () => import('dayjs/locale/nn.js'),
|
|
||||||
},
|
},
|
||||||
no: {
|
no: {
|
||||||
name: 'Norwegian',
|
name: 'Norwegian',
|
||||||
nativeName: 'Norsk',
|
nativeName: 'Norsk',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
nr: {
|
nr: {
|
||||||
name: 'Southern Ndebele',
|
name: 'Southern Ndebele',
|
||||||
nativeName: 'isiNdebele',
|
nativeName: 'isiNdebele',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
nv: {
|
nv: {
|
||||||
name: 'Navajo',
|
name: 'Navajo',
|
||||||
nativeName: 'Diné bizaad',
|
nativeName: 'Diné bizaad',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ny: {
|
ny: {
|
||||||
name: 'Chichewa',
|
name: 'Chichewa',
|
||||||
nativeName: 'chiCheŵa',
|
nativeName: 'chiCheŵa',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
oc: {
|
oc: {
|
||||||
name: 'Occitan',
|
name: 'Occitan',
|
||||||
nativeName: 'occitan',
|
nativeName: 'occitan',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
oj: {
|
oj: {
|
||||||
name: 'Ojibwe',
|
name: 'Ojibwe',
|
||||||
nativeName: 'ᐊᓂᔑᓈᐯᒧᐎᓐ',
|
nativeName: 'ᐊᓂᔑᓈᐯᒧᐎᓐ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
om: {
|
om: {
|
||||||
name: 'Oromo',
|
name: 'Oromo',
|
||||||
nativeName: 'Afaan Oromoo',
|
nativeName: 'Afaan Oromoo',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
or: {
|
or: {
|
||||||
name: 'Oriya',
|
name: 'Oriya',
|
||||||
nativeName: 'ଓଡ଼ିଆ',
|
nativeName: 'ଓଡ଼ିଆ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
os: {
|
os: {
|
||||||
name: 'Ossetian',
|
name: 'Ossetian',
|
||||||
nativeName: 'ирон æвзаг',
|
nativeName: 'ирон æвзаг',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
pa: {
|
pa: {
|
||||||
name: 'Panjabi',
|
name: 'Panjabi',
|
||||||
nativeName: 'ਪੰਜਾਬੀ',
|
nativeName: 'ਪੰਜਾਬੀ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
pi: {
|
pi: {
|
||||||
name: 'Pāli',
|
name: 'Pāli',
|
||||||
nativeName: 'पाऴि',
|
nativeName: 'पाऴि',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
pl: {
|
pl: {
|
||||||
name: 'Polish',
|
name: 'Polish',
|
||||||
nativeName: 'Polski',
|
nativeName: 'Polski',
|
||||||
dayjsImport: () => import('dayjs/locale/pl.js'),
|
|
||||||
},
|
},
|
||||||
ps: {
|
ps: {
|
||||||
name: 'Pashto',
|
name: 'Pashto',
|
||||||
nativeName: 'پښتو',
|
nativeName: 'پښتو',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
pt: {
|
pt: {
|
||||||
name: 'Portuguese',
|
name: 'Portuguese',
|
||||||
nativeName: 'Português',
|
nativeName: 'Português',
|
||||||
dayjsImport: () => import('dayjs/locale/pt.js'),
|
|
||||||
},
|
},
|
||||||
qu: {
|
qu: {
|
||||||
name: 'Quechua',
|
name: 'Quechua',
|
||||||
nativeName: 'Runa Simi',
|
nativeName: 'Runa Simi',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
|
|
||||||
// asdfasdfasdfasdf
|
// asdfasdfasdfasdf
|
||||||
},
|
},
|
||||||
rm: {
|
rm: {
|
||||||
name: 'Romansh',
|
name: 'Romansh',
|
||||||
nativeName: 'rumantsch grischun',
|
nativeName: 'rumantsch grischun',
|
||||||
dayjsImport: () => import('dayjs/locale/cs.js'),
|
|
||||||
},
|
},
|
||||||
rn: {
|
rn: {
|
||||||
name: 'Kirundi',
|
name: 'Kirundi',
|
||||||
nativeName: 'Ikirundi',
|
nativeName: 'Ikirundi',
|
||||||
dayjsImport: () => import('dayjs/locale/cs.js'),
|
|
||||||
},
|
},
|
||||||
ro: {
|
ro: {
|
||||||
name: 'Romanian',
|
name: 'Romanian',
|
||||||
nativeName: 'Română',
|
nativeName: 'Română',
|
||||||
dayjsImport: () => import('dayjs/locale/ro.js'),
|
|
||||||
},
|
},
|
||||||
ru: {
|
ru: {
|
||||||
name: 'Russian',
|
name: 'Russian',
|
||||||
nativeName: 'Русский',
|
nativeName: 'Русский',
|
||||||
dayjsImport: () => import('dayjs/locale/ru.js'),
|
|
||||||
},
|
},
|
||||||
rw: {
|
rw: {
|
||||||
name: 'Kinyarwanda',
|
name: 'Kinyarwanda',
|
||||||
nativeName: 'Ikinyarwanda',
|
nativeName: 'Ikinyarwanda',
|
||||||
dayjsImport: () => import('dayjs/locale/rw.js'),
|
|
||||||
},
|
},
|
||||||
sa: {
|
sa: {
|
||||||
name: 'Sanskrit',
|
name: 'Sanskrit',
|
||||||
nativeName: 'संस्कृतम्',
|
nativeName: 'संस्कृतम्',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
sc: {
|
sc: {
|
||||||
name: 'Sardinian',
|
name: 'Sardinian',
|
||||||
nativeName: 'sardu',
|
nativeName: 'sardu',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
sd: {
|
sd: {
|
||||||
name: 'Sindhi',
|
name: 'Sindhi',
|
||||||
nativeName: 'सिन्धी',
|
nativeName: 'सिन्धी',
|
||||||
dayjsImport: () => import('dayjs/locale/sd.js'),
|
|
||||||
},
|
},
|
||||||
se: {
|
se: {
|
||||||
name: 'Northern Sami',
|
name: 'Northern Sami',
|
||||||
nativeName: 'Davvisámegiella',
|
nativeName: 'Davvisámegiella',
|
||||||
dayjsImport: () => import('dayjs/locale/se.js'),
|
|
||||||
},
|
},
|
||||||
sg: {
|
sg: {
|
||||||
name: 'Sango',
|
name: 'Sango',
|
||||||
nativeName: 'yângâ tî sängö',
|
nativeName: 'yângâ tî sängö',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
si: {
|
si: {
|
||||||
name: 'Sinhala',
|
name: 'Sinhala',
|
||||||
nativeName: 'සිංහල',
|
nativeName: 'සිංහල',
|
||||||
dayjsImport: () => import('dayjs/locale/si.js'),
|
|
||||||
},
|
},
|
||||||
sk: {
|
sk: {
|
||||||
name: 'Slovak',
|
name: 'Slovak',
|
||||||
nativeName: 'slovenčina',
|
nativeName: 'slovenčina',
|
||||||
dayjsImport: () => import('dayjs/locale/sk.js'),
|
|
||||||
},
|
},
|
||||||
sl: {
|
sl: {
|
||||||
name: 'Slovenian',
|
name: 'Slovenian',
|
||||||
nativeName: 'slovenščina',
|
nativeName: 'slovenščina',
|
||||||
dayjsImport: () => import('dayjs/locale/sl.js'),
|
|
||||||
},
|
},
|
||||||
sm: {
|
sm: {
|
||||||
name: 'Samoan',
|
name: 'Samoan',
|
||||||
nativeName: "gagana fa'a Samoa",
|
nativeName: "gagana fa'a Samoa",
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
sn: {
|
sn: {
|
||||||
name: 'Shona',
|
name: 'Shona',
|
||||||
nativeName: 'chiShona',
|
nativeName: 'chiShona',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
so: {
|
so: {
|
||||||
name: 'Somali',
|
name: 'Somali',
|
||||||
nativeName: 'Soomaaliga',
|
nativeName: 'Soomaaliga',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
sq: {
|
sq: {
|
||||||
name: 'Albanian',
|
name: 'Albanian',
|
||||||
nativeName: 'Shqip',
|
nativeName: 'Shqip',
|
||||||
dayjsImport: () => import('dayjs/locale/sq.js'),
|
|
||||||
},
|
},
|
||||||
sr: {
|
sr: {
|
||||||
name: 'Serbian',
|
name: 'Serbian',
|
||||||
nativeName: 'српски језик',
|
nativeName: 'српски језик',
|
||||||
dayjsImport: () => import('dayjs/locale/sr.js'),
|
|
||||||
},
|
},
|
||||||
ss: {
|
ss: {
|
||||||
name: 'Swati',
|
name: 'Swati',
|
||||||
nativeName: 'SiSwati',
|
nativeName: 'SiSwati',
|
||||||
dayjsImport: () => import('dayjs/locale/ss.js'),
|
|
||||||
},
|
},
|
||||||
st: {
|
st: {
|
||||||
name: 'Southern Sotho',
|
name: 'Southern Sotho',
|
||||||
nativeName: 'Sesotho',
|
nativeName: 'Sesotho',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
su: {
|
su: {
|
||||||
name: 'Sundanese',
|
name: 'Sundanese',
|
||||||
nativeName: 'Basa Sunda',
|
nativeName: 'Basa Sunda',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
sv: {
|
sv: {
|
||||||
name: 'Swedish',
|
name: 'Swedish',
|
||||||
nativeName: 'Svenska',
|
nativeName: 'Svenska',
|
||||||
dayjsImport: () => import('dayjs/locale/sv.js'),
|
|
||||||
},
|
},
|
||||||
sw: {
|
sw: {
|
||||||
name: 'Swahili',
|
name: 'Swahili',
|
||||||
nativeName: 'Kiswahili',
|
nativeName: 'Kiswahili',
|
||||||
dayjsImport: () => import('dayjs/locale/sw.js'),
|
|
||||||
},
|
},
|
||||||
ta: {
|
ta: {
|
||||||
name: 'Tamil',
|
name: 'Tamil',
|
||||||
nativeName: 'தமிழ்',
|
nativeName: 'தமிழ்',
|
||||||
dayjsImport: () => import('dayjs/locale/ta.js'),
|
|
||||||
},
|
},
|
||||||
te: {
|
te: {
|
||||||
name: 'Telugu',
|
name: 'Telugu',
|
||||||
nativeName: 'తెలుగు',
|
nativeName: 'తెలుగు',
|
||||||
dayjsImport: () => import('dayjs/locale/te.js'),
|
|
||||||
},
|
},
|
||||||
tg: {
|
tg: {
|
||||||
name: 'Tajik',
|
name: 'Tajik',
|
||||||
nativeName: 'тоҷикӣ',
|
nativeName: 'тоҷикӣ',
|
||||||
dayjsImport: () => import('dayjs/locale/tg.js'),
|
|
||||||
},
|
},
|
||||||
th: {
|
th: {
|
||||||
name: 'Thai',
|
name: 'Thai',
|
||||||
nativeName: 'ไทย',
|
nativeName: 'ไทย',
|
||||||
dayjsImport: () => import('dayjs/locale/th.js'),
|
|
||||||
},
|
},
|
||||||
ti: {
|
ti: {
|
||||||
name: 'Tigrinya',
|
name: 'Tigrinya',
|
||||||
nativeName: 'ትግርኛ',
|
nativeName: 'ትግርኛ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
tk: {
|
tk: {
|
||||||
name: 'Turkmen',
|
name: 'Turkmen',
|
||||||
nativeName: 'Türkmençe',
|
nativeName: 'Türkmençe',
|
||||||
dayjsImport: () => import('dayjs/locale/tk.js'),
|
|
||||||
},
|
},
|
||||||
tl: {
|
tl: {
|
||||||
name: 'Tagalog',
|
name: 'Tagalog',
|
||||||
nativeName: 'Wikang Tagalog',
|
nativeName: 'Wikang Tagalog',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
tn: {
|
tn: {
|
||||||
name: 'Tswana',
|
name: 'Tswana',
|
||||||
nativeName: 'Setswana',
|
nativeName: 'Setswana',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
to: {
|
to: {
|
||||||
name: 'Tonga',
|
name: 'Tonga',
|
||||||
nativeName: 'faka Tonga',
|
nativeName: 'faka Tonga',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
tr: {
|
tr: {
|
||||||
name: 'Turkish',
|
name: 'Turkish',
|
||||||
nativeName: 'Türkçe',
|
nativeName: 'Türkçe',
|
||||||
dayjsImport: () => import('dayjs/locale/tr.js'),
|
|
||||||
},
|
},
|
||||||
ts: {
|
ts: {
|
||||||
name: 'Tsonga',
|
name: 'Tsonga',
|
||||||
nativeName: 'Xitsonga',
|
nativeName: 'Xitsonga',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
tt: {
|
tt: {
|
||||||
name: 'Tatar',
|
name: 'Tatar',
|
||||||
nativeName: 'татар теле',
|
nativeName: 'татар теле',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
tw: {
|
tw: {
|
||||||
name: 'Twi',
|
name: 'Twi',
|
||||||
nativeName: 'Twi',
|
nativeName: 'Twi',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ty: {
|
ty: {
|
||||||
name: 'Tahitian',
|
name: 'Tahitian',
|
||||||
nativeName: 'Reo Tahiti',
|
nativeName: 'Reo Tahiti',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
ug: {
|
ug: {
|
||||||
name: 'Uyghur',
|
name: 'Uyghur',
|
||||||
nativeName: 'ئۇيغۇرچە',
|
nativeName: 'ئۇيغۇرچە',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
uk: {
|
uk: {
|
||||||
name: 'Ukrainian',
|
name: 'Ukrainian',
|
||||||
nativeName: 'Українська',
|
nativeName: 'Українська',
|
||||||
dayjsImport: () => import('dayjs/locale/uk.js'),
|
|
||||||
},
|
},
|
||||||
ur: {
|
ur: {
|
||||||
name: 'Urdu',
|
name: 'Urdu',
|
||||||
nativeName: 'اردو',
|
nativeName: 'اردو',
|
||||||
dayjsImport: () => import('dayjs/locale/ur.js'),
|
|
||||||
},
|
},
|
||||||
uz: {
|
uz: {
|
||||||
name: 'Uzbek',
|
name: 'Uzbek',
|
||||||
nativeName: 'Ўзбек',
|
nativeName: 'Ўзбек',
|
||||||
dayjsImport: () => import('dayjs/locale/uz.js'),
|
|
||||||
},
|
},
|
||||||
ve: {
|
ve: {
|
||||||
name: 'Venda',
|
name: 'Venda',
|
||||||
nativeName: 'Tshivenḓa',
|
nativeName: 'Tshivenḓa',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
vi: {
|
vi: {
|
||||||
name: 'Vietnamese',
|
name: 'Vietnamese',
|
||||||
nativeName: 'Tiếng Việt',
|
nativeName: 'Tiếng Việt',
|
||||||
dayjsImport: () => import('dayjs/locale/vi.js'),
|
|
||||||
},
|
},
|
||||||
vo: {
|
vo: {
|
||||||
name: 'Volapük',
|
name: 'Volapük',
|
||||||
nativeName: 'Volapük',
|
nativeName: 'Volapük',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
wa: {
|
wa: {
|
||||||
name: 'Walloon',
|
name: 'Walloon',
|
||||||
nativeName: 'walon',
|
nativeName: 'walon',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
wo: {
|
wo: {
|
||||||
name: 'Wolof',
|
name: 'Wolof',
|
||||||
nativeName: 'Wollof',
|
nativeName: 'Wollof',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
xh: {
|
xh: {
|
||||||
name: 'Xhosa',
|
name: 'Xhosa',
|
||||||
nativeName: 'isiXhosa',
|
nativeName: 'isiXhosa',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
yi: {
|
yi: {
|
||||||
name: 'Yiddish',
|
name: 'Yiddish',
|
||||||
nativeName: 'ייִדיש',
|
nativeName: 'ייִדיש',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
yo: {
|
yo: {
|
||||||
name: 'Yoruba',
|
name: 'Yoruba',
|
||||||
nativeName: 'Yorùbá',
|
nativeName: 'Yorùbá',
|
||||||
dayjsImport: () => import('dayjs/locale/yo.js'),
|
|
||||||
},
|
},
|
||||||
za: {
|
za: {
|
||||||
name: 'Zhuang',
|
name: 'Zhuang',
|
||||||
nativeName: 'Saɯ cueŋƅ',
|
nativeName: 'Saɯ cueŋƅ',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
zh: {
|
zh: {
|
||||||
name: 'Chinese',
|
name: 'Chinese',
|
||||||
nativeName: '中文',
|
nativeName: '中文',
|
||||||
dayjsImport: () => import('dayjs/locale/zh.js'),
|
|
||||||
},
|
},
|
||||||
zu: {
|
zu: {
|
||||||
name: 'Zulu',
|
name: 'Zulu',
|
||||||
nativeName: 'isiZulu',
|
nativeName: 'isiZulu',
|
||||||
dayjsImport: loadDefaultDayJsLocale,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
import { ISOLanguage, ISOLanguages, loadDefaultDayJsLocale } from '@/util/isoLanguages.ts';
|
import { ISOLanguage, ISOLanguages } from '@/util/isoLanguages.ts';
|
||||||
|
|
||||||
export enum DefaultLanguage {
|
export enum DefaultLanguage {
|
||||||
ALL = 'all',
|
ALL = 'all',
|
||||||
@@ -78,20 +78,3 @@ export const langSortCmp = (a: string, b: string) => {
|
|||||||
|
|
||||||
return aLang > bLang ? 1 : -1;
|
return aLang > bLang ? 1 : -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const loadDayJsLocale = async (locale: string) => {
|
|
||||||
const lang = getISOLanguage(locale);
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (!lang) {
|
|
||||||
await loadDefaultDayJsLocale();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
await lang.dayjsImport();
|
|
||||||
return true;
|
|
||||||
} catch (e) {
|
|
||||||
return false;
|
|
||||||
// ignore - dayjs falls back to en anyway
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|||||||
28
tools/scripts/generateDayJsLocales.ts
Normal file
28
tools/scripts/generateDayJsLocales.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import path from 'path';
|
||||||
|
import fs from 'fs';
|
||||||
|
|
||||||
|
const outputFilePath = path.join(__dirname, '../../src/lib/dayjs/Locales.ts');
|
||||||
|
const resourcesDirPath = path.join(__dirname, '../../node_modules/dayjs/locale');
|
||||||
|
|
||||||
|
const dayjsLocaleFileNames = fs.readdirSync(resourcesDirPath);
|
||||||
|
|
||||||
|
const dayjsLocales = dayjsLocaleFileNames
|
||||||
|
.filter((dayjsLocaleFileName) => dayjsLocaleFileName.endsWith('.js'))
|
||||||
|
.map((dayjsLocaleFileName) => path.basename(dayjsLocaleFileName, path.extname(dayjsLocaleFileName)));
|
||||||
|
|
||||||
|
const outputFileContent = fs.readFileSync(outputFilePath, 'utf-8');
|
||||||
|
|
||||||
|
const updatedFileContent = outputFileContent.replace(
|
||||||
|
/(export const DAYJS_LOCALES = \[)[\s\S]*?(])/g,
|
||||||
|
`$1'${dayjsLocales.join("', '")}'$2`,
|
||||||
|
);
|
||||||
|
|
||||||
|
fs.writeFileSync(outputFilePath, updatedFileContent);
|
||||||
31
tools/scripts/generateDayJsLocalesImport.ts
Normal file
31
tools/scripts/generateDayJsLocalesImport.ts
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import path from 'path';
|
||||||
|
import fs from 'fs';
|
||||||
|
|
||||||
|
const outputFilePath = path.join(__dirname, '../../src/lib/dayjs/LocaleImporter.ts');
|
||||||
|
const resourcesDirPath = path.join(__dirname, '../../node_modules/dayjs/locale');
|
||||||
|
|
||||||
|
const dayjsLocaleFileNames = fs.readdirSync(resourcesDirPath);
|
||||||
|
|
||||||
|
const dayjsLocaleToFileName = dayjsLocaleFileNames
|
||||||
|
.filter((dayjsLocaleFileName) => dayjsLocaleFileName.endsWith('.js'))
|
||||||
|
.map((dayjsLocaleFileName) => [
|
||||||
|
path.basename(dayjsLocaleFileName, path.extname(dayjsLocaleFileName)),
|
||||||
|
dayjsLocaleFileName,
|
||||||
|
]);
|
||||||
|
|
||||||
|
const outputFileContent = fs.readFileSync(outputFilePath, 'utf-8');
|
||||||
|
|
||||||
|
const updatedFileContent = outputFileContent.replace(
|
||||||
|
/(const localesToImport: Record<\(typeof DAYJS_LOCALES\)\[number], \(\) => Promise<unknown>> = \{)[\s\S]*?(})/g,
|
||||||
|
`$1${dayjsLocaleToFileName.map(([locale, fileName]) => `'${locale}': () => import('dayjs/locale/${fileName}')`).join(',')}$2`,
|
||||||
|
);
|
||||||
|
|
||||||
|
fs.writeFileSync(outputFilePath, updatedFileContent);
|
||||||
Reference in New Issue
Block a user