【国际化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…

【设计模式之模板方法模式 -- C++】

模板方法模式 – 抽象父类&#xff0c;子类实现 模板方法设计模式是一种行为设计模式&#xff0c;它在父类中定义了一个操作的算法的骨架&#xff0c;而将一些步骤延迟到子类中实现。这样&#xff0c;可以在不改变算法结构的前提下&#xff0c;重新定义算法的某些特定步骤。模…

vue3父组件获取子组件实例(2024-06-22)

vue3获取子组件实例 在Vue 3中&#xff0c;可以使用ref来获取子组件的实例。首先&#xff0c;在父组件中需要引入ref&#xff0c;然后在模板中通过ref属性为子组件设置一个引用名称。之后&#xff0c;可以在父组件的setup函数中使用refAPI来访问子组件实例。 以下是一个简单的…

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

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

【区分vue2和vue3下的element UI Empty 空状态组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Element UI&#xff08;为 Vue 2 设计&#xff09;和 Element Plus&#xff08;为 Vue 3 设计&#xff09;中&#xff0c;Empty&#xff08;空状态&#xff09;组件通常用于在数据为空或没有内容时向用户展示一种占位提示。然而&#xff0c;需要注意的是&#xff0c;Element…

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…

Gflags的使用

目录 1. gflags 安装 2. gflags 使用 2.1 基本使用方法 2.2 基本使用实例 2.3 放入配置文件中 3. 融入cmakelists中使用 在实际工程代码开发中&#xff0c;发现gflags很好用&#xff0c;可以在运行 1. gflags 安装 gflags的安装使用apt-get install命令安装即可 sudo …

【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 某学生依据这些数据做…

Spring Security6 设置免登录接口地址

1. 在SecurityFilterChain中设置免登录接口地址。如果定义了多个SecurityFilterChain&#xff0c;并且前面的SecurityFilterChain里使用了anyRequest().authenticated()&#xff0c;后面的免登录可能会失效。 Configuration EnableWebSecurity public class SecurityConfig {B…

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

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

tessy 编译错误总结

目录 1,tessy 单元测试 TDE 界面 数据无法填充:the test object interface is incomplete 2,tessy 编译报错:单元测试时,普通桩函数内容相关异常场景 3,tessy 编译报错:模块分析后 头文件 找不到 4,tessy 集成测试:SCE界面component函数太多 5,tessy 编译报错:函…

Java 10新特性介绍

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

non_blocking=True 与 torch.cuda.synchronize()

需要注意的是&#xff1a;GPU和CPU之间是异步执行的&#xff0c;CPU向GPU下达指令以后会立刻执行之后的代码&#xff0c;CPU不会等待GPU执行完成 一、non_blockingTrue 目的&#xff1a;压缩gpu的效果&#xff0c;避免CPU与GPU设备数据传输时间开销带来的计算效率低下 在 P…

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

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

【SQL】varchar 与 char 的区别

在 SQL 中&#xff0c;VARCHAR 和 CHAR 是用于存储字符串类型数据的两种数据类型&#xff0c;但它们在存储方式和性能上有显著的区别。 CHAR 定义: CHAR 是一种固定长度的字符串数据类型。长度: 你需要在定义表结构时指定长度&#xff0c;例如 CHAR(10)。存储方式: 无论实际存…

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

&#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…