有关ruoyi 项目菜单框如何设置国际化----附上完整代码

1. i18n的由来

i18n   全称Internationalization,因为单词太长中间18个字母被省略,缩写为18,这样就变成了18n。顾名思义,它是用来提供国际化的

那接下来就讲讲如何在ruoyi 项目里使用:

2. 安装插件

npm install vue-i18n --save

3. 创建文件夹

   在src下创建i18n文件夹,文件夹下面包含en.js,zh.js及index.js

其中index.js用于设置国际化的配置

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie'
import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang导入Element的语言包 英文
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang g导入Element的语言包 中文
import enLocale from './en' // 导入项目中用到的英文语言包
import zhLocale from './zh'// 导入项目中用到的中文语言包
Vue.use(VueI18n)
const messages = {                   en: {...enLocale,...elementEnLocale},zh: {...zhLocale,...elementZhLocale,},}const i18n = new VueI18n({locale: localStorage.getItem('language') || 'zh', // 设置当前语种,之所以放到storage中是为了避免用户手动点击刷新页面时语言被自动切换回去,所以需要把语言存起来messages, // 设置全局当地语言包,fallbackLocale: 'zh', //如果当前语种不存在时,默认设置当前语种numberFormats:{ //设置 数字本地化'en': {currency: { //添加 $style: 'currency', currency: 'USD'}},'zh': {currency: { //添加 ¥style: 'currency', currency: 'JPY', currencyDisplay: 'symbol'}}},dateTimeFormats:{//设置 日期时间本地化'en': {short: { year: 'numeric', month: 'short', day: 'numeric'},long: {year: 'numeric', month: 'short', day: 'numeric',weekday: 'short', hour: 'numeric', minute: 'numeric'}},'zh': {short: {year: 'numeric', month: 'short', day: 'numeric'},long: {year: 'numeric', month: 'short', day: 'numeric',weekday: 'short', hour: 'numeric', minute: 'numeric'  }}}
})export default i18n

en.js :英文语言包

export default {common: {username: '用户名',password: '密码',save: '保存',edit: '编辑',update: '更新',delete: '删除',forever: '永久',expired: '过期'},menus:{首页:"home page",用户管理:"user manage"},search:"search"
}

cn.js:中文语言包

export default {common: {username: '用户名',password: '密码',save: '保存',edit: '编辑',update: '更新',delete: '删除',forever: '永久',expired: '过期'},menus:{首页:"home page",用户管理:"user manage"},search:"搜索"
}

这里的menus:是用于上方menutitle这块,先找了两个菜单测试一下

4. 菜单栏页面增加国际化

改动如下

添加对应的方法:

   this.$te是Vue的内置方法,用于检查是否存在指定的翻译键

   this.$t是Vue的内置方法,用于获取指定翻译键对应的翻译文本

   return item: 如果不存在翻译键,那么返回原始的item

   这个方法是根据传入的item参数,检查是否存在对应的翻译文本,并返回翻译文本或原始的item。用于实现多语言的菜单标题翻译功能

5. 增加语言切换按钮

vue页面:

       <el-select style="width: 100%" @change="changeLanguage" v-model="lang"><el-option v-for="lan in langList":key="lan.value":label="lan.label":value="lan.value"></el-option></el-select>

对应的数据:

  data(){return {lang: "cn",langList: [{label: "中文",value: "zh"},{label: "English",value: "en"}],}},

