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 相关文章推荐
javascript 动态添加事件代码
Nov 30 Javascript
JQuery 表单中textarea字数限制实现代码
Dec 07 Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
Sep 02 Javascript
javascript操作css属性
Dec 30 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
浅析node.js中close事件
Nov 26 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
深入剖析JavaScript面向对象编程
Jul 12 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
Mar 01 Javascript
Vue Echarts实现可视化世界地图代码实例
May 07 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 中的一些经验积累
2006/10/09 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
删除数组元素实用的PHP数组函数
2008/08/18 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
php单一接口的实现方法
2015/06/20 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
JavaScript的漂亮的代码片段
2013/06/05 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
python改变日志(logging)存放位置的示例
2014/03/27 Python
python计算N天之后日期的方法
2015/03/31 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
函数指针的定义是什么
2016/08/14 面试题
质量工程师岗位职责
2013/11/16 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
瘦西湖导游词
2015/02/03 职场文书
开除员工通知
2015/04/22 职场文书