Vue i18n 中英文切换

21 篇文章 1 订阅
17 篇文章 1 订阅

最近做的vue项目要实现国际化语言,自己琢磨看文档写出了一个简单的不能再简单的demo,供大家参考!

注:vue-cli项目

1. npm安装

    npm install vue-i18n --save

2. i18n使用,在项目入口文件 main.js 中引入  

    import VueI18n from 'vue-i18n';

   在 src 目录下创建一个 language 的文件夹,里面建两个 js

    import en from './language/en';        // 引入en.js 英文内容

    import cn from './language/cn';         // 引入cn.js 中文内容

    Vue.use(VueI18n)

    const i18n = new VueI18n({

        locale: 'cn',    // 语言标识        

        messages: {

             'cn' : require('./language/cn');

             'en' : require('./language/en');

            }

        })

    vue实例中引入

    new Vue({

        el: '#app',

        router,

        i18n,

        render: h => h(APP)

    })

3. cn.jsen.js 内容

    cn.js

module.exports = {
   navList:{
    solution: 'Solution',
    product: 'Product',
    place:'请输入搜索内容'
  }
}
 

    en.js

module.exports = {
   navList:{
    solution: 'Solution',
    product: 'Product',
    place:'Please enter the search content'
  }
}

4. 页面中使用

    <div class="con">{{ $t('navList.solution') }}</div>

    <div class="box">{{ $t('navList.product') }}</div>

     //input框中 placeholder 的写法  

    <input type="text" :placeholder="$t('navList.place')">

5. data中定义的字段翻译

 rules:{
      name:' cannot be empty'
  }

rules: {name: [{ required: true, message: this.$t('rules.name'), trigger: 'change' }]}

6. 页面中英文切换(需要写点击事件

   tabCn: function(){
          this.$i18n.locale = 'cn'
   },

   tabEn: function(){
          this.$i18n.locale = 'en'
   }

如果大家有更好的方法,欢迎留言讨论

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值