mirror of
https://github.com/SomboChea/ui
synced 2024-05-17 17:01:46 +07:00
675ee980ee
* feat(lng): added change language on the fly * fixed dropdown * applied feedbacks * added translation * updated bundlesize * fixed error * updated snaps * added french language * added language in storage * updated styles * fixed tests
64 lines
1.2 KiB
TypeScript
64 lines
1.2 KiB
TypeScript
import dayjs from 'dayjs';
|
|
import i18n from 'i18next';
|
|
|
|
function getFallFackLanguage(): string | undefined {
|
|
const fallbackLanguage = i18n.options.fallbackLng;
|
|
|
|
if (Array.isArray(fallbackLanguage)) {
|
|
return fallbackLanguage[0];
|
|
}
|
|
|
|
if (typeof fallbackLanguage === 'string') {
|
|
return fallbackLanguage;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
function loadDayJSLocale() {
|
|
const fallbackLanguage = getFallFackLanguage();
|
|
const locale = i18n.language || fallbackLanguage;
|
|
|
|
// dayjs loades en-US by default
|
|
if (!locale || locale === 'en-US') {
|
|
return;
|
|
}
|
|
|
|
switch (locale.toLowerCase()) {
|
|
case 'pt-br':
|
|
{
|
|
require('dayjs/locale/pt-br');
|
|
dayjs.locale('pt-br');
|
|
}
|
|
break;
|
|
case 'de-de':
|
|
{
|
|
require('dayjs/locale/de');
|
|
dayjs.locale('de');
|
|
}
|
|
break;
|
|
case 'es-es':
|
|
{
|
|
require('dayjs/locale/es');
|
|
dayjs.locale('es');
|
|
}
|
|
break;
|
|
case 'fr-fr':
|
|
{
|
|
require('dayjs/locale/fr');
|
|
dayjs.locale('fr');
|
|
}
|
|
break;
|
|
case 'zh-cn':
|
|
{
|
|
require('dayjs/locale/zh-cn');
|
|
dayjs.locale('zh-cn');
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
export default loadDayJSLocale;
|