vue 项目 国际化
使用插件: vue-i18n
1. 安装: npm install vue-i18n
2. 目录结构

// i18n.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import messages from './lang'
Vue.use(VueI18n)
const i18n = new VueI18n({
locale: 'en',
messages
})
export default i18n
// lang/index.js
import cn from './cn'
import en from './en'
export default {
cn,
en
}
// lang/cn.js
const cn = {
errorCode: {
'403': '没有权限',
'429': '您操作太频繁了,休息一下',
'500': '系统异常'
},
message: {
hello: '你好,世界'
}
}
export default cn
//lang/en.js
const en = {
errorCode: {
'403': '没有权限',
'429': '您操作太频繁了,休息一下',
'500': '系统异常'
},
message: {
hello: 'hello world'
}
}
export default en
//main.js
import i18n from '@/i18n/i18n'
new Vue({
el: '#app',
router,
store,
i18n,
render: h => h(App)
})
国际化这样差不多完成了,接下来开始使用了
<el-button
class="filter-item"
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索{{$t('message.hello')}}</el-button> // $t 表示当前语言文件,message表示对应对象下的对应字段
script 中使用需要加入 this,如:
this.versionTitleDia = this.$t('message.hello')
语言的切换,使用this.$i18n.locale
data() {
return {
lang: 'cn'
}
},
methods: {
switchLang() {
this.$i18n.locale = this.lang
}
}
浙公网安备 33010602011771号