20 lines
693 B
TypeScript
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);
|
|
}
|
|
};
|