30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import dayjs from 'dayjs';
|
||
import 'dayjs/locale/ru';
|
||
import 'dayjs/locale/en';
|
||
import i18next from 'i18next';
|
||
|
||
// Функция для обновления локали dayjs при изменении языка в i18next
|
||
export const updateDayjsLocale = () => {
|
||
const currentLocale = i18next.language;
|
||
|
||
// Убедимся, что локаль поддерживается, иначе используем 'en'
|
||
const locale = ['ru', 'en'].includes(currentLocale) ? currentLocale : 'en';
|
||
|
||
// Установим локаль для dayjs
|
||
dayjs.locale(locale);
|
||
};
|
||
|
||
// Слушаем изменения языка и обновляем локаль dayjs
|
||
i18next.on('languageChanged', () => {
|
||
updateDayjsLocale();
|
||
});
|
||
|
||
// Вызываем функцию инициализации при импорте
|
||
updateDayjsLocale();
|
||
|
||
// Хелпер для форматирования даты с учетом текущей локали
|
||
export const formatDate = (date: string | Date | number, format = 'DD.MM.YYYY') => {
|
||
return dayjs(date).format(format);
|
||
};
|
||
|
||
export default dayjs;
|