🎈个人主页:靓仔很忙i
💻B 站主页:👉B站👈
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:前端
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!
1.安装模块,不引入6可能会报错
npm install vue-i18n@6
2.在src下创建一个lang文件夹存放相关文件
3.在lang文件夹下创建一个index.js文件
import Vue from "vue"; // 引入Vue
import VueI18n from "vue-i18n"; // 引入国际化的包
import ElementLocale from 'element-ui/lib/locale'
import enLocale from 'element-ui/lib/locale/lang/en' //引入el自带得国际化语言包,防止内部插件出现乱码
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'//引入el自带得国际化语言包,防止内部插件出现乱码
Vue.use(VueI18n); // 全局注册国际化包// 准备翻译的语言环境信息
const i18n = new VueI18n({locale: localStorage.getItem('locale')||"zh", // 从cookie中获取语言类型 获取不到就是中文messages: {'zh': Object.assign(require('./zh.js')) , // 中文语言包'ja': Object.assign(require('./ja.js')) , // 英文语言包}
}); ElementLocale.i18n((key, value) => i18n.t(key, value))
export default i18n
4.在lang下创建js.js,zh.js
ja.js文件
module.exports = {home: {hello:"こんにちは!",welcome:'本システムへようこそ',jumpPage:'前のページにジャンプ',message:'多くの人はこの世界を改造しようとしているが、自分を改造しようとする人は少ない'},head:{switch:'言語の切り替え',changePwd:'パスワードの変更',personInfo:'個人情報',exit:'終了'},sys:{title:'バックグラウンド管理システム'}}
zh.js文件
/**zh.js文件**/
module.exports = {home: {hello:"您好!",welcome:'欢迎使用本系统',jumpPage:'跳转到前端页面',message:'大多数人想要改造这个世界,但却罕有人想改造自己'},head:{switch:'切换语言',changePwd:'修改密码',personInfo:'个人信息',exit:'退出'},sys:{title:'后台管理系统'}}
5.在main.js中引入下面代码
import i18n from "@/lang/index";
import locale from 'element-ui/lib/locale/lang/en'
Vue.use(ElementUI,{locale});
new Vue({router,store,i18n,render: h => h(App)
}).$mount("#app");
6.使用
6.1 src/components/Header.vue中添加如下代码,进行语言切换
<template>
...省略代码...<el-dropdown-menu slot="dropdown" style="width: 100px; text-align: center"><el-dropdown-item style="font-size: 14px; padding: 5px 0"><div style="text-decoration: none" @click="switchLang">切换语言</div></el-dropdown-item>
...省略代码...
</el-dropdown-menu>
</template><script>
export default {methods: {switchLang(){if(this.$i18n.locale=="zh"){this.$i18n.locale="ja"}else{this.$i18n.locale="zh"}}},
};
</script>
6.2 代码中国际化
//将字符串直接替换为{{$t(‘xxx.xxx’)}}
//例如:src/views/Home.vue中template段代码替换如下
//将字符串直接替换为{{$t('xxx.xxx')}}
//例如:src/views/Home.vue中template段代码替换如下<template><div style="color: #666;font-size: 14px;"><div style="padding-bottom: 20px"><b>{{$t('home.hello')}}{{ user.nickname }}</b></div><el-card>{{$t('home.welcome')}} | <a href="/front/home"><span style="color: #E6A23C">{{$t('home.jumpPage')}}</span></a><el-divider />{{$t('home.message')}}</el-card></div>
</template>