forked from akanyan/STARTLINER
feat: internationalization
This commit is contained in:
26
src/i18n.ts
Normal file
26
src/i18n.ts
Normal 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 };
|
Reference in New Issue
Block a user