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. Linux磁盘扇区和内存页,技术|检查linux中硬盘损坏的扇区和区块
  3. Flutter开发之Input-TextField-文本输入框(45)
  4. 在Dialog中实现下拉框效果并对下拉框赋自定义的值
  5. camuda流程引擎如此简单(一)
  6. mysql update 多个字段_MySql-笔记
  7. 删除我的电脑里面软件快捷方式
  8. Java集合(8)--集合工具类Collections
  9. Underscore.js
  10. ibatis学习四---执行流程浅析
  11. 如何防止135端口入侵
  12. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验01 顺序程序设计(2021级)
  13. 易基因|ENCODE组蛋白ChIP-seq和转录因子ChIP-seq数据标准及处理流程
  14. keymap 键盘映射工具
  15. 玩转web表单网页快速开发(❤建议收藏❤)
  16. 2017年IT人期末考试卷,能考60分就是自己人!
  17. Ubuntu制作本地源
  18. 量化策略篇:股票多头策略、CTA策略、期权策略
  19. 剖析8B/10B的实现机制
  20. 用Python实现四叉树(quad tree)

热门文章

  1. vue项目中实现H5调取摄像头扫码扫一扫功能+生成可识别的条形码。单纯的h5网页不涉及真机
  2. Popup导致背景变黑色
  3. 网游防沉迷系统 明年有望全行业推行
  4. qduoj 76 映射游戏
  5. 80 关于 VerifyError net.sf.cglib.core.DebuggingClassWriter overrides final method visit
  6. qduoj 一道简单的数据结构题(水题)
  7. 论第三方服务公司的全国经营策略
  8. kernelutil.dll出错如何修复?kernelutil.dll下载地址
  9. 披着transformer皮的CNN:SwinTransformer
  10. 安装 JupyterHub 踩坑指南 —— 如何通过 JupyterHub 实现多用户管理