Vue + Element UI 前端篇(五):国际化实现

Vue + Element UI 实现权限管理系统 前端篇(五):国际化实现 

国际化支持

1.安装依赖

执行以下命令,安装 i18n 依赖。

yarn add vue-i18n

复制代码

$ yarn add vue-i18n
yarn add v1.9.4
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info fsevents@1.2.4: The platform "win32" is incompatible with this module.
info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
[5/5] Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─ vue-i18n@8.0.0
info All dependencies
└─ vue-i18n@8.0.0
Done in 28.19s.

复制代码

2.添加配置

2.1 在 src 下新建 i18n 目录,并创建一个 index.js。

index.js

复制代码

import Vue from 'vue'
import VueI18n from 'vue-i18n'Vue.use(VueI18n)// 注册i18n实例并引入语言文件,文件格式等下解析
const i18n = new VueI18n({locale: 'zh',messages: {'zh': require('@/assets/languages/zh.json'),'en': require('@/assets/languages/en.json')}
})export default i18n

复制代码

2.2 在 assets 目录下面创建连个多语言文件。

zh.json

复制代码

{"common": {"home": "首页","login": "登录","exit": "退出"},"sys": {"userMng": "用户管理","deptMng": "机构管理","roleMng": "角色管理","menuMng": "菜单管理","logMng": "日志管理"}
}

复制代码

en.json

复制代码

{"common": {"home": "Home","login": "Login","exit": "Exit"},"sys": {"userMng": "User Manage","deptMng": "Dept Manage","roleMng": "Role Manage","menuMng": "Menu Manage","logMng": "Log Manage"}
}

复制代码

2.3 在 main.js 中引入 i18n 并注入到 vue 对象中。

复制代码

import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import api from './http/index'
import i18n from './i18n'Vue.config.productionTip = falseVue.use(ElementUI)
Vue.use(api)new Vue({el: '#app',i18n,router,render: h => h(App)
});

复制代码

3.字符引用

在原本使用字符串的地方,引入国际化字符串。

把原本的“用户管理”、“菜单管理”等字符串换成如下格式引入。

 

3.切换菜单

在用户信息前边添加一个用于语言切换的菜单,用于切换不同的语言。

菜单语言切换的时候,修改国际化的设置

4.启动测试

 选择点击切换英文,导航菜单成功切换到英文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/76645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅:百度李彦宏、中科院曾毅入选,《时代周刊》AI最有影响力100人!

2023年9月8日,《时代周刊》发布了“2023年AI领域最有影响力100人” 榜单。 榜单权威吗? 有必要介绍下《时代周刊》。 《Time》(时代周刊),1923年创刊于纽约,是美国公认的最重要的新闻杂志之一。《时代周刊》以报道精彩…

实例 | Python 实现 RSA 加解密

大家好,欢迎来到编程教室 ! 前阵子看到一篇英文文章[1],展示了如何用 Python 来实现 RSA 算法。不太熟悉 RSA 的朋友可以看一下一文搞懂 RSA 算法,里面对什么是 RSA,RSA 的数学原理进行了说明,并举了一个简…

pip和conda的环境管理,二者到底应该如何使用

关于pip与conda是否能混用的问题,Anaconda官方早就给出了回答 先说结论,如果conda和pip在相同环境下掺杂使用,尤其是频繁使用这两个工具进行包的安装,可能会导致环境状态混乱 就像其他包管理器一样,大部分这些问题均…

提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除

文章目录 探索最新AR/VR应用在教育、游戏、医疗等领域的应用教育领域游戏领域医疗领域 深入了解Android内存管理与性能优化的方法与技巧垃圾回收机制内存泄漏使用弱引用避免过度渲染内存优化图像优化延迟加载Android中的调试技术应用程序分析 分享如何提高Android应用的易用性和…

Leetcode算法入门与数组丨1. 数据结构与算法简介

文章目录 前言1 数据结构与算法1.1 数据结构1.2 算法 2 算法复杂度2.1 算法复杂度简介2.2 时间复杂度2.3 空间复杂度 3 总结 前言 Datawhale组队学习丨9月Leetcode算法入门与数组丨打卡笔记 这篇博客以及接下来几篇将会是一个 入门型 的文章,主要是自己学习的一个…

