在Electron-vue-admin的项目中实现国际化的需求时,遇到一个问题,vue-i8n无法在router/index.js的路由菜单配置项内以下面常规的方法实现。

//vue标签内使用(例:)
$t('login.username')
//例子
<el-inputname="password"v-model="loginForm.password":placeholder="$t('login.password')"></el-input>//vue标签包含文本处使用
{{ $t('login.logIn') }}
//例子
<span v-if="!loading">{{ $t('login.logIn') }}</span>//js下各函数方法内引用
this.$t('login.validateUsername')
//例子
const validateUsername = (rule, value, callback) => {if (!value.valueOf("")) {callback(new Error(this.$t('login.validateUsername')));} else {callback();}};

在router中实现国际化, router 和 i18n 是同级的,所以在router中调用this.$t()会报错

经过百度和测试,一下方法是最好最简单的解决方式:

1.首先配置国际化文件夹内的zh.js 和 en.js

 //zh.js
navbar: {dashboard: '主页',set: '设置',logOut: '退出登录',method: '方法',sample: '样品',user: '用户管理',language: '语言',version: '系统版本'},//en.js
navbar: {dashboard: 'Dashboard',set: 'Set Up',logOut: 'Log Out',method: 'Method',sample: 'Sample',user: 'User',language: 'Language',version: 'Version',phone: 'After sales telephone'},

2.在router路由文件夹下的js配置文件内,对应菜单的title位置写入国际化翻译对应的key。

重点注意的是title位置的key需要单引号,便于动态路由页面加载时查找和实时翻译。

export default [{path: '/form',component: Layout,meta: { roles: ['admin','guest'] },children: [{path: 'index',name: '方法',component: () => import('@/views/form/index'),meta: { title: 'navbar.method', icon: 'table' }}]}
]

3.在使用该路由title的地方使用{{$t(item.name)}}进行国际化

<router-link v-else :to="resolvePath(child.path)" :key="child.name"><el-menu-item :index="resolvePath(child.path)"><svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"></svg-icon><span v-if="child.meta&&child.meta.title" slot="title">{{$t(item.meta.title)}}</span></el-menu-item>
</router-link>

Vue-i18n在Routerd动态路由下实现国际化相关推荐

  1. Vue.JS项目中二级路由下刷新浏览器仍呈现当前路由的实现方案

    1.需求介绍: 以下介绍一下实现起来没什么疑问的需求:设备列表为一个主页,点击设备列表中的编辑按钮,进入设备信息主页面,默认打开设备配置页,点击设备状态.设备日志.固件升级,会切换下方内容. 本人对以 ...

  2. VUE动态路由下刷新丢失路由的解决方法

    目前在使用VUE3.X开发,发现加载动态路由的话,由于刷新页面就会重新加载VUEX,故会丢失已存在的state,但是又不想localStorage,sessionStorage. 经过多次试验,采取在 ...

  3. Vue系列vue-router的动态路由使用(二)

    前言 首先我们来看看官方文档上是怎么解释动态路由的?走你 你可以在一个路由中设置多段"路径参数",对应的值都会设置到 $route.params 中.例如: 一.什么场景下使用动态 ...

  4. 十二、Vue项目 - 详情页动态路由、banner布局和公用图片画廊组件拆分

    我是一个小菜鸡啊小菜鸡,但是小菜鸡要继续学新东西啊,新的一周加油吧!!! 文章目录 配置动态路由 banner.vue 公用图片画廊组件拆分 src下新建common文件夹 banner.vue中使用 ...

  5. Vue 权限菜单(动态路由)详解

    今天记录一下Vue的权限菜单(动态路由),在我们写后台的时候用的比较多,Vue的权限菜单分两种,一种是通过本地进行,根据账号的权限进行筛选出可用的权限,组合菜单并在页面上渲染显示,另一种是根据登录的账 ...

  6. vue使用addrouter添加动态路由

    路由拦截beforeEach和addRouter 注意: 1.一定要理解beforeEach(全局的路由守卫,每一次路由执行都会触发)和addRoutes的运行机制,这里容易陷入死循环,所以一定要做好 ...

  7. Vue实现角色权限动态路由详细教程,在vue-admin-template基础上修改,附免费完整项目代码

    前言 vue-admin-template是一个最基础的后台管理模板,只包含了一个后台需要最基础的东西,如果clone的是它的master分支,是没有权限管理的,只有完整版vue-element-ad ...

  8. 动态路由下刷新 页面空白

    前言 最近设计动态路由时,刷新页面空白.突然想起以前笔记里面记录过,翻看了下,今天得空儿分享出来. 问题描述 在全局前置守卫router.beforeEach里面加入动态路由设计时,刷新动态页面,明明 ...

  9. Vue踩坑之二级路由下静态资源加载失败

    在使用vue开发过程中意外发现 , 当我的路由加到二级时我的页面背景突然没了? 这是怎么回事呢? 让我们先来复现一下问题吧 起初我的登陆页面的路由是这样子的 我的背景图片是在外部的一个css中写着的 ...

最新文章

  1. RTX51 tiny系统要注意的问题:(关于时间片)
  2. PMP-【第2章 项目运行环境与项目经理】2021-1-4(49页-60页)
  3. 大数运算(7)——大数阶乘(求阶乘)
  4. LaTeX调整目录的行距
  5. javaWeb项目之图书管理系统(附视频讲解)
  6. 杨森翔的书法-10斗方:杜牧中秋月
  7. 在线思维导图工具-toolfk程序员在线工具网
  8. 面经 | 靠一份PPT做自我介绍,成功拿下了互联网名企offer
  9. MYSQL 数据库的常用语句
  10. 封装日期格式化(dataFormat)
  11. 走进“开源SDR实验室” 一起玩转4G/5G开源项目srsRAN(srsLTE升级版):安装方法+NB-IoT测试
  12. MIPS shellcode
  13. xcode instrument profile的坑
  14. 解决attempted relative import with no known parent package问题
  15. android 常用机型尺寸_Android中图片大小与各种hdpi
  16. 菜鸟到大神的上位历程,即学即用走向人生巅峰
  17. java公社博客_Java面向对象开发学习笔记(二)
  18. ssh免密超级简单复制操作
  19. 线性分类器:Batch Perception+Ho_Kashyap+MSE原理及代码实现
  20. 发布炸弹超人游戏(C语言游戏源码)

热门文章

  1. mysql 删除不了数据_MySQL不建议delete删除数据
  2. EasyDSS项目现场环境搭建部署步骤分享
  3. 泛微E9二次开发,用计划任务定时发送邮件提醒
  4. python py文件与pyc文件相互转换
  5. 逻辑回归(Logistic Regression)原理及其应用
  6. 项目maven编译报请使用 -source 7 或更高版本以启用 diamond 运算符错解决办法
  7. 什么是php析构函数,php中析构函数的作用是什么
  8. designer打开报错 qt_无法启动 Maya 集成的 qt designer 的解决方法和原因 以及 中英文切换...
  9. 通过修改Cookie登录后台
  10. 奇偶校验器真值表_8bit奇偶校验器示例