vue项目开发过程中,有的可能需要语言的切换,Element也提供了几种方法,国际化菜单中,我们更多时候想要的是,可以自由的切换,我们基于element改进一下。

我们使用插件vue-i18n 来更好的控制


第一步: 命令行执行 npm install vue-i18n --save
安装好 vue-i18n

保险起见看 package.json里是否安装好


第二步: main.js 引用并全局注册

import Vue from 'vue'
import App from './App'
import router from './router'
import { store } from './store/index'
import ElementUI from 'element-ui'
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
import ElementLocale from 'element-ui/lib/locale'
import VueI18n  from 'vue-i18n'Vue.use(VueI18n)
const messages = {en: {...enLocale},zh: {...zhLocale}
}
const i18n = new VueI18n({locale: 'en',messages,
})
ElementLocale.i18n((key, value) => i18n.t(key, value))Vue.use(ElementUI)
new Vue({el: '#app',store,router,components: { App },template: '<App/>'
})

问题: 考虑到有可能设置完之后,用户会刷新页面,那vue重新渲染,语言会恢复初始值,我们想要的是无论跳转到哪个页面,或者刷新都保持设置过的语言。

解决方案: 1.改的地方就是 i180里locale值时候先检测本地是否设置过,设置过的话获取之前设置的语言。2.以及将i80全局注册到vue,这点很重要。

const i18n = new VueI18n({locale: localStorage.getItem('language')||'en', //这里看本地是否设置过,不存在就使用英文 enmessages,
})new Vue({el: '#app',store,router,i18n, //切记一定要在这里渲染i80components: { App },template: '<App/>'
})

第三步: 组件中设置

<template><div class='content'><el-date-pickerv-model="value1"type="date"placeholder="选择日期"></el-date-picker><el-select v-model="value" @change="languge" placeholder="请选择"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"></el-option></el-select>
</div>
</template><script>
export default {data() {return {value1:'',value:localStorage.getItem('language')||'en',//初始化时候获取上次存的值,并在处于选中状态。options: [{value: 'en',label: '英文'}, {value: 'zh',label: '中文'},]};},methods: {languge(){this.$i18n.locale = this.value  //在main.js里设置的i180我们在这里调用,并赋值localStorage.setItem('language',this.value) //每次切换语言,本地存一下,防止刷新丢失。},}
};
</script>

最终效果
初始化时候日期组件是英文


切换成中文后日期组件变成中文


并且控制台也存下了设置后的 zh 值表示中文

vue 手动选择切换设置语言(详细三步)相关推荐

  1. 优化系统参数设置——下载提速三步走

    优化系统参数设置--下载提速三步走 作者:冷孤月.冷月雪 ■文:重庆 冷孤月 网络上的不少影视资源都以BT下载的方式提供,但是不少朋友并没有体会到BT下载的高速狂奔,而更多的是听到很多新手朋友的抱怨: ...

  2. vue xlsx 导入导出_只需三步vue实现excel文件数据提取并存为json数据

    前言: 以前将excel数据导入到数据库是通过前端,将excel文件上传到后端,通过后端语言进行相应的加工将excel文件中的数据取出并存入数据库:从而实现数据库的存入流程.但是这也带来了一些问题,首 ...

  3. Vue 服务端渲染原理 拆分成三步个步骤简单的实现一个案例

    前言 可能我们平常接触比较多的是使用 vue + vue全家桶来搭建起一个单页(SPA)应用.用 服务端渲染 搭建项目比较少,本文是记录我在学习 服务端渲染 过程中的一些见解,如有出错或疏漏,麻烦帮忙 ...

  4. flstudio怎么设置中文?英文切换中文语言详细操作教程

    Flstudio编曲软件总共有英文和中文两种语言供用户选择,对于我们来说,更习惯于使用中文版本的flstudio编曲软件,包括我自己也比较习惯于使用中文版本的flstudio,同时也能提高工作效率.F ...

  5. flstudio中文版下载免费flstudio怎么设置中文?英文切换中文语言详细操作教程

    目录 FLStudio功能特色: FLStudio安装步骤: FL Studio 如何设置中文 FL Studio 20和21永久版下载 FLStudio是一款非常专业的后期音频处理软件,对于音乐编辑 ...

  6. vue中使用el-table设置排名前三用金银铜的图标展示,其余排名正常展示

    实现效果: 实现方式: <el-table:data="tableData":header-cell-style="{ color: 'rgba(255,255,2 ...

  7. VScode设置语言为中文成功,菜单栏仍然显示成英文状态

    我在VScode设置语言为中文成功 菜单栏仍然显示成英文状态. 解决方案: 第一步:Ctrl + Shift + p 第二步:配置语言 第三步: 选择中文 第四步:重启 重启之后就好了,没问题了.以上 ...

  8. vue自定义组件三步走

    如图所示:我自定义了两个组件,一个是Head.vue,一个是Foot.vue 我现在在Page01.vue中用他们两个,公分三步 1,引用 2,注册 3,使用

  9. Fedora core 4下营造自己精彩桌面世界三步曲

    本文转自CU:http://bbs.chinaunix.net/viewthr ... 1%26filter%3Ddigest 作者CU ID:guangdong ================== ...

最新文章

  1. Entity Framework应用:根据实体的EntityState状态实现增删改查
  2. 批量 杀掉 mysql 连接_批量杀死MySQL连接的四种方法详解
  3. 新浪微博登录密码加密函数 wsse加密算法说明
  4. python真的那么火吗-为什么Python这么火,就业前景怎么样呢?
  5. Python学习记录day3
  6. border-radius的兼容问题
  7. iCloud1_Getting Started
  8. 谷歌离线地图Api附获取教程
  9. 复盘Build 2016:不要错过微软给.NET开发者的这些福利
  10. Android之解决点击PopupWindow外部不消失并且不穿透事件
  11. Top20的OpenSSH服务器最佳安全实践--SSHD_CONFIG配置文件详细解读
  12. kafka结合mysql_logstash集成kafka,mysql实现数据采集
  13. 黑马程序员_毕向东_Java基础视频教程学习笔记(二)
  14. java银行存款案例
  15. 用友U9数据库--用户对应的权限明细查询
  16. iOS开发之自定义键盘(数字,字母类型等随意切换)
  17. booting过程介绍
  18. 企业微信h5配置微信sdk(openEnterpriseChat),拉起外部联系人私信聊天。
  19. JAVA开发运维(Jenkins中踩的坑)
  20. 重开排行榜,真实2克拉黑钻拍卖,你还愿意给网易星球一次机会吗

热门文章

  1. kengoro机器人哪儿有卖_【国际版】2019全明星机器人专题第五期,流汗机器人——Kengoro...
  2. OC之block使用场合
  3. matlab柱状图添加条纹 hatchfill
  4. 在Office365中批量添加联系人
  5. AC+Fit AP组网的PSK认证和二层用户隔离
  6. 苹果拒付高通专利费 两巨头斗法的症结在哪儿
  7. 高校毕业证、学位证丢失怎么办?
  8. 最近 GitHub 上很火的 7 个项目
  9. PS快捷键大法2 低配常用篇
  10. pink老师课堂案例:简易的ATM机,学习前端开发一定要多动手实践