关于vue和element ui的国际化

  因为公司需求近日一直在做国际化处理,

  首先,我们用的是vue的单文件组件,实现国际化是在写好的一个文件组件里面vue_min.js里,而且它相当于一个js的模块,在每一个单文件的组件里面使用。

  遇见的第一个问题国际化失败,只显示自己定义的json文件国际化。而且element ui的的国际化不显示,

解决的方案就是,

1.引入的时候应该从新引入

  import enLocale from ‘element-ui/lib/locale/lang/en‘

import zhLocale from ‘element-ui/lib/locale/lang/zh-CN‘

import locale from ‘element-ui/lib/locale‘

elemet ui的文件,并且在main.js里初始化进来

import VueI18n from ‘vue-i18n‘
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 locale from ‘element-ui/lib/locale‘

Vue.use(VueI18n)
Vue.use(ElementUI,{enLocale});

var i18n = new VueI18n({
  locale:"zh-CN",
  messages:{
    "zh-CN":require("./assets/i18n/zh-cn.json"),
    "en-US":require("./assets/i18n/en.json")
  }
})

2.下面是.vue文件里面的操作了

   通过事件进行触发

     <a  @click="setLang(‘zh-CN‘)">中文/</a>
          <a  @click="setLang(‘en-US‘)">EngLish</a>

    方法

  setLang(v){
           if(v===‘en-US‘){

    //自己定义的国际化文件是json格式的
              this._i18n.locale = "en-US";

    //引用的就是element的国际化的内置对象
              locale.use(enLocale)
           }else{
              this._i18n.locale = "zh-CN";
              locale.use(zhLocale)
           }
   //把国际化的信息写到cookie里面,防止页面的刷新和f5

   //这里也可以用vuex实现因为项目问题我们采用了cookie这种办法
           $.cookie("language", this._i18n.locale === "" ?this._i18n.locale = "zh-CN" : this._i18n.locale,{ expires: 1, path: ‘/‘ });
          },

3.就是我们的vue_min.js

import enLocale from ‘element-ui/lib/locale/lang/en‘
import zhLocale from ‘element-ui/lib/locale/lang/zh-CN‘
import locale from ‘element-ui/lib/locale‘

同样的要引入这些东西,不然会显示找不到  locale。

然后就是初始化的时候必须要调用。

initPage : function(){
              // 判断用户是不是登录
              this.isUserLogin();
              // 调用获取用户信息
              this.getUserinfo();
              // 初始化header的退出
              this.initLogout();
            this.language();
              // 设置用户username
               //this.setUserName();
          },

//语言的动态切换,防止刷新

language : function(){
   //从cookie里面拿出来赋值
           this.internationalization = $.cookie("language");
           if(this.internationalization ===‘en-US‘){
              this._i18n.locale = "en-US";
              locale.use(enLocale)
           }else{
              this._i18n.locale = "zh-CN";
              locale.use(zhLocale)
           }
        },

时间: 2024-10-23 06:49:22

关于vue和element ui的国际化的相关文章

net MVC +Vue.js+Element UI 笔记

最近项目需求要用到Vue 与 Element UI.但是又不想用Node.js.就结合了Net.MVC来做项目开发.故而做个笔记来记录一些遇到的问题和处理思路 用到MVC主要考虑是到 对 Node.js 不是特别了解.不想给自己埋坑. 而且基于MVC的话,能用到MVC的服务器端渲染,Session,验证,路由机制等等还是非常和嗨皮的. 然而集合MVC的话,比较烦的是在做可复用Component和JS文件的封装上没Node.js那么方便. Note:不得不吐槽,Vue.js简直和Flash Fle

关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题

方法使用前需了解: 来自”和“小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查该form上添加的表单验证是否正确,需要注意的点有: 1.使用此方法前检查prop一定必须要写在<el-form-item>上面,写在里面的input上或者其他任何地方都不行(el-form-item prop属性绑定) 2.el-form rules,model属性绑定,ref标识 自定义表单验证的坑: 一.valid

Vue框架Element UI教程(二)

原文:https://www.jianshu.com/p/1704b5935a8 [时间选择器] Element UI手册:https://cloud.tencent.com/developer/doc/1270 中文文档:http://element-cn.eleme.io/#/zh-CN github地址:https://github.com/ElemeFE/element 前一篇已经安装好了Element UI环境,现在开始来实际操作框架提供的一些组件的运用了. 在准备好以下文章里面的内容

vue开源Element UI表单设计及代码生成器

在日常的开发工作中,表单开发是较为繁琐且重复的.本文介绍一个我自己写的,提高开发效率的小工具. 1 可视化设计器 设计器基于Element UI ,可通过点击或拖拽的方式设计基本表单, 设计器生成的代码可直接运行在基于 Element 的 vue 项目中. github仓库   https://github.com/JakHuang/form-generator 码云仓库  https://gitee.com/mrhj/form-generator 演示地址 https://mrhj.gitee

vue 集成 element ui

打开vue项目所在的项目路径 输入 npm install element-ui -S 安装element ui 表示安装成功 在vue项目下的node_modules下会显示 element ui 配置element ui 改变项目目录中的main.js文件: 初始main.js文件: import Vue from 'vue'import App from './App'import router from './router'import ElementUI from 'element-u

Vue 添加element UI

根据文档.按需加载模块需要配置(若不是按需加载则不用改这个文件) .babelrc文件; er vue-cli预先生成的文件内容是: { "presets": [ ["env", { "modules": false, "targets": { "browsers": ["> 1%", "last 2 versions", "not ie <=

vue 修改element ui 的默认样式

应该还能针对其他的奇葩样式修改的 比如:mint-ui,vux 应该都适用 1.在样式  后加 !important ,例如:width: 178px !important; 2.<style scope>  </style> 中的scope去掉 3.vue有一个默认的<style scope>  </style>标签,这是后重新新建一个<style>  </style>的标签.区分开来,就是使用两个<style>  &l

vue基于 element ui 的按钮点击节流

vue的按钮点击节流 场景: 1.在实际使用中,当我们填写表单,点击按钮提交的时候,当接口没返回之前,迅速的点击几次,就会造成多次提交. 2.获取验证码,不频繁的获取. 3.弹幕不能频繁的发 基于这几个场景,对 element-ui 的按钮进行扩展 节流 主要使用到了 vue的 $listeners 和 $attrs $listeners:子组件里面,获取父组件对子组件 v-on 的所有监听事件 $attrs: 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 

(vue.js)element ui 表单重置

el-form需要接收一个model,并且需要配合el-form-item一起使用,并且在el-form-item上绑定prop属性,resetField方法才能好使. <el-form :model="addServiceData" ref="addServiceForm"> <el-form-item label="手机号" prop="mobile"> <el-input v-model=&