在Vue中加入国际化(i18n)中英文功能

1.npm安装方法

npm install vue-i18n --save

2.在src资源文件下创建文件夹i18n,i18n下面创建index.js文件,引入VueI18n和导入语言包(按开发需求可添加多种语言)

具体代码:

import Vue from 'vue'
import VueI18n from 'vue-i18n' Vue.use(VueI18n) // 注册i18n实例并引入语言文件
const i18n = new VueI18n({
locale: 'zh_cn',
messages: {
'zh_cn': require('@/assets/languages/zh_cn.json'),
'en_us': require('@/assets/languages/en_us.json')
}
}) export default i18n

3.在mian.js文件中:

import i18n from './i18n';

new Vue({
el: '#app',
i18n,
router,
store,
components: { App },
template: '<App/>'
})

4.接在assets文件下新建languages包:

在Vue中加入国际化(i18n)中英文功能

语言JSON包:

//zh_cn.json
{
"SYS": {
"confirmButtonText": "确认",
"cancelButtonText": "取消"
},
"user": {
"title": "个人中心",
"Exit": "退出系统",
"Processing": "代办工作",
"initiated": "我发起的",
"transferring": "办结工作",
"phoneService": "电话客服",
"Accounts": "账号中心",
"modifyPassword": "修改密码",
"Language": "切换中英文",
"about": "关于",
"confirmExit": "确定退出?",
"confirmChangeLanguage": "是否切换语言?",
"ScExit": "退出成功",
"loadingtext": "退出账号中..."
}
}
//en_us.json
{
"SYS": {
"confirmButtonText": "Comfirm",
"cancelButtonText": "Cancel"
},
"user": {
"title": "Personal center",
"Exit": "Exit system",
"Processing": "to-do list",
"initiated": "I initiated",
"transferring": "transferring work",
"phoneService": "Telephone customer service",
"Accounts": "Account center",
"modifyPassword": "change Password",
"Language": "CH/EN",
"about": "about",
"confirmExit":"Confirm Exit ?",
"confirmChangeLanguage":"Whether to switch languages",
"ScExit":"exit successfully",
"loadingtext":"Exiting..."
}
}

5.组件使用(语言切换)

        <van-cell
icon="setting-o"
@click="changeLanguage"
:title="$t('user.Language')"
:value="Languagevalue"
is-link
/>

展示语言切换弹窗:(注意一定要使用$t())

    //选择语言
changeLanguage() {
this.$dialog
.confirm({
message: this.$t("user.confirmChangeLanguage"),
confirmButtonText: this.$t("SYS.confirmButtonText"),
cancelButtonText: this.$t("SYS.cancelButtonText")
})
.then(() => {
this.Language = !this.Language;
if (this.Language == false) {
this.CHLanguage("zh_cn");
this.Languagevalue = "English";
} else {
this.CHLanguage("en_us");
this.Languagevalue = "Chinese";
}
});
},
// 语言切换
CHLanguage(lang) {
lang === "" ? "zh_cn" : lang;
this.$i18n.locale = lang;
},

效果:

在Vue中加入国际化(i18n)中英文功能

在Vue中加入国际化(i18n)中英文功能

上一篇:new ActiveXObject("Scripting.FileSystemObject") 时抛出异常 .


下一篇:KVO的使用