当前位置: 首页 > news >正文

一分钟上手Vue VueI18n Internationalization(i18n)多国语言系统开发、国际化、中英文语言切换!

这里以Vue2为例子

第一步:安装vue-i18n

npm install vue-i18n@8.26.5

第二步:在src下创建js文件夹,继续创建language文件夹

在language文件夹里面创建zh.js、en.js、index.js这仨文件

这仨文件代码分别如下:

zh.js

export default {word1: "中国必然崛起!",word2: "中文是伟大的语言",
}

小技巧Tip:还可以用对象的方式加入语言内容,譬如
word:{
    label1: "中国必然崛起!",
    label2: "中文是伟大的语言",
}

在调用的时候就用$t('word.label1')、$t('word.label1')就可以了,这样更加方便归类同一个栏目菜单下的词汇变量

en.js

export default {word1: "China is NB!",word2: "Chinese is great language",
}

 index.js

import Vue from 'vue'; import VueI18n from 'vue-i18n';//npm install vue-i18n@8.26.5
Vue.use(VueI18n);
//引入国际化变量文件
import zh from './zh';//中文
import en from './en';//英语
// ...可以按照上面的方式,继续添加其他语言
let messages = { zh, en, };
let defaultLang = 'zh';//默认是中文
Object.keys(messages).includes(localStorage.language) || (localStorage.language = defaultLang);
let locale = localStorage.language;
export default { locale, messages, defaultLang };

第三步:在main.js文件里面引入i18n

// 【多国语言】----------------------------------------------------------------
import i18n from './language';//引入多语言配置文件index.js//【初始化加载】----------------------------------------------------------------
import App from '../vue/App';
new Vue({el: '#app',render: h => h(App),router,store: vuex,i18n, //把i18n挂载在全局上
});

第四步:应用文件

