vue 项目中如何实现国际化 vue-i18n

安装

npm install vue-i18n

引入

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

使用

语言包
  • en.js 英文语言包
// json
{"main": {"title": "me"}
}// js
export const main = {title: "me"
}
  • zh.js 中文语言包
//json
{"main": {"title": "我"}
}// js
export const main = {title: "我"
}

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

组件中的一个点击事件进行切换
/*** 切换语言 */ changeLangEvent() {this.$confirm('确定切换语言吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {if ( this.lang === 'zh' ) {this.lang = 'en';this.$i18n.locale = this.lang; // 关键语句}else {this.lang = 'zh';this.$i18n.locale = this.lang; // 关键语句}}).catch(() => {this.$message({type: 'info',});          });
}
  • vue 中对于文字数据的渲染
<span v-text="$t('main.title')"></span>
<span>{{$t('main.title')}}</span>// js 获取
this.$t('main.title')

vue——vue-i18n相关推荐

  1. vue中warning_使用vue的i18n 出现很多warning提示

    问题描述 使用vue的i18n 出现很多warning提示 Module parse failed: Unexpected token (1:10) You may need an appropria ...

  2. vue require css html,requirejs vue vue.router简单框架

    index.html 入口页面html> vue `menu`.`name` base.js requirejs 配置文件(function(){    requirejs.config({   ...

  3. [vue] vue组件里的定时器要怎么销毁?

    [vue] vue组件里的定时器要怎么销毁? const timer = setInterval(() =>{ // 某些定时器操作 }, 500); // 通过$once来监听定时器,在bef ...

  4. [vue] vue组件会在什么时候下被销毁?

    [vue] vue组件会在什么时候下被销毁? 页面关闭.路由跳转.v-if和改变key值 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌 ...

  5. [vue] vue组件里写的原生addEventListeners监听事件,要手动去销毁吗?为什么?

    [vue] vue组件里写的原生addEventListeners监听事件,要手动去销毁吗?为什么? 需要,原生DOM事件必须要手动销毁,否则会造成内存泄漏 个人简介 我是歌谣,欢迎和大家一起交流前后 ...

  6. [vue] vue中什么是递归组件?举个例子说明下?

    [vue] vue中什么是递归组件?举个例子说明下? 组件自己调用自己,场景有用于生成树形结构菜单 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主 ...

  7. [vue] vue的is这个特性你有用过吗?主要用在哪些方面?

    [vue] vue的is这个特性你有用过吗?主要用在哪些方面? vue中is的属性引入是为了解决dom结构中对放入html的元素有限制的问题<ul><li is='my-compon ...

  8. [vue] vue的:class和:style有几种表示方式?

    [vue] vue的:class和:style有几种表示方式? :class 绑定变量 绑定对象 绑定一个数组 绑定三元表达式 :style 绑定变量 绑定对象 绑定函数返回值 绑定三元表达式 个人简 ...

  9. [vue] vue怎么改变插入模板的分隔符?

    [vue] vue怎么改变插入模板的分隔符? optionMergeStrategies类型:{ [key: string]: Function }默认值:{}用法:Vue.config.option ...

  10. [vue] vue如何优化首页的加载速度?

    [vue] vue如何优化首页的加载速度? 补充下2楼: ssr直出, webpack压缩HTML/CSS/JS, 首屏css单独提取内联, 关键资源Proload, 图片:不缩放,使用webp.小图 ...

最新文章

  1. 人是要有一点精神的!
  2. Java数据结构和算法:数组、单链表、双链表
  3. jQuery学习笔记(四)——表单选择
  4. win7计算机右键直接有设备管理器等相关,为什么我的计算机点击右键后里头没有设备管理器了?windows7旗舰版的,不知怎么就不见了...
  5. Java Timer TimerTask示例
  6. linux 用户及用户授权
  7. 计算机教师招聘试题(汇总集合版),计算机教师招聘试题(汇总集合版).doc
  8. 测试狗:Zview软件拟合电化学阻抗谱教程
  9. 西普CTF训练(programe部分分析)
  10. allegro笔记:元件与走线一起移动/板框原点origin设置/放置定位孔封装等到特定坐标
  11. RLC串联谐振那些事
  12. make: 对“all”无需做任何事
  13. Shell 脚本正则表达式(一)
  14. js增加透明css样式,如何配置透明发光的骚气 vscode
  15. Visual Studio 2019 代码显示空格等空白符
  16. 视频编码解码(x264参数)
  17. python安装cv2模块的方法_Python opencv模块cv2安装和部分函数使用
  18. css3 text-overflow制作固定区域的博客列表
  19. java毕业设计大学城水电管理系统mybatis+源码+调试部署+系统+数据库+lw
  20. 百度总裁张亚勤宣布10月退休,李彦宏的人才建设要加紧了...

热门文章

  1. 2017暑假 第一周 学习总结(复习)
  2. vue怎么在标签判断_vue 指令和标签
  3. 我在上海IT运维的日子
  4. 项目三:NLP1(word2vec)
  5. C语言程序——数组(2)
  6. Mysql中rank类的函数用法
  7. gtx1650显卡配置cuda,anaconda,GPU,pytorch运行经验。
  8. iOS 最优无痕埋点方案
  9. 自从拿下我人生中第一个Offer——网易游戏!腾讯,字节,阿里,小米,京东大厂Offer拿到手软!
  10. go-micro集成链路跟踪的方法和中间件原理