Files
twenty/packages/twenty-front/src/utils/i18n/dynamicActivate.ts
T
2025-02-11 15:26:21 +01:00

20 lines
693 B
TypeScript

import { i18n } from '@lingui/core';
import { APP_LOCALES, SOURCE_LOCALE } from 'twenty-shared';
export const dynamicActivate = async (locale: keyof typeof APP_LOCALES) => {
if (!Object.values(APP_LOCALES).includes(locale)) {
// eslint-disable-next-line no-console
console.warn(`Invalid locale "${locale}", defaulting to "en"`);
locale = SOURCE_LOCALE;
}
const { messages } = await import(`../../locales/generated/${locale}.ts`);
i18n.load(locale, messages);
i18n.activate(locale);
try {
localStorage.setItem('locale', locale);
} catch (error) {
// eslint-disable-next-line no-console
console.log('Failed to save locale to localStorage:', error);
}
};