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 相关文章推荐
新浪中用来显示flash的函数
Apr 02 Javascript
JS简单实现文件上传实例代码(无需插件)
Nov 15 Javascript
js简单实现用户注册信息的校验代码
Nov 15 Javascript
javascript获取dom的下一个节点方法
Sep 05 Javascript
AngularJS身份验证的方法
Feb 17 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
Bootstrap3学习笔记(二)之排版
May 20 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
JavaScript如何把两个数组对象合并过程解析
Oct 10 Javascript
js+css3实现炫酷时钟
Aug 18 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
转PHP手册及PHP编程标准
2006/12/17 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
Python中atexit模块的基本使用示例
2015/07/08 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
高中毕业生自我鉴定范文
2013/09/26 职场文书
超市重阳节活动方案
2014/02/10 职场文书
心理健康日活动总结
2014/05/08 职场文书
留学推荐信范文
2014/05/10 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
秦兵马俑导游词
2015/02/02 职场文书
出纳试用期自我评价
2015/03/10 职场文书
小学课改工作总结
2015/08/13 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang