Vue-i18n,非常好用的前端国际化插件,智能切换中英文

在项目的开发过程中,很多时候,项目都需要进行国际化,如果项目是基于Vue框架开发的,那国际化就更加简单了,可以通过Vue-i18n的插件进行前端页面的国际化,下面是主要的步骤:

1、安装依赖包

npm install vue-i18n --save

2、在main.js入口进行vue-i18n的引入

import VueI18n from 'vue-i18n'
Vue.use(VueI18n)

3、在main.js引用完vue-i18n之后,直接配置vue-i18n的语言

//设置语言,默认是中文
var lang = localStorage.getItem("lang") || "zh";
Vue.config.lang = lang;
//很多时候,国际化因为英文名称一般长于中文名称,都需要重新对样式进行适配
if(lang == "en"){
	require('./style/common_en.css')
}else{
	require('./style/common.css')	
}
// 分别引入不同的定义的语言文件
import zh from './page/lang/zh.js' //中文
import en from './page/lang/en.js' //英文
import tw from './page/lang/tw.js' //繁体
const messages = {
	zh,
    en,
	tw
};
// 遍历语言文件,挂载到vue的this上面
Object.keys(messages).forEach(function (lang) {
  Vue.locale(lang, messages[lang]);
});

4、配置语言文件zh.js、en.js、tw.js

zh.js

export default {
    grade000001:'新增考生',
    grade000002:'恭喜!你已成功报名',
    grade000003:'考试!',
}

en.js

export default {
    grade000001:'Add Candidate',
    grade000002:'Congratulations! You have successfully registered for the',
    grade000003:'exam!',
}

tw.js

export default {
    grade000001:'新增考生',
    grade000002:'恭喜!你已成功報名',
    grade000003:'考試!',
}

5、这个时候要注意的是

因为如果安装的vue-i18n版本是最高的,会发现这个时候会报错

Vue.locale is not function

原因就是因为vue-i18n的版本的兼容性有问题,所以需要对vue-i18n的版本号修改到 5.0.3,或者更低的版本

Vue-i18n,非常好用的前端国际化插件,智能切换中英文

可以在配置文件package.json文件里面进行手动更改版本号5.0.3,然后再运行一次命令就可以了

npm install

6、在标签,data数据里面进行引用对应的语言编码

<div :title='$t("grade000001")'>{{$t("grade000001")}}</div>

//数据中直接引用
data(){
    return{
        name:this.$t("grade000001")
    }
}

7、main.js引入的完整代码

Vue-i18n,非常好用的前端国际化插件,智能切换中英文