• vue 国际化i18n 多语言切换


    安装

    npm install vue-i18n

    新建一个文件夹 i18n ,内新建 en.js zh.js index.js 三个文件

    准备翻译信息

    en.js

    export default {
      home: {
        helloworld: "hello workd !"
      }
    };

    zh.js

    export default {
      home: {
        helloworld: "你好世界"
      }
    };

    index.js

    创建Vue-i18n实例

    import Vue from "vue";
    import VueI18n from "vue-i18n";
    import enLocale from "./en";
    import zhLocale from "./zh";
    
    Vue.use(VueI18n);
    const i18n = new VueI18n({
      locale: localStorage.lang || "zh",
      messages: {
        en: {
          ...enLocale
        },
        zh: {
          ...zhLocale
        }
      }
    });
    export default i18n;

    i18n 挂载到 vue 根实例

    main.js

    import Vue from "vue";
    import App from "./App.vue";
    import router from "./router";
    import store from "./store";
    import i18n from "./assets/i18n/index";
    
    Vue.config.productionTip = false;
    
    Vue.prototype.$i18n = i18n;
    
    new Vue({
      router,
      store,
      i18n,
      render: h => h(App)
    }).$mount("#app");

    简单的使用

    about.vue

    <template>
      <div class="about">
        <h1>{{ $t("home.helloworld") }}</h1>
        <button @click="changeLang()">切换英文</button>
        <p>{{hi}}</p>
      </div>
    </template>
    
    <script>
    export default {
      data: function() {
        return {};
      },
      computed: {
        hi() {
          return this.$t("home.helloworld");
        }
      },
      methods: {
        changeLang() {
          this.$i18n.locale = "en";
        }
      }
    };
    </script>

    注意:

    比如说上面的hi 你要通过这种形式来写的时候,不能放在data 里面,因为当语言切换的时候 他是不会变的 ,要写在computed内

    此随笔乃本人学习工作记录,如有疑问欢迎在下面评论,转载请标明出处。

    如果对您有帮助请动动鼠标右下方给我来个赞,您的支持是我最大的动力。

  • 相关阅读:
    java创建节点和单向链表
    Java循环链表实现约瑟夫环(搬运)
    java语言建立顺序表
    顺序表删除重复值的高效算法。
    2016.1.29
    IO流学习笔记
    oracle 计算两个时间之间的月份差,相差几个星期,相差多少天
    java中如何计算两个时间段的月份差
    怎样在数据库中插入大量数据
    oracle 定义数据完整性
  • 原文地址:https://www.cnblogs.com/huangenai/p/9766932.html
Copyright © 2020-2023  润新知