zoukankan      html  css  js  c++  java
  • vue项目中实现多语言切换

    公司项目需要添加多语言切换功能,考虑到是vue2.0项目,采用vue-i18n。不适用第三方,自己写实现,下文也写了。

    一、vue-i18n实现

      1、安装:npm i vue-i18n -save

            安装后:package.json中

            

            再看下node_modules中:

      

     2、main.js主入口引入:

         

    import Vue from 'vue'
    import VueI18n from 'vue-i18n'
    
    Vue.use(VueI18n);
    
    const i18n = new VueI18n({
        locale: 'chs', // 将要切换的语言,可以通过url拼的参数获取,用户行为select选择获取,本地manifest配置获取等,根据场景动态获取
        messages: {
          'chs': require('../../assets/languages/chs.json'),  // 本地资源文件,我这里配2个语言,中文&英文,src下根据个人情况放置
          'en': require('../../assets/languages/en.json')
        }
    });
    
    const app = new Vue({
        el: '#app',
        i18n,
        router,
        store,
        components: { App },
        template: '<App/>,
        mounted: function () {
          console.log('mounted');
        }
    });
    chs.json文件
    // 我分2级,home是页面模块,say是首页内需要的语言包文字内容
    {
    "home": { "say": "你好" } }

      en.json文件类似cha.json  值 你好改成"hello"

     2、vue页面使用:     

    // html中
    <div>{{$t('home.say')}}</div>
    <input type="text" :value="$t('home.say')">
    
    // js中
    
    mounted () {
        let vm = this;
        vm.$t('home.say');
    }

    到这 VueI18n 解决语言包问题结束

    二、本地不用插件实现

    1、新建本地json文件

    // 根据需求,有多少种语言,建多少个json文件
    
    // chs.json文件
    
    {
      "home": {
        "say": "你好"
      }
    }
    
    
    
    // en.json文件
    
    {
      "home": {
        "say": "hello"
      }
    }

    2、main.js主入口引入并注入vue

    // 读取本地json语言包
    const LANGUAGES = {
       chs: require('../../assets/languages/chs.json'),
       en: require('../../assets/languages/en.json')
    }
    
    // 注入vue
    new Vue({
        components: {App},
        template: '<App :LANGUAGES ="LANGUAGES" '/>',
        data: {
           LANGUAGES: LANGUAGES['en'] // en这个值,根据项目情况动态获取
        },
        mounted: function () {
          console.log('mounted');
        }
    });

    3、app.vue使用

    export default {
        data(){
            return {
            }
        },
        props: {
          LANG: Object
        },
        mounted () {
          let vm = this;
          console.log(vm.LANG); // js中使用
        }
    }   
    
    // html中使用
    <div>{{LANG}}</div>
    <input type="text" :value="LANG" />
  • 相关阅读:
    Key-Value Memory Network
    Deep Mask Memory Network with Semantic Dependency and Context Moment for Aspect Level Sentiment Clas
    Deep Memory Network在Aspect Based Sentiment方向上的应用
    Deep Memory Network 深度记忆网络
    Self Attention 自注意力机制
    Attention基本公式及其变种
    *端策略优化算法(PPO)
    Policy Gradient 算法
    一本通 农场派对
    A
  • 原文地址:https://www.cnblogs.com/yangronghai/p/10408201.html
Copyright © 2011-2022 走看看