demo 场景需求分析

需求很简单,左上角 ‘’网易云音乐‘’就是一个中英文切换的按钮,点击弹出提示框,确认切换语言后,实现英文版本。 切换成英文版本:

三、实现国际化

1、我们得先有开发环境,先有项目跑起来,我推荐如果是喜欢用 vue 的小伙伴,可以尝试 vue-cli 官方脚手架

2、我们需要安装 vue-i18n, 推荐 npm 包依赖:

$ npm install vue-i18n
复制代码

当然你也可以这样:

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-i18n/dist/vue-i18n.js"></script>
复制代码

3、注入 vue 实例中,项目中实现调用 api 和 模板语法 这边我是顺着使用 npm 安装依赖进行。先在 main.js 中引入 vue-i18n。

import VueI18n from 'vue-i18n'Vue.use(VueI18n) // 通过插件的形式挂载const i18n = new VueI18n({locale: 'zh-CN',    // 语言标识//this.$i18n.locale // 通过切换locale的值来实现语言切换messages: {'zh-CN': require('./common/lang/zh'),   // 中文语言包'en-US': require('./common/lang/en')    // 英文语言包}
})/* eslint-disable no-new */
new Vue({el: '#app',i18n,  // 不要忘记store,router,template: '<App/>',components: { App }
})
复制代码

上面的代码正式将 vue-i18n 引入 vue 项目中,创建一个 i18n 实例对象,方便全局调用。我们通过 this.$i18n.locale 来进行语言的切换,同样的我这边的例子里就是通过点击事件,点击‘’网易云音乐‘’,来触发事件,切换locale 的值。

4、ok, 引入的事情就是这样,那么既然实现国际化,这边简单的是中英文切换,那么自然我们需要中英文两套语言的文件,vue-i18n中相对简单,只需要两个 js 文件,通过 require 的形式引入到 main.js。

en.js 英文语言包:

export const m = { music: 'Music',//网易云音乐findMusic: 'FIND MUSIC',//发现音乐myMusic: 'MY MUSIC',//我的音乐friend: 'FRIEND',//朋友musician: 'MUSICIAN',//音乐人download: 'DOWNLOAD'//下载客户端
}
复制代码

zh.js中文语言包:

export const m = {music: '网易云音乐',findMusic: '发现音乐',myMusic: '我的音乐',friend: '朋友',musician: '音乐人',download: '下载客户端'
}
复制代码

最后我们只需要通过触发事件的形式,来控制 locale 的值,去调用对应的语言包就可以实现国际化。

5、组件中如何去切换 locale 的值,实现语言切换。

locale: 'zh-CN',    // 语言标识messages: {'zh-CN': require('./common/lang/zh'),   // 中文语言包'en-US': require('./common/lang/en')    // 英文语言包}
复制代码

在 main.js 中的代码中,可以看到,当 locale 的值为‘zh-CN’时,版本为中文;当 locale 的值为‘en-US’,版本为英文。当然你也可以换成 zh 和 en,这个不固定,只需要对应上。 好了,现在来看一下,我组件中的一个点击事件中如何进行切换。

