用i18n 实现vue2+element UI的国际化多语言切换详细步骤及代码
一、i18n的安装
这个地方要注意自己的vue版本和i1n8的匹配程度,如果是vue2点几,记得安装i18n的@8版本,不然会自动安装的最新版本,后面会报错哦,查询了下资料,好像最新版本是适配的vue3。
npm install vue-i18n@8 --save
二、新建i18n相关文件夹及文件

在src下面新建i18n文件夹,然后在里面新建index.js,里面的内容如下
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import locale from 'element-ui/lib/locale';
Vue.use(VueI18n);
// 引入自定义的各个语言配置文件
import zh from './config/zh';
import en from './config/en';//element-ui自带多语言配置
import zhLocale from 'element-ui/lib/locale/lang/zh-CN';
import enLocale from 'element-ui/lib/locale/lang/en';const messages = {en: {...en,...enLocale},zh: {...zh,...zhLocale},
}
// 创建vue-i18n实例i18n
const i18n = new VueI18n({// 设置默认语言locale: localStorage.getItem('locale') || 'zh', // 语言标识,页面对应显示相同的语言// 添加多语言(每一个语言标示对应一个语言文件)messages:messages,
})
// 非 vue 文件中使用这个方法
const translate = (localeKey) => {const locale = localStorage.getItem("language") || "zh"const hasKey = i18n.te(localeKey, locale) // 使用i18n的 te 方法来检查是否能够匹配到对应键值const translatedStr = i18n.t(localeKey) if (hasKey) {return translatedStr}return localeKey
}locale.i18n((key, value) => i18n.t(key, value)) //为了实现element插件的多语言切换
// 暴露i18n
export {i18n,translate
};
新建i18n文件夹里面新建config文件夹,然后在里面新建en.js和zh.js
en.js代码
const en = {login:{ title:'I am the title',}
}
export default en;
zh.js代码
const zh = {login:{ title:'我是标题',}
}
export default zh;
三、在main.js引入
主要是引入以后要在new Vue的地方加入 i18n,
import {i18n} from './i18n/index.js'; new Vue({el: '#app',i18n, router,store,mounted() {window.isfitVue = this;},components: { App },template: '<App/>'
})
四、功能切换
<template>
<div><el-select v-model="languageValue" @change="changeLanguage" placeholder="请选择"><el-optionv-for="item in languageOptions":key="item.value":label="item.label":value="item.value"></el-option></el-select>
</div>
</template>
<script>
export default {data() {return {languageValue:'',languageOptions:[],}},created() {//最开始请求的时候看缓存是什么状态if(this.$i18n.locale=='zh'){this.languageValue='中文简体';this.languageOptions=[{value:'en',label:'English'}]}else{this.languageValue='English';this.languageOptions=[{value:'zh',label:'中文简体'}]}},methods: {// 多语言切换changeLanguage(type){console.log(type);// 此处做了语言选择记录,存在localStorage中,这里的作用只有一个当我重新请求页面//的时候先取localStorage的记录值localStorage.setItem('locale',type)this.$i18n.locale = type; // 修改页面需要显示的语言if(this.$i18n.locale=='zh'){this.languageValue='中文简体';this.languageOptions=[{value:'en',label:'English'}]}else{this.languageValue='English';this.languageOptions=[{value:'zh',label:'中文简体'}]}},}
}
</script>
五、在vue文件里面的使用
在template中直接使用
<div>{{$t("login.title")}}</div>
//或者
<el-input :placeholder="$t('login.title')" ></el-input>
在script中加上this就行
this.$t('login.title'),
六、在单独的js文件中使用
//导入 ,这里的路径自己找一下自己的文件路径
import { translate as $t } from "../../../../../i18n/index.js"
//使用
name: $t('login.title'),
七、如果需要在js文件中获取当前保存的状态,也就是this.$i18n.locale
//导入,记得切换自己的路径
import { i18n } from "../i18n/index.js"
//使用
console.log(i18n.locale)
if(i18n.locale=='en'){}
八、写在最后
这里面基本都是我使用的时候遇到问题单独去查的资料,但是都写得比较分散,比如我遇到了最开始的安装问题,或者遇到了在js里面使用的问题,又需要去单独的查资料说怎么使用的问题,所以想着说把自己遇到的问题都写成一个合集,希望能帮助到更多跟我一样的小伙伴,最后,如果有帮到您记得留言或点赞哦,会觉得很开心,觉得自己帮助到了人~~
相关文章:
用i18n 实现vue2+element UI的国际化多语言切换详细步骤及代码
一、i18n的安装 这个地方要注意自己的vue版本和i1n8的匹配程度,如果是vue2点几,记得安装i18n的8版本,不然会自动安装的最新版本,后面会报错哦,查询了下资料,好像最新版本是适配的vue3。 npm install vue-…...
Vue3 :Pinia入门
Vue3 :Pinia入门 Date: May 11, 2023 Sum: Pinia概念、实现counter、getters、异步action、storeToRefs保持响应式解构 什么是Pinia Pinia 是 Vue 的专属状态管理库,可以实现跨组件或页面共享状态,是 vuex 状态管理工具的替代品,…...
Java线程池的类型和使用
Java线程池的类型和使用 引言 在并发编程中,线程池是一种非常重要的工具,它可以实现线程的复用,避免频繁地创建新线程,从而提高程序的性能和效率。Java的并发库提供了丰富的线程池功能,本文将介绍Java线程池的类型和…...
QT的信号槽的四种写法和五种链接方式
目录 四种信号槽写法: 五种连接方式: 实例: 常见错误及改正: 错误1: 未连接信号与槽 错误2: 信号和槽参数不匹配 错误3: 未使用Q_OBJECT宏 错误4: 跨线程连接未处理 在Qt中,信号(Signal)…...
Vue+SpringBoot项目开发:后台登陆功能的实现(二)
写在开始:一个搬砖程序员的随缘记录文章目录 一、SpringBoot项目的搭建二、数据库配置1、新建数据库2、新建用户表 三、SpringBoot项目的配置 一、SpringBoot项目的搭建 项目搭建传送门:从零开始,SpringBoot项目快速搭建 二、数据库配置 1、新建数据库…...
arcgis pro 3.0.2 安装及 geemap
arcgis pro 3.0.2 安装及 geemap arcgis pro 3.0.2 安装 arcgis pro 3 版本已经很多了,在网上找到资源就可以进行安装 需要注意的是:有的文件破解文件缺少,导致破解不成功。 能够新建地图就是成功了! geemap安装 1.需要进行环…...
oracle插入多表(insert all/first)
1、建测试表 CREATE TABLE EDW_INT (AGMT_NO VARCHAR2(40 BYTE) NOT NULL,AGMT_SUB_NO VARCHAR2(4 BYTE) NOT NULL,NEED_REPAY_INT NUMBER(22,2),CURR_PERIOD NUMBER(4) NOT NULL ); CREATE TABLE EDW_INT_1 (…...
工业以太网交换机-SCALANCE X200 环网组态
1.概述 SCALANCE X200 系列交换机自从2004年8月推入市场,当时交换机只能接入环网,不能做环网管理器。在各个工业现场得到了广泛的应用。2007年5月发布了X200系列新的硬件版本平台,普通交换机可以用HSR(高速冗余)方法做…...
利用 Splashtop Enterprise 改善公司的网络安全
在我们日益数字化的世界中,对强有力的网络安全措施的需求从未像现在这样迫切。随着组织扩大其数字足迹并采用远程办公解决方案,他们面临着一系列不断变化的挑战。 威胁行为者不断寻找利用漏洞的新方法,这使得企业保持领先地位至关重要。俗话…...
mqbroker.cmd闪退(mqnamesrv.cmd能正常启动)
解决: 用户目录下面store文件(如:C:\Users\Administrator\store或C:\Users\你的用户名\store),删除文件里面所有文件,再次启动即可。...
LeetCode--HOT100题(26)
目录 题目描述:142. 环形链表 II(中等)题目接口解题思路代码 PS: 题目描述:142. 环形链表 II(中等) 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返…...
HTTP 请求方法详解
HTTP 请求方法详解 请求方法 请求方法(Request Methods)是在 HTTP 请求中用于指定对目标资源执行的操作类型。每个请求都需要指定一个请求方法,以告知服务器要执行的操作。 以下是一些常见的 HTTP 请求方法及其主要用途: GET&…...
孤立随机森林(Isolation Forest)(Python实现)
目录 1 简介 2 孤立随机森林算法 2.1 算法概述 2.2 原理介绍 2.3 算法步骤 3 参数讲解 4 Python代码实现 5 结果 1 简介 孤立森林(isolation Forest)是一种高效的异常检测算法,它和随机森林类似,但每次选择划分属性和划…...
小程序如何自定义分享内容
小程序项目中遇到门票转增功能,用户可将自己购买的门票分享给好友,好友成功领取即得门票一张 1.自定义分享按钮 通过button里的open-type属性里的share参数即自可定义分享按钮 <button open-type"share">分享</button>2.配置分…...
SpringBoot整合WebSocket详解
环境:Springboot3.0.5 WebSocket介绍 WebSocket协议RFC 6455提供了一种标准化的方式,通过一个TCP连接在客户端和服务器之间建立全双工、双向的通信通道。它是一个不同于HTTP的TCP协议,但设计为在HTTP之上工作,使用80和443端口&am…...
伪原创神码ai怎么样【php源码】
这篇文章主要介绍了python汉化补丁包下载,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 火车头采集ai伪原创插件截图: ** Spyder汉化(python汉化&…...
Air001基于Keil环境开发,使用airisp串口命令行烧录
Air001基于Keil环境开发,使用airisp串口命令行烧录 有人会有这样的疑惑,使用Keil平台开发,为什么不直接使用CMSIS-DAP直接烧录,还要使用串口方式来去单独烧录,不是我不想,目前使用合宙官方的Air103芯片版本…...
kubernetes 中的事件(event)简介以及如何收集event和基于event告警
引用另外一篇文章对k8s event的介绍 1.什么是kubernetes事件 Kubernetes Events 是一种 Kubernetes 资源对象,记录了某个组件在某个时间做了某个动作,用于展示集群内发生的情况,当 Kubernetes 集群中资源状态发生变化时,可以产生…...
C++小游戏贪吃蛇源码
graphics.h是针对DOS下的一个C语言图形库 (c也可以) 目前支持下载此头文件的常用的有两种: 1. EGE (Easy Graphics Engine)2. EasyX Graphics LibraryEGE, 全名Easy Graphics Engine, 是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C语言新手的图形库…...
【密码学】穴居人密码
穴居人密码 文字记载中,有时会把来自古希腊文化之前的各种记录作为密码学的例子,但称它们为密码学一定太不严格了,这是因为那些方法都太原始了。密码学的起源能追溯到多早,取决于你把密码学的相关定义确定得有多宽泛。大多数作者都…...
OpenCV视频处理核心技术及工程实践指南
1. 图像处理与视频生成的核心逻辑在计算机视觉领域,图像到视频的转换本质上是对时序图像序列的处理过程。OpenCV作为跨平台的计算机视觉库,提供了从基础图像操作到高级视频处理的完整工具链。这个技术栈在安防监控、医学影像分析、工业质检等领域有广泛应…...
【项目实训(个人)】7:完成AI相关的环境配置与AI角色对话功能
阅见项目AI角色对话功能实战:流式输出与上下文记忆的全栈实现 在本阶段的开发中,我们小组大家各自先尝试基本的api调用,理解基本的前后端逻辑,其中在这里,我实现了一个简单的AI角色对话功能的demo,构建了一…...
高效编程实践:用Codex告别重复造轮子
技术文章大纲:告别重复造轮子——Codex写脚本的高效实践核心概念与背景重复造轮子的定义:开发中重复实现已有功能的现象及其效率问题Codex的定位:AI辅助编程工具如何通过自然语言生成代码适用场景:快速原型开发、自动化脚本、代码…...
从CRNN到情感分析:BiLSTM的‘双向’到底在NLP里怎么用?附TensorFlow 2.x实战
从CRNN到情感分析:BiLSTM的双向机制在NLP中的实战解析 当处理序列数据时,传统单向LSTM只能捕捉过去到当前时刻的信息流。想象一下阅读一本书——如果只能从左往右阅读,我们可能会错过某些关键线索;而如果能够同时从右往左阅读&…...
og-aws容器监控终极指南:ECS服务发现与健康检查全解析
og-aws容器监控终极指南:ECS服务发现与健康检查全解析 【免费下载链接】og-aws 📙 Amazon Web Services — a practical guide 项目地址: https://gitcode.com/gh_mirrors/og/og-aws og-aws(GitHub 加速计划)是一份实用的 …...
瑞萨DA14592双核BLE芯片架构与低功耗设计解析
1. 瑞萨DA14592双核BLE芯片深度解析瑞萨电子最新发布的DA14592系统级芯片(SoC)堪称蓝牙低功耗(BLE)领域的里程碑产品。作为从业十余年的嵌入式工程师,我第一时间拿到了开发套件进行实测。这款芯片最令人印象深刻的是其双核架构与超低功耗特性的完美结合——Cortex-M…...
机器学习过拟合问题解析与实战解决方案
1. 机器学习中的过拟合问题解析在机器学习实践中,我们常常会遇到一个令人困惑的现象:模型在训练数据上表现优异,但在实际应用中却差强人意。这种情况十有八九是因为模型出现了过拟合(Overfitting)。作为从业十余年的数…...
抖音视频批量下载器:5分钟解决内容创作者的素材收集难题
抖音视频批量下载器:5分钟解决内容创作者的素材收集难题 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback sup…...
B站缓存视频格式转换终极方案:m4s-converter让你的离线视频重获新生
B站缓存视频格式转换终极方案:m4s-converter让你的离线视频重获新生 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站缓…...
终极指南:3步解锁微信平板模式,轻松实现安卓多设备同时登录
终极指南:3步解锁微信平板模式,轻松实现安卓多设备同时登录 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 你是否厌倦了微信"手机与平板不能同时在线"的烦人限制࿱…...
