【国际化I18n使用方法】vue2使用i18简单实现多语种切换,刷新保持,动态数据处理

效果图

在这里插入图片描述
在这里插入图片描述

使用流程

总结就是,安装好插件后,配置几个语言的js文件,每个词都要在每个js内写一遍对应的语言,然后通过切换js文件拿到对应的语言,实现翻译的效果。然后当前使用什么语言保存到本地,这样刷新就可以不会变回默认的语言了。

安装插件

npm install vue-i18n
// 或
yarn add vue-i18n

引用

import VueI18n from 'vue-i18n'
Vue.use(VueI18n)

运行时可能会报错

在这里插入图片描述
由于使用的是@vue/cli 4.4.0,安装的vue-i18n版本过高,降低版本即可

npm uninstall vue-i18n
npm install vue-i18n@6

main.js

import Vue from 'vue'
import App from './App.vue'
// i18
import VueI18n from 'vue-i18n'
import i18n from './utils/index'
new Vue({VueI18n,i18n,render: h => h(App),
}).$mount('#app')

utils

结构是这样的
在这里插入图片描述

cn.js

// 创建文件zh/index.js
const zh = {system: "Vue后台管理系统",full: "全屏显示",account: "我的账户",invoice: "原始单据",reconciliation: "财务对账",record: "对账记录",report: "月结报表",setting: "系统设置",login: "登录",tips: "{name} 用户名和密码随便填 {cont}",administrator: "管理员",placeUser: "请输入用户名",palcePass: "请输入密码",palceCode: "请输入验证码",accounts: "账号",password: "密码",code: "验证码"
}
export default zh

en.js

// 创建文件en/index.js
const en = {system: "Background management system",full: "full-screen display",account: "myAccount",invoice: "invoice",reconciliation: "Statement",record: "recording",report: "report",setting: "Settings",login: "login",tips: "{name} Username and password are filled in casually {cont}",administrator: "administrator",placeUser: "please enter user name",palcePass: "Please enter your password",palceCode: "please enter verification code",accounts: "accounts",password: "password",code: "Verification code"
}
export default en

index.js

// src/utils下创建i18n/index.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'// 引入各个语言配置文件
import zh from './lang/cn'
import en from './lang/en'Vue.use(VueI18n)
// 创建vue-i18n实例i18n
const i18n = new VueI18n({// 设置默认语言locale: localStorage.lang || 'zh', // 语言标识// 添加多语言(每一个语言标示对应一个语言文件)messages: {zh,en}
})
// 暴露i18n
export default i18n

页面使用