<template><div><h1>{{ $t('word1') }}</h1><h2>{{ $t('word2') }}</h2><hr><el-button @click="changeLanguage('zh')" v-if="this.$i18n.locale !== 'zh'" type="success">中文</el-button><el-button @click="changeLanguage('en')" v-if="this.$i18n.locale !== 'en'" type="danger">英文</el-button></div>
</template>
<script>
import i18n from '@/js/language';//引入多语言配置文件index.js
export default {created() {this.addEvents();},methods: {changeLanguage(curLang) {Object.keys(i18n.messages).includes(curLang) || (curLang = i18n.defaultLang);this.$i18n.locale = curLang;localStorage.language = curLang;},addEvents(d) {this.removeEvents();addEventListener('storage', this.storage);},removeEvents(d) {removeEventListener('storage', this.storage);},storage(e) {e.key === 'language' && this.changeLanguage(e.newValue);// 监听手工修改localStorage.language;},}
};
</script> 

相关文章:

一分钟上手Vue VueI18n Internationalization(i18n)多国语言系统开发、国际化、中英文语言切换!

这里以Vue2为例子 第一步&#xff1a;安装vue-i18n npm install vue-i18n8.26.5 第二步&#xff1a;在src下创建js文件夹&#xff0c;继续创建language文件夹 在language文件夹里面创建zh.js、en.js、index.js这仨文件 这仨文件代码分别如下&#xff1a; zh.js export de…...

stm32 cubemx can通讯(1)回环模式

文章目录 前言一、cubemx配置二、代码1.过滤器的配置&#xff08;后续会介绍&#xff09;2.main.c3.主循环 总结 前言 介绍使用stm32cubemx来配置can&#xff0c;本节讲解一个简答&#xff0c;不需要stm32的can和外部连接&#xff0c;直接可以用于验证的回环模式。 所谓回环模…...

Python基础小项目

今天给大家写一期特别基础的Python小项目&#xff0c;欢迎大家支持&#xff0c;并给出自己的完善修改 &#xff08;因为我写的都是很基础的&#xff0c;运行速率不是很好的 目录 1. 地铁票价题目程序源码运行截图 2. 购物车题目程序源码运行截图 3. 名片管理器题目程序源码运行…...

Python Opencv实践 - 在图像上绘制图形

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png") print(img.shape)plt.imshow(img[:,:,::-1])#画直线 #cv.line(img,start,end,color,thickness) #参考资料&#xff1a;https://blog.csdn.ne…...

管理者应该编码,但不是在工作时

管理者应该编码吗?这个问题似乎没有一个明确的答案。这场辩论有支持者也有反对者&#xff0c;每一方都有自己的论点。我最近在工作中编写了一个副业项目&#xff0c;这让我重新评估了我在这个问题上的立场。经历了这些之后&#xff0c;我可以说&#xff0c;我的立场已经从管理…...

深度学习常用的python库学习笔记

文章目录 数据分析四剑客Numpyndarray数组和标量之间的运算基本的索引和切片数学和统计方法线性代数 PandasMatplotlibPIL 数据分析四剑客 Numpy Numpy中文网 ndarray 数组和标量之间的运算 基本的索引和切片 数学和统计方法 线性代数 Pandas Pandas中文网 Matplotlib Mat…...

C语言属刷题训练【第八天】

文章目录 &#x1fa97;1、如下程序的运行结果是&#xff08; &#xff09;&#x1f4bb;2、若有定义&#xff1a; int a[2][3]; &#xff0c;以下选项中对 a 数组元素正确引用的是&#xff08; &#xff09;&#x1f9ff;3、在下面的字符数组定义中&#xff0c;哪一个有语法错…...

阿里云PolarDB数据库倚天ARM架构详细介绍

阿里云云原生数据库PolarDB MySQL版推出倚天ARM架构&#xff0c;倚天ARM架构规格相比X86架构规格最高降价45%&#xff0c;PolarDB针对自研倚天芯片&#xff0c;从芯片到数据库内核全链路优化&#xff0c;助力企业降本增效。基于阿里云自研的倚天服务器&#xff0c;同时在数据库…...

pytest 编写规范

一、pytest 编写规范 1、介绍 pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要特点有以下几点&#xff1a; 1、简单灵活&#xff0c;容易上手&#xff0c;文档丰富&#xff1b;2、支持参数化&#xff0c;可以细粒度地控制要测试的测试用例&#xff1b;3、能够…...

Vue.use和vue.component的区别

Vue.use 注册全局插件vue.use时会将自动将开发者 vue构造函数传入插件,vue.use参数必须是function或者object,object中必须有install方法vue.use会自动判断当前插件时候已经被注册过了,防止重复注册 Vue.component 注册全局组件 为什么有了Vue.component还要用Vue.use呢 V…...

张驰咨询:提高企业竞争力,六西格玛设计公司(DFSS)在行动

六西格玛设计公司(DFSS)是一种专业从事六西格玛设计的企业&#xff0c;其主要作用是为客户提供高效的六西格玛设计服务&#xff0c;以帮助客户实现高品质、低成本和高效率的产品开发过程。六西格玛设计公司通常拥有一支专业的团队&#xff0c;具有丰富的六西格玛设计经验和技术…...

影响 40% 用户,Ubuntu 发行版被曝 2 个安全漏洞

导读近日消息&#xff0c;Wiz 的研究专家 S. Tzadik 和 S. Tamari 近日在 Ubuntu 系统中发现了 2 个安全漏洞&#xff0c;可以提升本地权限&#xff0c;预估影响 40% 的 Ubuntu 用户。 根据博文内容&#xff0c;汇总两个漏洞内容如下&#xff1a; 追踪编号&#xff1a;CVE-202…...

SpringCache的介绍和入门案例

文章目录 概述常用注解入门案例 概述 Spring Cache是Spring框架提供的一个缓存抽象层&#xff0c;用于在应用程序中实现缓存的功能。它通过在方法执行前检查缓存中是否已经存在所需数据&#xff0c;如果存在则直接返回缓存中的数据&#xff0c;如果不存在则执行方法体&#xf…...

闪马智能又上榜!

近日&#xff0c;上海市经济和信息化委员会公布了2023年度上半年&#xff08;第30批&#xff09;市级企业技术中心拟认定企业名单。凭借在技术创新方面的突出成就&#xff0c;闪马智能上榜其中。 本次认定由上海市经济和信息化委员会组织开展&#xff0c;综合企业的地位和作用、…...

C++中的四种类型转换(Type Casting)方式

在C中&#xff0c;有四种常见的类型转换&#xff08;Type Casting&#xff09;方式&#xff0c;它们分别是&#xff1a; 一、静态转换&#xff08;Static Cast&#xff09;&#xff1a; static_cast是最常见的类型转换方式&#xff0c;用于基本数据类型的转换、非多态类型之间…...

Linux系列:从0到1用Docker部署springboot项目

目录 1.前提条件 2.编写DockerFile镜像文件 3.打包SpringBoot项目 4.通过软件Xftp进行传输&#xff08;*&#xff09; 1.点击“文件-新建”​编辑 5.操作远程主机 1.docker构建 2.容器运行 6.容器的关闭和删除 1.前提条件 Linux、docker、xftp的安装、一台可以访问的远…...

zabbix监控mysql数据库、nginx、Tomcat

文章目录 一.zabbix监控mysql数据库1.环境规划2.zabbix-server安装部署&#xff08;192.168.198.17&#xff09;3.zabbix-mysql安装部署&#xff08;192.168.198.15&#xff09;3.1 部署 zabbix 客户端3.2 服务端验证 zabbix-agent2 的连通性&#xff08;192.168.198.17&#x…...

深入探索二叉树算法:理解、构建和应用C语言

引言 二叉树是计算机科学中的一种重要数据结构&#xff0c;它在各种算法和应用中都扮演着重要角色。本篇博客将带您深入探索二叉树的世界&#xff0c;从基本概念到高级应用&#xff0c;逐步展开二叉树的奥秘&#xff0c;助您更好地理解、构建和应用二叉树算法。 什么是二叉树…...

(css)点击前隐藏icon图表 点击后显示

(css)点击前隐藏icon图表 点击后显示 效果 html <liv-for"(item,index) in sessionList":key"index"class"liClass":class"{ active: change2 index }"tabindex"2">...<el-tooltip class"item" effec…...

Tomcat的动静分离以及多实例部署

一、动静分离 Nginx实现负载均衡的原理&#xff1a; Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端&#xff0c;Tomcat服务器作为后端&#xff0c;web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发&#xff0c;而是将静态页面请求Ncinx服务器自己来处…...

从ATE到PLL:手把手拆解AC Scan测试中那个‘看不见’的高速时钟是怎么来的

从ATE到PLL&#xff1a;手把手拆解AC Scan测试中那个‘看不见’的高速时钟是怎么来的 在芯片测试领域&#xff0c;AC Scan测试就像一场精心编排的芭蕾舞——表面优雅流畅&#xff0c;背后却需要无数精密配合。当工程师面对一个AC Scan测试失败的案例时&#xff0c;往往陷入三难…...

QQ空间历史说说备份终极指南:一键永久保存你的青春记忆

QQ空间历史说说备份终极指南&#xff1a;一键永久保存你的青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾试图找回多年前的QQ空间说说&#xff0c;却发现那些承载青春…...

前端测试:别让bug悄悄溜进你的应用

前端测试&#xff1a;别让bug悄悄溜进你的应用 什么是前端测试&#xff1f; 前端测试是指对前端应用进行测试&#xff0c;确保其功能正常、性能良好、用户体验优秀。别以为测试只是后端的事&#xff0c;前端测试同样重要&#xff0c;否则你的应用就会充满bug。 为什么需要前端测…...

如何用ExifToolGUI解决数字照片元数据管理难题:5个专业工作流优化方案

如何用ExifToolGUI解决数字照片元数据管理难题&#xff1a;5个专业工作流优化方案 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui ExifToolGUI是一款基于ExifTool的图形化元数据管理工具&#xff0c;专为摄…...

JDK 21最新版安装配置全攻略:从Oracle账户获取到环境变量设置(附可用共享账号)

JDK 21高效安装与深度配置实战指南 Java开发环境的搭建是每位开发者入门的必修课&#xff0c;但Oracle官网的账户限制和复杂的配置流程常常让新手望而却步。本文将彻底解决这些问题&#xff0c;不仅提供绕过Oracle登录限制的实用方案&#xff0c;还会深入解析环境变量配置的底层…...

Superset开发环境搭建指南:从零开始本地部署

1. 认识Superset&#xff1a;为什么选择它&#xff1f; Superset是Apache基金会旗下的开源数据可视化工具&#xff0c;用Python编写&#xff0c;基于Flask框架。我第一次接触它是在2018年&#xff0c;当时团队需要替换昂贵的商业BI工具。经过对比测试&#xff0c;Superset的响…...

Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接于

一、环境准备 Free Spire.Doc for Python 是免费 Python 文档处理库&#xff0c;无需依赖 Microsoft Word&#xff0c;支持 Word 文档的创建、编辑、转换等操作&#xff0c;其中内置的 Markdown 解析能力&#xff0c;能高效实现 Markdown 到 Doc/Docx 格式的转换&#xff0c;且…...

等了47年,苹果这台史上最强电脑,真的要逆天了!

嘿&#xff0c;距离 2026 年 6 月的 WWDC 开发者大会只剩不到两个月了&#xff0c;你准备好了吗&#xff1f;我桌上这台 M2 Pro Mac mini 已经勤勤恳恳服役了三年。但根据最新的风声&#xff0c;苹果即将在 6 月发布搭载 M5 Max 和 M5 Ultra 芯片的 Mac Studio。随着 Mac Pro 逐…...

SAP财务数据一致性检查:手把手教你用ABAP程序自动修复ACDOCA表异常

SAP财务数据一致性检查&#xff1a;手把手教你用ABAP程序自动修复ACDOCA表异常 在SAP财务模块的日常运维中&#xff0c;ACDOCA表作为新总账(New GL)的核心表&#xff0c;承载着所有财务凭证的明细数据。然而在实际操作中&#xff0c;我们经常会遇到ACDOCA表与BSEG表数据不一致的…...

COSEM/DLMS协议栈解析:从对象模型到APDU的通信之旅

1. 从电表读数看COSEM/DLMS协议栈 想象一下这样的场景&#xff1a;你拿着手机APP查看家里电表的实时用电量&#xff0c;这个看似简单的操作背后&#xff0c;其实隐藏着一套精密的通信协议体系。这就是我们今天要拆解的COSEM/DLMS协议栈&#xff0c;它就像电能计量领域的"普…...