提交 | 用户 | 时间
|
820397
|
1 |
import { i18n } from '@/plugins/vueI18n' |
H |
2 |
import { useLocaleStoreWithOut } from '@/store/modules/locale' |
|
3 |
import { setHtmlPageLang } from '@/plugins/vueI18n/helper' |
|
4 |
|
|
5 |
const setI18nLanguage = (locale: LocaleType) => { |
|
6 |
const localeStore = useLocaleStoreWithOut() |
|
7 |
|
|
8 |
if (i18n.mode === 'legacy') { |
|
9 |
i18n.global.locale = locale |
|
10 |
} else { |
|
11 |
;(i18n.global.locale as any).value = locale |
|
12 |
} |
|
13 |
localeStore.setCurrentLocale({ |
|
14 |
lang: locale |
|
15 |
}) |
|
16 |
setHtmlPageLang(locale) |
|
17 |
} |
|
18 |
|
|
19 |
export const useLocale = () => { |
|
20 |
// Switching the language will change the locale of useI18n |
|
21 |
// And submit to configuration modification |
|
22 |
const changeLocale = async (locale: LocaleType) => { |
|
23 |
const globalI18n = i18n.global |
|
24 |
|
|
25 |
const langModule = await import(`../../locales/${locale}.ts`) |
|
26 |
|
|
27 |
globalI18n.setLocaleMessage(locale, langModule.default) |
|
28 |
|
|
29 |
setI18nLanguage(locale) |
|
30 |
} |
|
31 |
|
|
32 |
return { |
|
33 |
changeLocale |
|
34 |
} |
|
35 |
} |