-
安装
npm install vue-i18n --save
-
配置使用
建立lang文件夹,分别建立index.js,zh.js,en.js文件,然后在项目的入口文件main.js中引入
index.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import enLocale from './en'
import zhLocale from './zh'
Vue.use(VueI18n)
const messages = {
en: {
...enLocale
},
zh: {
...zhLocale
}
}
const i18n = new VueI18n({
locale: 'zh',
messages
})
export default i18n
zh.js
export default {
message: {
test: '你好 世界'
}
}
en.js
export default {
message: {
test: 'hello world'
}
}
main.js
import i18n from './assets/lang'
new Vue({
el: '#app',
router,
i18n, //引入i18n
components: { App },
template: '<App/>'
})
-
页面中使用
<template>
<el-card class="box-card">
<div slot="header">
<span>选择语言</span>
<el-radio-group @change="handleChange" v-model="lang" style="float: right">
<el-radio label="zh">中文</el-radio>
<el-radio label="en">英文</el-radio>
</el-radio-group>
</div>
<div>{{$t('message.test')}}</div>
</el-card>
</template>
<script>
export default {
name: 'i18n',
data () {
return {
lang: 'zh'
}
},
methods: {
handleChange () {
this.$i18n.locale = this.lang
}
}
}
</script>
<style scoped>
</style>