vue使用vue-i18n实现国际化的实现代码


Posted in Javascript onApril 08, 2018

需求

公司项目需要国际化,点击按钮切换中文/英文

1、安装

npm install vue-i18n --save

2、注入 vue 实例中,项目中实现调用 api 和 模板语法

import VueI18n from 'vue-i18n'

Vue.use(VueI18n) ;

const i18n = new VueI18n({
  locale: 'zh-CN',  // 语言标识, 通过切换locale的值来实现语言切换,this.$i18n.locale 
  messages: {
   'zh-CN': require('./common/lang/zh'),  // 中文语言包
   'en-US': require('./common/lang/en')  // 英文语言包
  }
})

new Vue({
 el: '#app',
 i18n, // 最后
 router,
 template: '<App/>',
 components: { App }
})

3、对应语言包

zh.js中文语言包:

export const lang = {
 homeOverview:'首页概览',
 firmOverview:'公司概述',
 firmReports:'财务报表',
 firmAppendix:'更多附录',
 firmIndex:'主要财务指标',
 firmAnalysis:'对比分析',
 firmNews:'新闻事件档案',
 firmOther:'其他功能',
}

en.js 英文语言包:

export const lang = {
 homeOverview:'Home overview',
 firmOverview:'firmOverview',
 firmReports:'firmReports',
 firmAppendix:'firmAppendix',
 firmIndex:'firmIndex',
 firmAnalysis:'firmAnalysis',
 firmNews:'firmNews',
 firmOther:'firmOther'
}

4、按钮控制切换语言

this.$i18n.locale,当你赋值为‘zh-CN'时,导航栏就变成中文;当赋值为 ‘en-US'时,就变成英文:

<div class="top_btn" @click="changeLangEvent">中文</div>
changeLangEvent() {
  console.log('changeLangEvent');
  this.$confirm('确定切换语言吗?', '提示', {
   confirmButtonText: '确定',
   cancelButtonText: '取消',
   type: 'warning'
  }).then(() => {
   if ( this.$i18n.locale === 'zh-CN' ) {
    this.$i18n.locale = 'en-US';//关键语句
    console.log('en-US')
   }else {
    this.$i18n.locale = 'zh-CN';//关键语句
    console.log('zh-CN')
   }
  }).catch(() => {
   console.log('catch');
   this.$message({
    type: 'info',
   });
  });
 }

5、模板渲染

静态渲染:

<span v-text="$t('lang .homeOverview')"></span>
<span>{{$t('lang .homeOverview')}}</span>

如果是element-ui 的,在要翻译的前面加上冒号

比如:label="用户姓名" 就改成 :label="$t('order.userName')"

动态渲染:

<span class="el-dropdown-link">{{navCompany}}</span>
 computed:{
   navCompany:function(){
    if(this.nav_company){
     let str = 'lang'+this.nav_company;
     return this.$t(str);
    }
   }
},
    
 <el-submenu
      v-for="(value, title1, one) in navList"
      :key="one+1"
      :index="(one+1).toString()">

   <template slot="title">
    <router-link :to="linkList[title1]">{{ getTitle(title1) }}</router-link>
   </template>
       
</el-submenu>

methods: {
  getTitle(title){
    let str = 'lang.'+title;
    return this.$t(str);
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
div层的移动及性能优化
Nov 16 Javascript
html中的input标签的checked属性jquery判断代码
Sep 19 Javascript
如何将JS的变量值传递给ASP变量
Dec 10 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
jQuery的ready方法详解
Nov 27 Javascript
javascript中返回顶部按钮的实现
May 05 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
May 05 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
解决vue build打包之后首页白屏的问题
Mar 06 Javascript
JS使用setInterval实现的简单计时器功能示例
Apr 19 Javascript
Node.js API详解之 tty功能与用法实例分析
Apr 27 Javascript
Vue中的无限加载vue-infinite-loading的方法
Apr 08 #Javascript
vue-infinite-loading2.0 中文文档详解
Apr 08 #Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
Apr 08 #Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
Apr 08 #Javascript
Js面试算法详解
Apr 08 #Javascript
JS简单获取并修改input文本框内容的方法示例
Apr 08 #Javascript
详解vue表单——小白速看
Apr 08 #Javascript
You might like
php事务处理实例详解
2014/07/11 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
两种php实现图片上传的方法
2016/01/22 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
python实现查询IP地址所在地
2015/03/29 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
英国日常交易网站:Wowcher
2018/09/04 全球购物
毕业生个人投资创业计划书
2014/01/04 职场文书
迎新晚会主持词
2014/03/24 职场文书
投资意向书
2014/07/30 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
班主任寄语2015
2015/02/26 职场文书
电视新闻稿
2015/07/17 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
常用的Python代码调试工具总结
2021/06/23 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android
VUE递归树形实现多级列表
2022/07/15 Vue.js