1234567891011121314151617181920212223242526272829303132333435 |
- import { i18n } from '@/plugins/vueI18n'
- import { useLocaleStoreWithOut } from '@/store/modules/locale'
- import { setHtmlPageLang } from '@/plugins/vueI18n/helper'
- const setI18nLanguage = (locale: LocaleType) => {
- const localeStore = useLocaleStoreWithOut()
- if (i18n.mode === 'legacy') {
- i18n.global.locale = locale
- } else {
- ;(i18n.global.locale as any).value = locale
- }
- localeStore.setCurrentLocale({
- lang: locale
- })
- setHtmlPageLang(locale)
- }
- export const useLocale = () => {
- // Switching the language will change the locale of useI18n
- // And submit to configuration modification
- const changeLocale = async (locale: LocaleType) => {
- const globalI18n = i18n.global
- const langModule = await import(`../../locales/${locale}.ts`)
- globalI18n.setLocaleMessage(locale, langModule.default)
- setI18nLanguage(locale)
- }
- return {
- changeLocale
- }
- }
|