032:vue中三元运算, style、class、type、 event等多种场景示例

第032个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

VR全景广告——实体商家的营销新选择

前几年,大家出行不便,那个时候实体商家整天苦恼于没有客户,没有销量,一直到引入VR全景广告才算是有所好转。随着VR全景技术不断完善,许多行业、领域开始结合VR全景,例如景区、房地产、车企等都会利用VR全景…

CMS-织梦[dede]-通用免登发布插件

CMS-织梦[dede]-通用免登发布插件 1. 织梦通用免登陆发布插件功能说明2. 织梦通用免登陆发布接口使用说明2-1 下载插件2-2 安装插件3 对接火车头等采集工具 3 爬虫【古诗文网】示例[可选]测试火车头入库模型 使用火车头,简数采集器,八爪鱼等文章采集工具…

构造函数注入指定bean名称

配置类 Configuration public class ThreadPoolTaskExecutorConfig {Beanpublic ThreadPoolTaskScheduler syncScheduler() {ThreadPoolTaskScheduler syncScheduler new ThreadPoolTaskScheduler();syncScheduler.setPoolSize(10);syncScheduler.setThreadGroupName("s…

智慧公厕助推城市管理智能化和治理精细化

随着城市化进程的不断加快,城市管理面临着诸多挑战和问题。而智慧公厕作为城市数字化赋能的重要一环,正成为推动城市管理智能化和治理精细化的关键力量。本文将以智慧公厕头部厂家广州中期科技有限公司,所实施大量精品案例项目的实景实图&…

【深度学习】 Python 和 NumPy 系列教程(二):Python基本数据类型:3、字符串(索引、切片、运算、格式化)

目录 一、前言 二、实验环境 三、Python基本数据类型 3. 字符串(Strings) 1. 初始化 2. 索引 3. 切片 4. 运算 a. 拼接运算 b. 复制运算 c. 子串判断 d. 取长度 5. 格式化 a. 使用位置参数 b. 使用关键字参数 c. 使用属性访问 f-string…

计算机毕设之基于Hadoop+springboot的物品租赁系统的设计与实现(前后端分离,内含源码+文档+教程)

该系统基于Hadoop平台,利用Java语言、MySQL数据库,结合目前流行的 B/S架构,将物品租赁管理的各个方面都集中到数据库中,以便于用户的需要。在确保系统稳定的前提下,能够实现多功能模块的设计和应用。该系统由管理员功能…

Mybatis 框架 ( 四 ) QueryWrapper

4.5.Wrapper条件构造器 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 QueryWrapper : Entity 对象封装操作类,不是用lambda语法 UpdateWrapper &am…

android注解之APT和javapoet

前言 前面我们已经讲过注解的基本知识,对于注解还不太了解的,可以去看一下之前的文章, android 注解详解_袁震的博客-CSDN博客。 之前我们在讲注解的时候,提到过APT和JavaPoet,那么什么是APT和JavaPoet呢&#xff1…

【Mysql】Mysql获取排班时间段中的休息时间段方法

在MySQL中,可以使用自连接(self-join)来获取上一条记录的结束时间和下一条记录的开始时间,并将它们组合成一条记录。首先,需要为表创建一个包含记录ID和时间信息的临时表,然后使用自连接获取相邻记录的时间…

【面试经典150 | 数组】移除元素

文章目录 写在前面Tag题目来源题目解读解题思路方法一:原地操作 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等…

【STM32】常用存储器

常用存储器 RAM 存储器 RAM 是“Random Access Memory”的缩写,被译为随机存储器。所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。而RAM可随读取其内部任意地址的数据,时间都是…

若依框架i18n国际化

需求背景 项目需求要做国际化,结果网上找了好几篇文章,没有一个可以一次性搞定,现在这里总结一下。首先,我们分为两部分处理,一个是前端页面的静态文字,这个由前端vue.json自行处理。第二部分就是后端的错…

Qt下SVG格式图片应用

SVG格式图片介绍 svg格式图片又称矢量图,该种格式的图片不同于png等格式的图片,采用的并不是位图的形式来组织图片,而是采用线条等组织图片,svg格式是图片的文件格式是xml,可以通过文件编译器打开查看svg格式内容。 …