/*** 切换语言 */ changeLangEvent() {this.$confirm('确定切换语言吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {if ( this.lang === 'zh-CN' ) {this.lang = 'en-US';this.$i18n.locale = this.lang;//关键语句}else {this.lang = 'zh-CN';this.$i18n.locale = this.lang;//关键语句}}).catch(() => {this.$message({type: 'info',});          });
}
复制代码

这边的重点就是,点出的‘’关键语句‘’:this.$i18n.locale,当你赋值为‘zh-CN’时,导航栏就变成中文;当赋值为 ‘en-US’时,就变成英文。效果图就是文章前面的样子。

6、到这,前端 vue-i18n 国际化插件在 vue-cli 模块化环境中的开发实践就全部完成了。

四、vue-i18n 数据渲染的模板语法

我们知道 vue 中对于文字数据的渲染,有以‘’{{}}‘’或者 v-text、v-html等的形式,同样的使用国际化后,依旧可以沿用,但需要一点修改。 v-text:

<span v-text="$t('m.music')"></span>
{{}}:
<span>{{$t('m.music')}}</span>
复制代码

转载于:https://juejin.im/post/5c13cc0b6fb9a049eb3bd1ba

vue-i18n国际化实例相关推荐

  1. vue i18n 国际化保姆级教程_看不懂自己找原因

    1.国际化介绍 对于一些跨国项目来说,国际化是尤为重要的,那么什么要国际化呢?国际化的意思就是将我们写的项目,能够根据不同国家的语言,进行翻译,进行切换,方便不同国家的客户使用 基本思路如下 ① 定义 ...

  2. vue i18n 国际化 使用方法

    1 先安装 npm install vue-i18n 2  新建文件assets/js/i18n.js 3  引入vue-i18n并注册到vue上 import VueI18n from 'vue-i ...

  3. vue中开发多语言(国际化),vue+i18n(详细教程)

    目录 第一步: 第二步: 第三步: 第四步: 最后: 前言:我们有时候会遇到一个项目需要支持多语言,而用直接翻译的插件时常会导致翻译的结果跟自己预想的有所偏差或者结果太长造成页面结构紊乱而这个时候就需 ...

  4. 【vue-element-admin】4.x 添加 i18n 国际化多语言切换

    花裤衩前辈的vue-element-admin模块在4.x的大版本中去除了对i18n国际化的支持,本次因项目需要,在一个基于 vue-element-admin V4.2.1 版本模板开发的项目中,需 ...

  5. Vue-i18n与Vuex-i18n等vue的国际化方案

    Vue-i18n与Vuex-i18n等国际化方案 文档时间:2021-01-04 vue-i18n和vuex-i18n两者皆为vue项目的国际化方案. 文章目录 Vue-i18n与Vuex-i18n等 ...

  6. vue -- vue-i18n国际化使用简单教程

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 vue-i18n是一个针对于vue的国际化插件,使用非常简单,具体使用方式看我细细道来. 实现方式 这里我们直接讲在实际开 ...

  7. vue项目国际化(使用vue-i18n)

    最近一个优先级高的任务--将之前的vue项目全局国际化,时间紧急虽然付出了较多的努力,但因为不够细心,导致出现单词拼错.翻译缺漏等错误,还有翻译过后因中英文字符长度差异产生的样式问题,上线效果并不理想 ...

  8. vue使用国际化语言包

    1. 下载包 npm install vue-i18n 2. 配置 在main.js文件中加入如下配置 import Vue from 'vue' import App from './App.vue ...

  9. 文件的上传、文件的下载、I18N国际化

    一:文件上传 01.文件上传准备 1):上传控件所在的<form>表单的method,必须POST:因为GET方式的数据大小不能超过2kb,而POST没有大小限制.2):上传控件得使用ty ...

  10. 01.vue的简单实例

    前段框架vue.js非常热门,每个vue应用都是通过创建vue函数创建新的vue实例开始,首先我们来创建一个简单的vue实例 多手动写写代码,你会发现真的很烦躁 <!DOCTYPE html&g ...

最新文章

  1. Lua中的metatable
  2. spring项目链接RabbitMQ集群
  3. java mongodb 插入数据_mongoDB 插入数据 用java实现
  4. 如何升软件开发项目的利润
  5. SpringBoot 上传文件(单个、多个文件)
  6. MYSQL-主键、外键
  7. python常用模块初始
  8. Team Fundation Server 2010 三
  9. 《HTTP权威指南》读书笔记---说明
  10. matlab pr曲线实例,再理解下ROC曲线和PR曲线 | 丕子
  11. codesys file读写配置参数程序
  12. ORACLE DataGuard环境搭建详细步骤(新方法)
  13. CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇
  14. 城乡规划编制单位资质开通申请
  15. 【GANs】将普通图片转换为梵高大作
  16. H5 左右滑屏切页原理
  17. C语言/打印日历,用户输入年分和月份两个变量,系统计算该月份的1号是星期几,并计算该月有多少天。最后打印出该日历。已知:1900年1月1日是星期一
  18. 逆天而行-我们如何在云中发掘僵尸网络
  19. 帝国cms灵动标签调用当前栏目下所有子栏目链接,子栏目名称,子栏目图片
  20. 计算机联锁知识,6502电路动作顺序(计算机联锁基础知识)

热门文章

  1. 源码分析SharePreferences的apply与commit的区别
  2. css涟漪光圈扩散_CSS动画实例:圆的涟漪扩散
  3. python数据分析numpy_Python数据分析之numpy学习
  4. vue中获取url参数
  5. Rad Studio IDE 代码编辑器增强工具 RADSplit
  6. Spring Cloud之网关搭建
  7. 【Beta版本】冲刺-Day6
  8. 解决在vscode使用webpack指令显示“因为在此系统中禁止运行脚本“问题
  9. ASP.NET一般处理程序新建一个方法里使用context.Response.Write的解决方法
  10. 解决Spring boot中读取属性配置文件出现中文乱码的问题