55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
import { createI18n } from 'vue-i18n';
|
||
import {Locale} from 'vant'
|
||
import zhCN from 'vant/lib/locale/lang/zh-CN'
|
||
import idId from 'vant/lib/locale/lang/id-ID'
|
||
import hiIN from 'vant/lib/locale/lang/hi-IN'
|
||
import zhLocale from './zh_cn'
|
||
import idLocale from './id_ID'
|
||
import hiLocale from './hi-IN'
|
||
import type { App } from 'vue';
|
||
|
||
|
||
const messages = {
|
||
zh: {
|
||
...zhCN,
|
||
...zhLocale
|
||
},
|
||
id: {
|
||
...idId,
|
||
...idLocale
|
||
},
|
||
hi: {
|
||
...hiIN,
|
||
...hiLocale
|
||
}
|
||
}
|
||
|
||
const language = (navigator.language || 'zh').toLocaleLowerCase(); // 这是获取浏览器的语言
|
||
const defLanguage = localStorage.getItem('lang'); // 这是获取浏览器的语言
|
||
|
||
console.log('当前的环境语言是:', language)
|
||
console.log('当前的后台语言是:', localStorage.getItem('lang'))
|
||
const i18n = createI18n({
|
||
allowComposition: true,
|
||
legacy: false,
|
||
locale: defLanguage || language.split('-')[0] || 'zh', // 设置默认语言
|
||
fallbackLocale: 'zh', // 设置备用语言
|
||
messages: messages // 设置资源文件对象
|
||
})
|
||
|
||
// 更新vant组件库本身的语言变化,支持国际化
|
||
function vantLocales (app: App<Element>) {
|
||
app.use(i18n)
|
||
const lan = defLanguage || language.split('-')[0] || 'zh'
|
||
if (lan === 'hi') {
|
||
Locale.use(lan, hiIN)
|
||
console.log('========================', lan)
|
||
} else if (lan === 'id') {
|
||
Locale.use(lan, idId)
|
||
} else {
|
||
Locale.use(lan, zhCN)
|
||
}
|
||
}
|
||
|
||
export {i18n, vantLocales}
|