对应的方法:

  methods: {changeLanguage(event){i18n.locale= event // 改变为中文localStorage.setItem('language',event)//在localStorage中存入设置},

这样就实现了语言的切换

6. 按钮国际化

   如果是按钮或者是其他内容又该如何修改,这种情况就更简单了,可以看到,我在前面的语言包里增加了搜索,为的就是修改搜索按钮,只要在页面上做如下修改即可

  这里说明一下,search是我们在语言包里设置的共通名,this.$t是Vue的内置方法,用于获取指定翻译键对应的翻译文本。

  这样就修改好了

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

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

相关文章

Linux第1步_VMware软件安装

1、双击“VMware-workstation-full-15.5.0-14665864”&#xff0c;得到下面的界面&#xff1a; 2、等待几分钟&#xff0c;得到下面的界面&#xff1a; 3、点击“下一步” 4、勾选“我接受许可协议中的条款(A)”&#xff0c;见下图&#xff1a; 5、点击“下一步”&#xff0c;得…

DataGridView密码列

想用DataGridView来显示密码&#xff0c;但又不要那么容易就显示出来&#xff0c;只有选中该密码列的单元格时才显示密码&#xff0c;不选中时则不显示&#xff0c;搜索一圈&#xff0c;发现都是采用EditingControlShowing、CellFormatting的&#xff0c;而且那些办法完全没有意…

Qt/C++编写视频监控系统82-自定义音柱显示

一、前言 通过音柱控件实时展示当前播放的声音产生的振幅的大小&#xff0c;得益于音频播放组件内置了音频振幅的计算&#xff0c;可以动态开启和关闭&#xff0c;开启后会对发送过来的要播放的声音数据&#xff0c;进行运算得到当前这个音频数据的振幅&#xff0c;类似于分贝…

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频,详细介绍了 Oracle 代码生成

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频&#xff0c;详细介绍了 Oracle 代码生成 Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频。详细介绍了 Oracle 代码生成。即生成后端数据库为 Oracle 的 golang web 代码。并同时生…

hotspot源码角度看OOP之类属性的底层实现

问题分析 在计算机的世界里&#xff0c;一个问题的解决方案永远不止一种。但是取舍过后&#xff0c;最合适的只剩唯一。当然&#xff0c;你能想到的解决方案的多少&#xff0c;与你对这个问题的理解程度是息息相关的。对于一个问题的理解程度&#xff0c;与你的技术视野紧密不可…

一文读懂Solana 上最正统的铭文通证$mash

早在 2023 年的 11 月&#xff0c;包括 Solana、Avalanche、Polygon、Arbitrum、zkSync 等生态正在承接比特币铭文生态外溢的价值。当然&#xff0c;因铭文赛道过于火爆&#xff0c;当 Avalanche、BNB Chain 以及 Polygon 等链上 Gas 飙升至极值&#xff0c;Arbitrum、zkSync 等…

linux创建pyspark虚拟环境

一、创建虚拟环境 conda create -n test python3.6.6 二、注意添加镜像 vi /root/.condarc channels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- http://mirrors.ustc.edu.cn/anaconda/pkgs/ma…

你的第一个C/S程序

目录 socket服务端代码客户端代码执行结果 socket socket基础知识 服务端代码 import socket import threading import timeMSG_LENGTH 64 DISCONNECTED !CONNECTION CLOSED connections 0#定义服务器地址 server_ip socket.gethostbyname(socket.gethostname()) server…

【金猿CIO展】现代咨询CIO崔恩博:数字化转型,CIO不仅要懂技术和业务,更要“懂人”...

‍ 崔恩博 本文由现代咨询CIO崔恩博撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 最近几年&#xff0c;大数据行业的发展备受关注&#xff0c;尤其是2019年以后&#xff0c;随着企业…

leetcode13 罗马数字转整数

题目描述&#xff1a;罗马数字由七种字符组成&#xff0c;分别为 I、V、X、L、C、D 和 M&#xff0c;对应的数值分别为 1、5、10、50、100、500 和 1000。在一般情况下&#xff0c;小的数字位于大的数字右边&#xff0c;但有特殊情况&#xff0c;如 IV 表示 4&#xff0c;IX 表…

【Mybatis系列】Mybatis判断问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Android studio BottomNavigationView 应用设计

一、新建Bottom Navigation Activity项目&#xff1a; 二、修改bottom_nav_menu.xml: <itemandroid:id"id/navigation_beijing"android:icon"drawable/ic_beijing_24dp"android:title"string/title_beijing" /><itemandroid:id"i…