zoukankan      html  css  js  c++  java
  • vue elementui 切换语言

    1.安装插件:npm install vue-i18n  --save

    2.src下新建i18n文件夹,

      i18n文件夹下创建langs文件夹和i18n.js文件

      langs文件夹下创建cn.js; en.js; index.js

    如图:

    3.  i18n.js:

    import Vue from "vue";
    import locale from 'element-ui/lib/locale'
    import VueI18n from "vue-i18n";
    import messages from "./langs";
    
    Vue.use(VueI18n);
    const i18n = new VueI18n({
      locale: localStorage.lang || "cn",
      messages
    });
    locale.i18n((key, value) => i18n.t(key, value))
    
    export default i18n;

    4. cn.js:

    import zhLocale from "element-ui/lib/locale/lang/zh-CN";
    const cn = {
      message: {
        login: "登录",
        password: "密码不可为空",
        upassword: "密码",
        uname: "账户",
      },
      ...zhLocale
    };
    
    export default cn;

    5. en.js:

    import enLocale from 'element-ui/lib/locale/lang/en'
    const en = {
      message: {
        login: "Login",
        password: "Password is required",
        upassword: "password",
        uname: "account"
      },
      ...enLocale
    };
    
    
    export default en;

    6.index.js:

    import en from "./en";
    import cn from "./cn";
    export default {
      en,
      cn
    };

    7. main.js:

    import Vue from 'vue'
    import App from './App'
    import store from './store'
    import i18n from './i18n/i18n'
    Vue.config.productionTip = false
    
    window.app = new Vue({
      store,
      i18n,
      render: h => h(App)
    }).$mount('#app')

    以上就是配置好了,可以使用了

    8. 使用:

    //data()中声明 
    data() {
        return {
          lang: "",
        };
      },
    //作为文本内容,绑定在标签中
    <div class="manage_tip">
        <span class="title">{{$t('message.login')}}</span>
     </div>
    //作为属性绑定
      <el-form-item :label="$t('message.uname')" prop="pnone">
            <el-input v-model="loginUser.pnone" placeholder="请输入手机或邮箱"></el-input>
     </el-form-item>
    //作为elementui 中的校验规则,要放在computed中
     computed: {
        rules() {
          return {
            password: [
              {
                required: true,
                message: this.$t("message.password"),
                trigger: "blur"
              },
              {
                pattern: /^(?=.*d)(?=.*[a-zA-Z])(?=.*[W_]).{6,16}$/,
                message: "输入6-16位包含数字、字母、特殊字符的密码",
                trigger: "blur"
              }
            ],
          };
        }
      },
    //切换中英文 
    <el-dropdown @command="handleCommand">
      <span class="el-dropdown-link">
                中英文切换
         <i class="el-icon-arrow-down el-icon--right"></i>
      </span>
      <el-dropdown-menu slot="dropdown">
           <el-dropdown-item command="cn">中文</el-dropdown-item>
            <el-dropdown-item command="en">英文</el-dropdown-item>
       </el-dropdown-menu>
    </el-dropdown>
    
    
    //切换语言的事件
     methods: {
        // 根据下拉框的中被选中的值切换语言
        handleCommand(command) {
          // this.$message("click on item " + command);
          switch (command) {
            case "cn": {
              this.lang = "cn";
              this.$i18n.locale = this.lang;
              break;
            }
            case "en": {
              this.lang = "en";
              this.$i18n.locale = this.lang;
              break;
            }
    
            default:
              break;
          }
        },
    }
  • 相关阅读:
    LINQ标准查询操作符(二)——Join、GroupJoin、GroupBy、Concat、
    LINQ标准查询操作符(一)——select、SelectMany、Where、OrderBy、OrderByDescending、ThenBy、ThenByDescending和Reverse
    LINQ GroupBy
    C# EF使用SqlQuery直接操作SQL查询语句或者存储过程
    mycat工作原理
    Linux系统启动过程详解
    jump堡垒机配置使用
    jumpserver 堡垒机环境搭建(图文详解)
    pip安装
    判断网站响应时间 脚本
  • 原文地址:https://www.cnblogs.com/1234wu/p/11093947.html
Copyright © 2011-2022 走看看