vue-i18n结合Element-ui的配置方法


Posted in Javascript onMay 20, 2019

使用方法:

在配合 Element-UI 一起使用时,会有2个问题: ####(1)、页面刷新后,通过按钮切换的语言还原成了最初的语言,无法保存 ####(2)、框架内部自带的提示文字无法更改,比如像时间选择框内部中的提示文字

关于第一个问题,可以在初始化VueI18n实例时,通过 localStorage 来为 locale 对象赋值

在切换语言的时候可以缓存不同的语言选项,并且可以长期保存,不会因为刷新网页而改变locale 的属性值

const i18n = new VueI18n({ locale: localStorage.getItem('locale') || 'zh', messages })

关于第二个问题,更改Element 组件内部语言,这里还涉及到 手动处理 vue-i18n@6.x 兼容性问题。 http://element-cn.eleme.io/#/... 官网已经做了详细介绍,这里依葫芦画瓢跟着实现一下

###i18n.js import Vue from 'vue' import VueI18n from 'vue-i18n' import locale from 'element-ui/lib/locale'; import zh from './langs/zh' import en from './langs/en' import enLocale from 'element-ui/lib/locale/lang/en' import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
Vue.use(VueI18n)
const messages = { en: Object.assign(en, enLocale), zh: Object.assign(zh, zhLocale) }
console.log(messages.zh)
const i18n = new VueI18n({ locale: localStorage.getItem('locale') || 'zh', messages })
locale.i18n((key, value) => i18n.t(key, value)) //为了实现element插件的多语言切换
export default i18n

按照如上把国际化文件都整合到一起,避免main.js 中大段引入相关代码。main.js 中与 i18n 相关的就只剩两行代码

###main.js import i18n from './i18n/i18n' // 1行
window.app = new Vue({ el: '#app', router, store, i18n, // 2行 components: { App }, template: '' })

---------------------------源码如下--------------------------------------

// 工程本地 国际化
import locale_zh_CN from './lang/zh-CN'
import locale_zh_TW from './lang/zh-TW'
import locale_en_US from './lang/en-US'
import locale_ko_KR from './lang/ko-KR'
// ElementUI 国际化
import element_locale from 'element-ui/lib/locale'
import element_zh_CN from 'element-ui/lib/locale/lang/zh-CN'
import element_zh_TW from 'element-ui/lib/locale/lang/zh-TW'
import element_en_US from 'element-ui/lib/locale/lang/en'
import element_ko_KR from 'element-ui/lib/locale/lang/ko'
import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
// 将各自的 国际化文件合并 抛出 (后期公共组件等插件的 国际化文件也需要考虑)
const messages = {
zh_CN: Object.assign(locale_zh_CN, element_zh_CN),
zh_TW: Object.assign(locale_zh_TW, element_zh_TW),
en_US: Object.assign(locale_en_US, element_en_US),
ko_KR: Object.assign(locale_ko_KR, element_ko_KR)
}
// i18n插件默认给中文
const i18n = new VueI18n({
locale: window.localStorage.getItem('WEBFRONT_LANG') || 'zh_CN',
messages
})
// 为了实现element插件的多语言切换
element_locale.i18n((key, value) => i18n.t(key, value))
export default i18n

总结

以上所述是小编给大家介绍的vue-i18n结合Element-ui的配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
js实现点小图看大图效果的思路及示例代码
Oct 28 Javascript
利用jQuery和CSS将背景图片拉伸
Oct 16 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
jQuery+css实现的换页标签栏效果
Jan 27 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
May 05 Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 Javascript
React.js中常用的ES6写法总结(推荐)
May 09 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
Mar 16 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 Javascript
vue组件之间的数据传递方法详解
Apr 19 Javascript
js+audio实现音乐播放器
Sep 13 Javascript
JS实现选项卡效果的代码实例
May 20 #Javascript
微信打开网址添加在浏览器中打开提示的办法
May 20 #Javascript
浅谈Vuex注入Vue生命周期的过程
May 20 #Javascript
微信小程序图表插件wx-charts用法实例详解
May 20 #Javascript
Nuxt项目支持eslint+pritter+typescript的实现
May 20 #Javascript
vue3.0 搭建项目总结(详细步骤)
May 20 #Javascript
vue-cli webpack配置文件分析
May 20 #Javascript
You might like
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
详解Python中的正则表达式
2018/07/08 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
中年人生感言
2014/02/04 职场文书
环保倡议书300字
2014/05/15 职场文书
验房委托书
2014/08/30 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis