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

Vue3 国际化i18n

国际化i18n方案

  • 1. 什么是i18n
  • 2. i18n安装、配置及使用
    • 2.1 安装
    • 2.2 配置
    • 2.3 挂载到实例
    • 2.4 组件中使用
    • 2.5 语言切换

1. 什么是i18n

i18n 是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无需做大的改变就能够适应不同的语言和地区的需要。

对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。

在全球化的时代,国际化尤为重要,因为产品的潜在用户可能来自世界的各个角落。通常与i18n相关的还有L10n(“本地化”的简称)。

2. i18n安装、配置及使用

2.1 安装

npm i vue-i18n

2.2 配置

在这里插入图片描述
langs存放各语言文件

en.js

export default {messages:{home:'home',login:'login',userName:'userName',index:'index',monitor:'monitor',order:'order',census:'census',switchLanguage:'switchLanguage',date:'date',name:'name',address:'address'}
}

tc.js

export default {messages:{home:'首頁',login:'登錄',userName:'用戶名',index:'首頁',monitor:'數據監控',order:'訂單信息',census:'統計管理',switchLanguage:'切換語言',date:'日期',name:'姓名',address:'地址'}
}

zh.js

export default {messages:{home:'首页',login:'登录',userName:'用户名',index:'首页',monitor:'数据监控',order:'订单信息',census:'统计管理',switchLanguage:'切换语言',date:'日期',name:'姓名',address:'地址'}
}

message.js

//语言包
import zh from './langs/zh'
import en from './langs/en'
import tc from './langs/tc' //繁体export default { //语言包zh,en,tc
}

index.js

import { createI18n } from 'vue-i18n'
import zh from './langs/zh'
import en from './langs/en'
import tc from './langs/tc'
const messages = {en,zh,tc
}
const i18n = createI18n({legacy:false,locale:localStorage.getItem('lang') ||'zh',messages
})
export default i18n

2.3 挂载到实例

import { createApp } from 'vue'
import i18n from './locals'
createApp(App).use(i18n).mount("#app")

2.4 组件中使用

<template><div>{{title}}<!-- 二种引入方式 --><div>{{$t('messages.userName')}}</div><div v-t="'messages.userName'"></div></div>
</template>

2.5 语言切换

<script setup>
import { useI18n } from 'vue-i18n'
const { locale } = useI18n();import { ref, reactive } from 'vue'
let title = ref('订单信息');
const langArr = ['home', 'login', 'userName', 'index', 'monitor', 'order', 'census', 'switchLanguage', 'date', 'name', 'address'];
const changeLang = type => {locale.value = type;localStorage.setItem('lang', type)
}
</script><template><ul><li @click="changeLang('zh')">中文</li><li @click="changeLang('en')">英文</li><li @click="changeLang('tc')">繁体</li></ul><ul><li v-for="item in langArr" :key="item">{{ item + ':' }} {{ $t('messages.' + item) }}</li></ul>
</template><style scoped></style>

中文:
在这里插入图片描述
英文:
在这里插入图片描述
繁体:
在这里插入图片描述

相关文章:

Vue3 国际化i18n

国际化i18n方案 1. 什么是i18n2. i18n安装、配置及使用2.1 安装2.2 配置2.3 挂载到实例2.4 组件中使用2.5 语言切换 1. 什么是i18n i18n 是“国际化”的简称。在资讯领域&#xff0c;国际化(i18n)指让产品&#xff08;出版物&#xff0c;软件&#xff0c;硬件等&#xff09;无…...

算法金 | 使用随机森林获取特征重要性

大侠幸会幸会&#xff0c;我是日更万日 算法金&#xff1b;0 基础跨行转算法&#xff0c;国内外多个算法比赛 Top&#xff1b;放弃 BAT Offer&#xff0c;成功上岸 AI 研究院 Leader&#xff1b; <随机森林及其应用领域> 随机森林是一种强大的机器学习算法&#xff0c;其…...

网络安全的重要性

网络安全的重要性 网络安全是指保护网络系统免受未授权的访问、攻击、破坏或未经授权的数据泄露的能力。随着互联网的普及和数字化进程的加速&#xff0c;网络安全问题日益凸显&#xff0c;成为个人、企业和国家必须面对的重要挑战。 网络安全的威胁 网络安全威胁包括黑客攻…...

Leetcode40 无重复组合之和

题目描述&#xff1a; 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 思路分析 这个题是…...

详解MATLAB中处理日期和时间的函数

在MATLAB中处理日期和时间时&#xff0c;可以使用多种函数来进行计时和时间差计算。以下是对一些常用函数的详细解释&#xff1a; 1. tic 和 toc 用途&#xff1a;用来测量一段代码执行的时间。用法&#xff1a;tic; % 启动秒表 % 你的代码 elapsedTime toc; % 停止秒表&…...

Java养老护理助浴陪诊小程序APP源码

&#x1f496;护理助浴陪诊小程序&#x1f496; 一、引言&#xff1a;养老新趋势&#x1f331; 在快节奏的现代生活中&#xff0c;养老问题逐渐成为了社会关注的焦点。如何为老年人提供便捷、贴心的服务&#xff0c;让他们晚年生活更加安心、舒适&#xff0c;是我们每个人都需…...

go的singleFlight学习

Package singleflight provides a duplicate function call suppression mechanism “golang.org/x/sync/singleflight” 原来底层是 waitGroup&#xff0c;我还以为等待的协程主动让出 cpu 了&#xff0c;没想到 waitGroup.Wait() 阻塞了 doCall 不但返回值是 func 的 val 和…...

高电压技术-冲击高压发生器MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 冲击电压发生器是产生冲击电压波的装置&#xff0c;用于检验电力设备耐受大气过电压和操作过电压的绝缘性能&#xff0c;冲击电压发生器能产生标准雷电冲击电压波形&#xff0c;雷电冲击电压截波,标准操作冲击…...

【STM32】SysTick系统滴答定时器

1.SysTick简介 CM4内核的处理和CM3一样&#xff0c;内部都包含了一个SysTick定时器&#xff0c;SysTick 是一个24 位的倒计数定时器&#xff0c;当计到0 时 &#xff0c;将 从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除&#xf…...

编码遵循五大设计原则创建出更加健壮、可维护和可扩展的软件系统

一、单一职责原则&#xff08;SRP&#xff09; * 定义&#xff1a;一个类应该只有一个引起它变化的原因。 * 解释&#xff1a;意味着一个类应该专注于做一件事情&#xff0c;当需求发生变化时&#xff0c;只影响到一个类。这有助于降低类间的耦合&#xff0c;使得代码更易于理…...

记录一个问题

问题描述 如果一个物料既在A总成零件号下计算为托盘库&#xff0c;在B总成零件号下计算为箱库&#xff0c;则放于箱库。 A中选择排名第21的递补进托盘库。&#xff08;也需要判断递补的是否在其他总成零件中为箱库&#xff0c;是的话继续递补判断&#xff09; 解决思路 为了…...

ONLYOFFICE 8.1版本桌面编辑器测评:重塑办公效率的巅峰之作

在数字化办公日益普及的今天&#xff0c;一款高效、便捷且功能强大的桌面编辑器成为了职场人士不可或缺的工具。ONLYOFFICE 8.1版本桌面编辑器凭借其卓越的性能和丰富的功能&#xff0c;成功吸引了众多用户的目光。今天&#xff0c;我们将对ONLYOFFICE 8.1版本桌面编辑器进行全…...

【shell脚本速成】python安装脚本

文章目录 案例需求应用场景解决问题脚本思路案例代码 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xff0c;都沐…...

Redis报错:MISCONF Redis is configured to save RDB snapshots

错误提示内容&#xff1a; 2024-06-25 16:30:49 : Connection: Redis_Server > [runCommand] PING 2024-06-25 16:30:49 : Connection: Redis_Server > Response received : -MISCONF Redis is configured to save RDB snapshots, but it is currently not able to pers…...

关于使用绿联 USB-A转RJ45 2.5G网卡提速的解决问题

问题 网络下载速率低 网线是七类网线&#xff0c;外接的USB网卡驱动 我的自带网卡是 I219v 在嵌入了2.5G网络后一直无法到达1.5G以上。 平均测速300~500M 解决方案 更新了USB的网卡驱动 禁用了 I219-V的驱动。测速即可 USB驱动下载地址 https://download.csdn.net/downlo…...

Qt: QPushButton 按钮实现 上图标下文字

效果如下&#xff1a; 实现有如下几种方式&#xff1a; 1. 使用 QPushButton 设置 setStyleSheet 例&#xff1a; ui->recorder->setStyleSheet("QPushButton{"\"border: 1px solid #00d2ff; "\"min-height: 60px; "\"col…...

使用阿里云效API操作流水线

使用阿里云效&#xff08;Alibaba Cloud DevOps&#xff09;API操作流水线时&#xff0c;需要注意以下几个方面&#xff1a; 认证与授权 确保你已经获取了正确的访问凭证&#xff08;AccessKey ID 和 AccessKey Secret&#xff09;&#xff0c;并且这些凭证具有足够的权限来执行…...

使用命令行创建uniapp+TS项目,使用vscode编辑器

一:如果没有pnpm,先安装pnpm 二:使用npx工具和degit工具从 GitHub 上的 dcloudio/uni-preset-vue 仓库克隆一个名为 vite-ts 的分支,到项目中. 执行完上面命令后,去manifest.json添加appid(自己微信小程序的Id),也可不执行直接下一步,执行pnpm install ,再执行pnpm:dev:mp-weix…...

ABC355 Bingo2

分析&#xff1a; 找出其中一行或列或任意对角线被全部标记&#xff0c;即可输出回合数&#xff0c;否则输出-1 如果x%n0&#xff0c;行是x/n&#xff0c;列是n 如果x%n&#xff01;0&#xff0c;行是x/n1&#xff0c;列是x%n 如果行列或行列n1即为对角线。 标记行列对角线…...

Spring+Vue项目部署

目录 一、需要的资源 二、步骤 1.首先要拥有一个服务器 2.项目准备 vue&#xff1a; 打包: 3.服务器装环境 文件上传 设置application.yml覆盖 添加启动和停止脚本 ​编辑 安装jdk1.8 安装nginx 安装mysql 报错&#xff1a;「ERR」1273-Unknown collation: utf8m…...

StarWind V2V Image Converter实战:轻松将IMG镜像转换为VMware VMDK格式

1. 为什么需要IMG转VMDK&#xff1f; 虚拟机镜像格式转换是IT运维中的常见需求。我遇到过不少这样的情况&#xff1a;手头有一个现成的IMG格式镜像文件&#xff0c;但当前虚拟化环境用的是VMware。这时候就需要把IMG转换成VMware原生支持的VMDK格式。 IMG是一种通用的磁盘镜像格…...

RWKV7-1.5B-G1A入门实战:手把手教你写文案、做总结、玩对话

RWKV7-1.5B-G1A入门实战&#xff1a;手把手教你写文案、做总结、玩对话 1. 认识RWKV7-1.5B-G1A RWKV7-1.5B-G1A是一个基于RWKV-7架构的多语言文本生成模型&#xff0c;特别适合处理基础问答、文案续写、简短总结和轻量中文对话任务。这个1.5B参数的模型在保持良好生成质量的同…...

all-MiniLM-L6-v2保姆级教程:Ollama模型卸载、版本回滚与缓存清理指南

all-MiniLM-L6-v2保姆级教程&#xff1a;Ollama模型卸载、版本回滚与缓存清理指南 1. 为什么需要管理你的Ollama模型&#xff1f; 你可能已经用Ollama成功部署了all-MiniLM-L6-v2&#xff0c;体验了它轻量高效的句子嵌入能力。但用久了你会发现&#xff0c;硬盘空间在悄悄减少&…...

NTP配置避坑指南:华三/华为/思科设备时间同步差异对比

NTP配置避坑指南&#xff1a;华三/华为/思科设备时间同步差异对比 在网络运维中&#xff0c;时间同步是确保日志分析、安全审计和故障排查准确性的基础。不同厂商的设备在NTP配置上存在细微但关键的差异&#xff0c;这些差异往往成为混合环境部署中的"暗坑"。本文将深…...

3分钟掌握Umi-OCR插件:打造你的专属文字识别工具箱

3分钟掌握Umi-OCR插件&#xff1a;打造你的专属文字识别工具箱 【免费下载链接】Umi-OCR_plugins Umi-OCR 插件库 项目地址: https://gitcode.com/gh_mirrors/um/Umi-OCR_plugins 还在为不同场景下的文字识别需求而烦恼吗&#xff1f;Umi-OCR插件库为你提供了完美的解决…...

MAX17332 Arduino库详解:单节锂电池燃料计量与独立充电控制

1. 项目概述 MAX17332 是 Maxim Integrated&#xff08;现为 Analog Devices&#xff09;推出的一款高度集成的单节锂离子/锂聚合物电池管理芯片&#xff0c;专为紧凑型便携设备设计。它并非传统意义上的“纯BMS”&#xff08;Battery Management System&#xff09;&#xff0…...

清单来了:2026最新AI论文网站测评与推荐

2026年真正好用的AI论文网站&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

避坑指南:Dify知识库数据清洗的5个常见错误与正则表达式优化技巧

避坑指南&#xff1a;Dify知识库数据清洗的5个常见错误与正则表达式优化技巧 在企业级知识库构建过程中&#xff0c;数据清洗环节往往成为影响LLM问答质量的关键瓶颈。许多团队投入大量资源进行知识库建设后&#xff0c;仍面临"清洗了数据但召回率低"的困境。本文将揭…...

STM32开发中的C语言高效编程技巧

STM32开发中的C语言高效编程技巧1. 位操作在寄存器控制中的应用1.1 位操作基础在STM32嵌入式开发中&#xff0c;C语言提供了六种基本位操作运算符&#xff1a;&按位与|按位或^按位异或~按位取反<<左移>>右移1.2 寄存器位操作技巧1.2.1 特定位置位/清零// 设置G…...

从零到一:基于LLaMA-Factory的微调实战与核心参数精讲

1. 环境准备与LLaMA-Factory初探 第一次接触LLaMA-Factory时&#xff0c;我对着官方文档发呆了半小时——这个工具链实在太强大了&#xff0c;但新手很容易被各种依赖项劝退。这里分享我的踩坑经验&#xff1a;不要一上来就追求最新版本。去年12月我在RTX 3090上折腾v0.4.0时&a…...