i8n
i18n
i18n是internationalization这个单词的缩写,取了首字母i和结尾字母n,中间一用有18个字母,所以组合起来就所写成i18n,这是一个用于给vue国际化的插件, 它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中
1、安装插件vue-i18n
npm i vue-i18n
//在 main.js 中导入并作为插件使用
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
2、创建语言包对象
// 1、创建中文语言包对象
const zh = {
username: '用户名',
email: '邮箱',
mobile: '手机'
}
// 2、创建英文语言包对象
const en = {
username: 'Username',
email: 'Email',
mobile: 'Mobile'
}
tip
两个第项中的键是一样的,后面在组件中要使用
3、组合对象
// 3、组合语言包对象
const messages = {
zh,
en
}
4、创建 i18n 实例
// 4、创建 VueI18n 实例,并为 messages 和 locale 属性赋值
const i18n = new VueI18n({
messages,
locale: 'en'
})
tip
- messages 属性要设置为第3步中组合的修啊ing
- locale:的值为 messages 对象中的某个 key 的值,如果设置为 en,则组件中使用 第1步中创建的 英文语言中包中的对应属性的值,如果设置为 zh,则使用 中文语言包中的属性的只
5、挂载对象
// 5、挂载 i18n
new Vue({
i18n,
render: h => h(App)
}).$mount('#app')
6、完整代码
import Vue from 'vue'
import App from './App.vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
// 1、创建中文语言包对象
const zh = {
username: '用户名',
email: '邮箱',
mobile: '手机'
}
// 2、创建英文语言包对象
const en = {
username: 'Username',
email: 'Email',
mobile: 'Mobile'
}
// 3、组合语言包对象
const messages = {
zh,
en
}
// 4、创建 VueI18n 实例,并为 messages 和 locale 属性赋值
const i18n = new VueI18n({
messages,
locale: 'en'
})
Vue.config.productionTip = false
// 5、挂载 i18n
new Vue({
i18n,
render: h => h(App)
}).$mount('#app')