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 相关文章推荐
js 获取子节点函数 (兼容FF与IE)
Apr 18 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
jQuery实现表格元素动态创建功能
Jan 09 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
bootstrap弹出层的多种触发方式
May 10 Javascript
微信小程序开发之map地图实现教程
Jun 08 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 Javascript
Vue父子组件传值的一些坑
Sep 16 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版 汉字转码的实现详解
2013/06/09 PHP
浅谈php调用python文件
2019/03/29 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
Vue实现购物车场景下的应用
2017/11/27 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
Python 初始化多维数组代码
2008/09/06 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
会计电算化专业毕业生推荐信
2013/12/24 职场文书
代理班主任的自我评价
2014/02/04 职场文书
医院总经理岗位职责
2014/02/04 职场文书
酒店员工检讨书
2014/02/18 职场文书
2014迎新年晚会策划方案
2014/02/23 职场文书
文明寄语大全
2014/04/11 职场文书
小学生综合素质评语
2014/04/23 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
浅谈Python数学建模之数据导入
2021/06/23 Python