<template><div class="hello"><div class="test"><div>{{ $t("system") }}</div><button @click="setLanguage()">切换语言</button></div></div>
</template><script>
export default {name: 'HelloWorld',data() {return {language: localStorage.getItem("lang") || "zh"}},methods: {setLanguage() {this.language = this.language === 'zh' ? 'en' : 'zh'this.$i18n.locale = this.languagelocalStorage.setItem("locale", this.language); //保存本地localStorage.setItem("lang", this.language);}}
}
</script>

注意点1:全局刷新保持切换的语言

1,你在某一个设置语言的页面切换语言,然后把切换的比如从zh切换到en。然后把en保存到本地缓存里。
2,然后在src\utils\index.js 文件内,写locale: localStorage.lang || ‘zh’ 。这句话的意思就是有缓存的话拿缓存的语言类型,没有就默认用中文的,然后你就可以全局都刷新保持语言类型了。

注意点2:动态数据如何用i18

1,在你的语言文件内用花括号然后内部用一个变量接收,在你的也没事,调用$t 的时候,第二个参数传一个对象,里面分别是你对应括号内的名字和值就可以实现动态数据
在这里插入图片描述
在这里插入图片描述
这里第二个参数用对象,里面键名需要和js文件里定义的名字一样才行
在这里插入图片描述
页面上的效果
在这里插入图片描述

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

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

相关文章

【进阶篇-Day4:使用JAVA编写石头迷阵游戏】

目录 1、绘制界面2、打乱石头方块3、移动业务4、游戏判定胜利5、统计步数6、重新游戏7、完整代码&#xff1a; 1、绘制界面 上述思路是&#xff1a;使用一个二维数组存放图片的编号&#xff0c;然后在后持遍历即可获取对应的图片。 代码如下&#xff1a; package com.itheima.s…

取代煤气灶,新能源电燃灶真有那么牛吗

在当今社会&#xff0c;能源问题日益凸显&#xff0c;能源危机的警钟不断敲响。与此同时&#xff0c;人们对于生活品质和安全环保的要求也越来越高。在这样的背景下&#xff0c;一种号称能取代燃气灶和电磁炉的新能源电燃灶——华火电燃灶进入了人们的视野。 华火电燃灶的出现似…

SpringBoot整合justauth实现多种方式的第三方登陆

目录 0.准备工作 1.引入依赖 2.yml文件 3. Controller代码 4.效果 参考 0.准备工作 你需要获取三方登陆的client-id和client-secret 以github为例 申请地址&#xff1a;Sign in to GitHub GitHub 1.引入依赖 <?xml version"1.0" encoding"UTF-8&quo…

【SCAU数据挖掘】数据挖掘期末总复习题库简答题及解析——下

1.从某超市顾客中随机抽取5名&#xff0c;他们的购物篮数据的二元0/1表示如下&#xff1a; 顾客号 面包 牛奶 尿布 啤酒 鸡蛋 可乐 1 1 1 0 0 0 0 2 1 0 1 1 1 0 3 0 1 1 1 0 1 4 1 1 1 1 0 0 5 1 1 1 0 0 1 某学生依据这些数据做…

Linux常用命令(16)—awk命令(有相关截图)

写在前面&#xff1a; 最近在学习Linux命令&#xff0c;记录一下学习Linux常用命令的过程&#xff0c;方便以后复习。仅供参考&#xff0c;若有不当的地方&#xff0c;恳请指正。如果对你有帮助&#xff0c;欢迎点赞&#xff0c;关注&#xff0c;收藏&#xff0c;评论&#xf…

Java 10新特性介绍

Java 10是Java平台的一个重要更新&#xff0c;它引入了多项新特性和改进。以下是一些主要的新特性&#xff1a; 局部变量类型推断&#xff08;var关键字&#xff09; Java 10允许使用var关键字来声明局部变量&#xff0c;而无需显式指定变量的类型。编译器会根据变量赋值的上下…

Android获取控件宽高的几种方式

第一种方式&#xff1a;在需要时获取&#xff0c;如控件点击时再获取 button.setOnClickListener(new View.OnClickListener() { Override public void onClick(View v) { getTextWidthAndHeight(); } }); 第二种方式&#xff1a;重写onWindowFocusChanged()方法 Overr…

【机器学习】机器学习赋能交通出行:智能化实践与创新应用探索

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f4d2;1. 引言&#x1f4d9;2. 交通流量预测与优化&#x1f31e;数据准备&#x1f319;模型训练与预测⭐评估模型与优化 &#x…

jsonpath_解析例子代码

# _*_ coding : utf-8 _*_ # Time : 2023-11-05 13:23 # Author : haowen # File : jsonpath_解析_淘票票 # Project : py练习 import urllib.request url https://dianying.taobao.com/cityAction.json?activityId&_ksTS1699161894273_112&jsoncallbackjsonp113&…

网页抓取单词关联

在当今数字化的时代&#xff0c;数据的获取与处理成为了众多企业和开发者关注的焦点。API 服务的出现&#xff0c;为我们打开了高效、便捷获取和利用数据的新大门。接下来&#xff0c;为您介绍几款独具特色的 API 服务&#xff0c;它们将为您的业务和开发工作带来前所未有的便利…

ABB机械手3HAC024518-001电机振动过大维修方案

【ABB机械臂伺服电机维修方案】 1. 更换轴承 如果检查发现轴承磨损&#xff0c;我们需要更换新的轴承。请选择与原轴承型号相同的产品&#xff0c;以确保电机正常运行。 2. 重新平衡转子 如果ABB机械手3HAC024518-001电机转子不平衡&#xff0c;我们需要重新平衡转子。这可以通…

棉花叶子病害分类数据集3601张6类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;3601 分类类别数&#xff1a;6 类别名称:[“aphids”,“army_worm”,“bact…

小熊文件工具箱免费版

小熊文件工具箱是一款基于本地离线操作的一系列工具的合集&#xff0c;最大特点是各种批量任务的执行&#xff0c;包含了智能证件照&#xff0c;自动抠图&#xff0c;直播录制&#xff0c;九宫格切图&#xff0c;拼图&#xff0c;视频格式转换及压缩&#xff0c;zip压缩解压缩&…

Python一文轻松搞定正则匹配

一、前言 日常工作中&#xff0c;不可避免需要进行文件及内容的查找&#xff0c;替换操作&#xff0c;python的正则匹配无疑是专门针对改场景而出现的&#xff0c;灵活地运用可以极大地提高效率&#xff0c;下图是本文内容概览。 ​ 二、正则表达式符号 对于所有的正则匹配表达…

MySQL的DML语句

文章目录 ☃️概述☃️DML☃️添加数据☃️更新和删除数据☃️DML的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言&#xff0c;用来 定义数据库对象&#xff08;数据库、表、字段&#xff09; ● DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改 …

Android系统揭秘(一)-Activity启动流程(上)

public ActivityResult execStartActivity( Context who, IBinder contextThread, IBinder token, Activity target, Intent intent, int requestCode, Bundle options) { IApplicationThread whoThread (IApplicationThread) contextThread; … try { … int result …

TCP 和 UDP 可以同时绑定相同的端口吗?

在网络编程中&#xff0c;TCP和UDP都可以绑定到同一个端口上进行通信。TCP和UDP是OSI模型中的传输层协议&#xff0c;它们分别使用不同的端口号来区分不同的应用程序或服务。 TCP&#xff08;Transmission Control Protocol&#xff09;提供了面向连接的、可靠的传输服务&…

新零售解决方案:线上线下融合,驱动现代商业新浪潮-亿发

在数字化和智能化的商业环境中&#xff0c;新零售正在迅速改变传统的商业模式。作为新时代的零售解决方案&#xff0c;新零售通过线上线下深度结合&#xff0c;为企业提供了更灵活、高效的运营方式。本文将探讨新零售的四大特征&#xff0c;并详细描述其在中小企业中的应用&…

虚拟机没关机,电脑直接关机导致虚拟机无法使用

虚拟机没关机&#xff0c;电脑直接关机导致虚拟机无法使用 虚拟机未正常关机 无法打开虚拟机&#xff0c;移除 删除虚拟机目录下的该文件夹CentOSXX.vmx.lck&#xff08;或者重新命名&#xff09; 虚拟机正常打开

二,SpringFramework

二、SpringFramework实战指南 目录 一、技术体系结构 1.1 总体技术体系1.2 框架概念和理解 二、SpringFramework介绍 2.1 Spring 和 SpringFramework概念2.2 SpringFramework主要功能模块2.3 SpringFramework 主要优势 三、Spring IoC容器和核心概念 3.1 组件和组件管理概念3…