luobiao

在vue项目中利用vue-i18n,我们可以实现多语言的切换,可以轻松搞定大部分的需求,包括中英文切换,以及词条的变更。

vue-i18n基本的使用方法

一、安装vue-i18n

  npm install vue-i18n --save

二、main.js中引用

  import VueI18n from \'vue-i18n\'

  Vue.use(VueI18n)

  const i18n = new VueI18n({
    locale: \'zh\',

    messages: {
      \'zh\': require(\'../static/lang/zh\'),
      \'en\': require(\'../static/lang/en\')
    }
   })

  new Vue({

    el: \'#app\',
    router,
    store,
    i18n,
    components: { App },
    template: \'<App/>\'
  })
上面提到的static/lang/zh.js和static/lang/en.js就是词条文件。

// zh.js module.exports = { helloworld: \'你好,世界\', helloname: \'你好,{name}\'}

// en.js module.exports = { helloworld: \'hello world\', helloname: \'hello {name}\'}

三、模板中使用词条

  3.1、普通词条

  插值表达式中向$t方法传入词条的key值就可以了,例如:<div>普通文本:{{$t(\'helloworld\')}}</div>

  3.2带参数词条

  // 定义词条 helloman: \'hello {name}\'

  // 引用词条 <div>{{$t(\'helloman\', {name: \'Tom\'})}}</div>

  3.3多元化

  // 定义词条iphones: \'{n} iphone5 | iphone6 | iphone7\'

  //引用词条

  <div>Pluralization:{{$tc(\'iphones\', 0, {n: \'3台\'})}}</div>
    // 输出 Pluralization:3台 iphone5
  <div>Pluralization:{{$tc(\'iphones\', 1)}}</div>
    // 输出 Pluralization:iphone6
四、语言切换

 

 

    // 切换成英文 this.$i18n.locale = \'en\'

 

 

  

 

分类:

技术点:

相关文章: