Files
STARTLINER/src/i18n.ts
2025-05-22 09:46:30 +00:00

28 lines
739 B
TypeScript

import en from './i18n/en';
import { createI18n } from 'vue-i18n';
export type Locale = 'en' | 'ja' | 'pl' | 'zh-Hans' | 'es' | 'ko';
const loadLocaleMessages = async (locale: Locale) => {
return (await import(`./i18n/${locale}.ts`)).default;
};
const i18n = createI18n({
legacy: false,
locale: 'en',
fallbackLocale: 'en',
warnHtmlInMessage: false,
warnHtmlMessage: false,
messages: { en, ja: {}, pl: {}, 'zh-Hans': {}, es: {}, ko: {} },
});
const setLocale = async (locale: Locale) => {
if (locale !== 'en') {
const messages = await loadLocaleMessages(locale);
i18n.global.setLocaleMessage(locale, messages);
}
i18n.global.locale.value = locale;
};
export { i18n, setLocale };