houzhongjian
2024-08-08 820397e43a0b64d35c6d31d2a55475061438593b
提交 | 用户 | 时间
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 }