fix: Fix the problem that the `lang` attribute of `HTML` will not be set when it is first loaded (#682)
* refactor: Encapsulate the function of changing the page language
* fix(lang): Fix the problem that the `lang` attribute of `HTML` will not be set when it is first loaded
| | |
| | | |
| | | import { createI18n } from 'vue-i18n'; |
| | | |
| | | import { setLoadLocalePool } from './useLocale'; |
| | | import { setLoadLocalePool, setHtmlPageLang } from './useLocale'; |
| | | import { localeSetting } from '/@/settings/localeSetting'; |
| | | import { useLocaleStoreWithOut } from '/@/store/modules/locale'; |
| | | |
| | |
| | | const locale = localeStore.getLocale; |
| | | const defaultLocal = await import(`./lang/${locale}.ts`); |
| | | const message = defaultLocal.default?.message ?? {}; |
| | | |
| | | |
| | | setHtmlPageLang(locale) |
| | | setLoadLocalePool((loadLocalePool) => { |
| | | loadLocalePool.push(locale); |
| | | }); |
| | |
| | | |
| | | const loadLocalePool: LocaleType[] = []; |
| | | |
| | | export function setHtmlPageLang(locale: LocaleType) { |
| | | document.querySelector('html')?.setAttribute('lang', locale); |
| | | } |
| | | |
| | | export function setLoadLocalePool(cb: (loadLocalePool: LocaleType[]) => void) { |
| | | cb(loadLocalePool); |
| | | } |
| | |
| | | (i18n.global.locale as any).value = locale; |
| | | } |
| | | localeStore.setLocaleInfo({ locale }); |
| | | document.querySelector('html')?.setAttribute('lang', locale); |
| | | setHtmlPageLang(locale) |
| | | } |
| | | |
| | | export function useLocale() { |