1. 概述
公共组件实现国际化,通过window的localStorage获取当前应用的用户语言,来进行语言的切换。
2. 安装 vue-i18n
npm install vue-i18n
3. 引入 vue-i18n
3.1 在main.js中引入vue-i18n
配置代码如下:
import i18n from './locales';
new Vue({
el: '#app',
i18n,
data(){
return{
locales:zhCN,
}
},
components:{ App },
template:`<a-locale-provider :locale="locales">
<App/>
</a-locale-provider>`
})
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import enUS from './lang/en-US'
import zhCn from './lang/zh-CN'
Vue.use(VueI18n)
const localLang = 'zh-CN'
const messages = {
'zh-CN': {
...zhCn
},
'en-US': {
...enUS
}
}
export function getLang (localLang, id) {
i18n.locale = localLang;
return i18n.t(id);
}
const i18n = new VueI18n({
locale: localLang,
fallbackLocale: localLang,
messages
})
export default i18n
3.2 在lang中创建我们需要的语言包
4. 设置语言
将应用当前使用的用户语言,通过window的localStorage保存起来,然后在需要国际化的地方,从localStorage获取当前用户语言,然后将其值赋值i18n的locale
代码如下:
methods:{
autoChangeLanguage() {
window.localStorage.setItem("lang", navigator.language);
}
}
代码如下:
export function getLang (localLang, id) {
i18n.locale = localLang;
return i18n.t(id);
}
5. 调用
import {getLang} from '../locales';
getLang(window.localStorage.getItem("lang"), 'public.service503')
文档更新时间: 2021-07-08 14:23 作者:朱方华