vue
需求:npm
公司项目须要国际化,点击按钮切换中文/英文app
咱们首先要进行安装:ui
npm install vue-i18n --save
复制代码
以后咱们要在咱们的main.js内引入this
import Vue from 'vue'
import App from './App'
import router from './router'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n) // 经过插件的形式挂载
const i18n = new VueI18n({
locale: 'zh', // 语言标识
//this.$i18n.locale // 经过切换 locale 的值来实现语言切换
messages: {
'zh': require('@/locale/zh.js'), // 中文语言包
'en': require('@/locale/en.js') // 英文语言包
}
})
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
i18n,
router,
components: { App },
template: '<App/>'
})
复制代码
其中spa
messages: {
'zh': require('@/locale/zh.js'), // 中文语言包
'en': require('@/locale/en.js') // 英文语言包
}
复制代码
咱们message内部引用的语言包要根据咱们自身的需求去进行更改,有的多是双语言需求有的多是多语言,请根据自身进行调整。 (相似双token/header)插件
这是我放语言包的地址和文件(看截图就能看懂)eslint
这是en的
module.exports = {
language: {
name: 'English',
}
}
这是zh的
module.exports = {
language: {
name: '中文',
}
}
复制代码
有的人可能用过i18认为我可能写的过于简单了,其实不是内容就是一个格式的表。咱们要根据本身的需求去写,因此在这里我就不给一些18'萌新'留下一些先入为主的观念了.总用的谅解下哈~code
以后咱们就能够在页面当中去写功能了-->首先咱们转换文字确定是经过咱们触发的某个功能才会发生改变.因此咱们要触发咱们的某个事件这里咱们就用点击事件代替了component
<p v-on:click="changeL" >
Language: CN/EN
</p>
或
<p @click="changeL" >
Language: CN/EN
</p>
简单来讲@就是v-on的缩写,还有就是:是v-bind的缩写
复制代码
触发事件
changeL(){
if ( this.lang === 'zh' ) {
this.lang = 'en';
this.$i18n.locale = this.lang; // 关键语句
}else {
this.lang = 'zh';
this.$i18n.locale = this.lang; // 关键语句
}
}
复制代码
以后改变咱们页面的内容
内容格式:
我的以为统一一点用这种就好
{{ $t('language.name') }}
复制代码
若是须要深度一些的i18n请关注我稍后的更新谢谢.