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 相关文章推荐
dojo 之基础篇(二)之从服务器读取数据
Mar 24 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
Mar 17 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
May 07 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
Aug 22 Javascript
ClearTimeout消除闪动实例代码
Feb 29 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
Sep 25 Javascript
vue实现重置表单信息为空的方法
Sep 29 Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 Javascript
layui表格数据重载
Jul 27 Javascript
JS实现数据动态渲染的竖向步骤条
Jun 24 Javascript
解决vant-UI库修改样式无效的问题
Nov 03 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学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
简单介绍Python中的RSS处理
2015/04/13 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
python读取mysql数据绘制条形图
2020/03/25 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
法律进社区实施方案
2014/03/21 职场文书
运输服务质量承诺书
2014/03/27 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
Html5调用企业微信的实现
2021/04/16 HTML / CSS
java设计模式--建造者模式详解
2021/07/21 Java/Android
Mysql数据库group by原理详解
2022/07/07 MySQL