- 国际化思路:将当前语言代码-国家地区对照表(zh-CN)放到cookie中和vuex中,每次通过读取cookie&vuex中的语言代码,来展示对应的语言包,在切换语言的时候将语言代码存入到cookie&vuex中(保证刷新页面后能记住用户选择的语言)。
一、安装vue-i18n&vuex&js-cookie
vue-i18n
是vue国际化依赖包,vuex是状态管理。1
npm install --save vue-i18n vuex js-cookie
二、引入vue-i18n&vuex&js-cookie
在main.js中注册引入即可。1
2
3
4
5
6
7
8
9
10
11import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie'
Vue.use(VueI18n)
import store from 'vuex'
new Vue({
el: '#app',
i18n,
store,
components: { App },
template: '<App/>'
}
小编是将其放在store&lang之中,在main.js中引入两个文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import store from './store'
import i18n from './lang'
// 由于这里用到了element组件库,这里需要的同学自行安装element-ui
// npm install element-ui
// Vue.use(Element, {
// i18n: (key, value) => i18n.t(key, value)
// })
new Vue({
el: '#app',
router,
i18n,
store,
components: { App },
template: '<App/>'
})
lang文件夹:当前以中英文为例,需要支持多个语言则可添加同级语言包。1
2
3
4
5
6lang
|--index.js //主文件
|
|-- zh.js //中文语言包
|
|-- zh.js //英文语言包
1 | `index.js` |
1 | `zh.js` |
三、使用实例:
1 | <span>{{$t('login.title')}}</span> |
store文件夹:vue&cookie中存入语言代码。1
2
3
4
5
6store
|--index.js //主文件
|
|-- modules //vuex子模块文件
|
|-- language.js //语言
1 | `index.js` |
1 | `language.js ` |
在项目需要切换语言的位置,添加如下事件即可,(事件:将语言代码存入到vuex中,vuex中调用setcookie即可存入到cookie中,并改变i18n中的local即可切换语言。)1
2
3
4handleSetLanguage(lang) {
this.$i18n.locale = lang
this.$store.dispatch('setLanguage', lang)
}
总结:大功告成✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️