zoukankan      html  css  js  c++  java
  • vue-i18n安装配置,运行

    需求:根据浏览器语言自动切换语言

    1.安装vue-i18n,

    yarn安装

    $ yarn add vue-i18n
    

    npm安装

    $ npm install vue-i18n
    

    2.导入语言包

    src下创建lang文件夹,定义zh.js,en.js……

    zh.js

    export default{
        part1 : {
                name:'姓名',
                nation:'地区'
        }
         part2 : {
                gender:'性别'
        }
    }
    

    en.js

    export default{
         part1 : {
                name:'name',
                nation:'nation'
        }
         part2 : {
                gender:'gender'
        }
    }
    

    3.在src下创建一个文件夹tools,

    定义两个文件,一个是i81n.js,一个是lang.js

    4.i18n.js

    import Vue from 'vue';
    import VueI18n from 'vue-i18n';
    Vue.use(VueI18n);
    
    //导入语言包
    import Zh from '../lang/zh.js'; // 中文语言包
    import En from '../lang/en.js'; // 英文语言包
    
    const messages = {
             zh: Zh, // 中文语言包
             en: En, // 英文语言包
    }
    
    export default new VueI18n({
        locale: 'zh', // set locale 默认显示中文
        fallbackLocale: 'en', //如果语言包没有,则默认从英语中抽取
        messages: messages // set locale messages
    });
    

    5.lang.js

    export default function lang() {
        let lang = navigator.language; //浏览器语言判断
        lang = lang.substr(0, 2);
        switch (lang) {
            case 'zh': //中文
                lang = 'zh';
                break;
            case 'en': //英文
                lang = 'en';
                break;
            default:
                lang = 'en';
        }
        return lang;
    }
    
    

    6.main.js中导入i18n.js以及lang.js

    //引入多语言支持
    import i18n from './tools/i18n.js'
    import lang from './tools/lang.js'
    window.lang = lang
    
    new Vue({
      i18n,     //挂载i18n
      router,
      store,
      Axios,
      render: h => h(App)
    }).$mount('#app')
    
    

    7.使用

    挂载到页面

    <p>{{$t('part1.name')}}</p>
    <p>{{$t('part2.gender')}}</p>
    

    js中使用

    document.title = this.$t("part1.nation");
    

    页面使用语言

    created: function() {
        //切换语言
        this.$i18n.locale = lang();
    }
    

    vue-i18n可能出现的问题

  • 相关阅读:
    泛型与非泛型
    C# 调用CMD,执行DOS命令
    数据库设计随笔(ZZ)
    关于三层开发(zz)
    三层架构学习(转)
    Node.js & child_process All In One
    HTML5 Canvas Tag Cloud All In One
    macOS & VSCode terminal show current git branch All In One
    飞书 excel 固定列 All In One
    git diff one of committed file All In One
  • 原文地址:https://www.cnblogs.com/gggggggxin/p/10076152.html
Copyright © 2011-2022 走看看