配置element ui内置的语言
下载包
npm install vue-i18n@8.22.2
npm install js-cookie
创建文件src/lang/index.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie'
import elementEN from 'element-ui/lib/locale/lang/en'
import elementZH from 'element-ui/lib/locale/lang/zh-CN'
import customZH from './zh'
import customEN from './en'
Vue.use(VueI18n)
export default new VueI18n({
locale: Cookies.get('language') || 'zh',
messages: {
en: {
...elementEN,
...customEN
},
zh: {
...elementZH,
...customZH
}
}
})
main.js文件内
import i18n from '@/lang';
Vue.use(ElementUI, {
i18n:(key,value)=>i18n.t(key,value)
})
new Vue({
el:'#app',
router,
store,
i18n,
render: h => h(App)
})
配置前端输入页面文字的语言
创建文件src/lang/en.js 放英文包
创建文件src/lang/zh.js 放中文包
拿中文包示例,英文包和中文包的框架都是一样的,值改成英文即可
export default {
navbar:{
title:'标题',
version:'体验版'
},
login:{
account:'账号',
password:'密码'
}
}
使用
将前端在页面中写入的文字替换
{{$t('navbar.title')}}
切换页面语言
import Cookies from 'js-cookie'
methods:{
changeLanguage(lang) {
Cookies.set('language',lang)
this.$18n.locale = lang
this.$message.success('切换多语言成功) //提示
location.reload() //强制刷新页面,防止element组件有些切换不过来
}
}
配置后端输入页面文字的语言
和后端商量去做,比如返回一个字段修改语言