feat: internationalization

This commit is contained in:
2025-04-22 21:34:55 +00:00
parent 58c692a879
commit ce03668252
36 changed files with 1069 additions and 563 deletions

26
src/i18n.ts Normal file
View File

@ -0,0 +1,26 @@
import en from './i18n/en';
import ja from './i18n/ja';
import { createI18n } from 'vue-i18n';
export type Locale = 'en' | 'ja';
const loadLocaleMessages = async (locale: Locale) => {
return (await import(`./i18n/${locale}.ts`)).default;
};
const i18n = createI18n({
legacy: false,
locale: 'en',
fallbackLocale: 'en',
messages: { en, ja },
});
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 };