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

vue使用vue-i18n实现国际化

我使用的是vue2.6版本,具体使用其他版本可以进行修改

一、安装

npm install vue-i18n -D

二、配置

1、文件配置

①在src下创建 i18n 目录

②在 i18n 目录下创建 langs 文件夹 和 index.js文件,具体如下

2、index.js代码如下,这里使用了较多语言,具体按项目定

import Vue from "vue";
import VueI18n from "vue-i18n";
//引入自定义语言配置
import de from "./langs/de";
import en from "./langs/en";
import es from "./langs/es";
import fr from "./langs/fr";
import jp from "./langs/jp";
import ko from "./langs/ko";
import th from "./langs/th";
import tw from "./langs/tw";
import vi from "./langs/vi";
import zh from "./langs/zh";
Vue.use(VueI18n); // 全局注册国际化包
// 准备翻译的语言环境信息
const i18n = new VueI18n({locale: localStorage.getItem("lang") || "zh", //将语言标识存入localStorage或sessionStorage中,首次默认中文显示,非首次则以localStorage为准messages: {de,en,es,fr,jp,ko,th,tw,vi,zh},silentTranslationWarn: true, //解决vue-i18n黄色警告"value of key 'xxx' is not a string"和"cannot translate the value of keypath 'xxx'.use the value of keypath as default",可忽略globalInjection: true, // 全局注入fallbackLocale: "zh", // 指定的locale没有找到对应的资源或当前语种不存在时,默认设置当前语种为中文
});
const temLang = localStorage.getItem("lang");
if (!temLang) {localStorage.setItem('lang', 'zh')
}
export default i18n;

3、zh.js文件实例,其他语言文件按这格式不变

// 中文
export default {loginTitle: "账号登入",registerTitle: "账号注册",loginTip: "欢迎回来!使用您的电子邮箱或手机号登入",registerTip: "使用您的电子邮箱或手机号进行注册",userNamePlc: "请输入账号",userPassPlc: "请输入密码",login: "登入",register: "注册",overtime: "登录超时,请重新登录",loginSuccess: "登入成功",registerSuccess: "注册成功",userNameTip: "请输入账号",userPassTip: "请输入密码",userOldPassTip: "请输入旧密码",userNewPassTip: "请输入新密码",userPassAgainTip: "请再次输入新密码",errorPassTip: "两次密码不一致",userPassSureTip: "请再次输入密码",jumpPageText: "当前页面需要登录查看,请登录",
};

4、为了方便使用,添加了个hooks文件,可以在vue页面引用此文件获取当前语言

// 语言配置
import { ref, computed, getCurrentInstance } from "vue";export function useLang() {const vm = getCurrentInstance();const lang = ref(localStorage.getItem("lang") || "zh");const langList = ref([{label: "English",src: require("../assets/images/lang/en.png"),value: "en",},{label: "简体中文",src: require("../assets/images/lang/zh.png"),value: "zh",},{label: "繁體中文",src: require("../assets/images/lang/tw.png"),value: "tw",},{label: "ไทย",src: require("../assets/images/lang/th.png"),value: "th",},{label: "日本語",src: require("../assets/images/lang/jp.png"),value: "jp",},{label: "Español",src: require("../assets/images/lang/es.png"),value: "es",},{label: "Français",src: require("../assets/images/lang/fr.png"),value: "fr",},{label: "Deutsch",src: require("../assets/images/lang/de.png"),value: "de",},{label: "한국어",src: require("../assets/images/lang/ko.svg"),value: "ko",},{label: "Tiếng Việt",src: require("../assets/images/lang/vi.svg"),value: "vi",},]);// 获取当前语言对象const getLangObject = computed(() => {return langList.value.find((item) => item.value === lang.value);});// 设置语言const setLan = (val) => {localStorage.setItem("lang", val);lang.value = val;vm.proxy.$i18n.locale = val; //切换为英文// location.reload();};return { lang, setLan, langList, getLangObject };
}

 5、main.js配置

import Vue from "vue";
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
import App from "./App.vue";
import router from "./router";
import store from "@/store/index";
import i18n from "./i18n";
import "./permission";
Vue.use(ElementUI);
Vue.use({i18n: (key, value) => i18n.t(key, value),
});
Vue.config.productionTip = false;
new Vue({router,store,i18n,render: (h) => h(App),
}).$mount("#app");

三、使用

1、template模板使用

<template>{{ $t("loginTitle") }}
</template>

2、setup中使用,这里使用的vue2.6,和其他会有些差别

import { getCurrentInstance } from "vue";
const vm = getCurrentInstance();console.log(vm.proxy.$t("loginTitle"))

 3、js文件中使用

import i18n from "./i18n";i18n.t('loginTitle')

相关文章:

vue使用vue-i18n实现国际化

我使用的是vue2.6版本&#xff0c;具体使用其他版本可以进行修改 一、安装 npm install vue-i18n -D 二、配置 1、文件配置 ①在src下创建 i18n 目录 ②在 i18n 目录下创建 langs 文件夹 和 index.js文件&#xff0c;具体如下 2、index.js代码如下&#xff0c;这里使用了…...

微信小程序如何设置左侧导航栏跟随页面滑动

一、使用 scroll-view 组件实现页面滚动 在页面的 wxml 文件中&#xff0c;将需要滚动的内容包裹在scroll - view组件内&#xff0c;例如&#xff1a; <scroll-view scroll-y"true" style"height: 800rpx;"><!-- 这里放置页面的主要内容 -->…...

个人小结(2.0)

离谱&#xff0c;困扰着几周的问题今天偶然发现了解决方法。 问题如下&#xff1a;就是对应的模块引入爆红&#xff0c;但是单击进入引入的文件没有问题 然后它的提示是&#xff1a; 无法找到模块“../views/screen/index.vue”的声明文件。“c:/Users/10834/Desktop/0716_pro…...

探索自动化的魔法:Python中的pyautogui库

文章目录 探索自动化的魔法&#xff1a;Python中的 pyautogui 库背景&#xff1a;为什么选择pyautogui&#xff1f;pyautogui是什么&#xff1f;如何安装pyautogui&#xff1f;五个简单的库函数使用方法场景应用常见Bug及解决方案总结 探索自动化的魔法&#xff1a;Python中的 …...

YOLOv9改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计

一、本文介绍 本文记录的是利用GsConv优化YOLOv9的颈部网络。深度可分离卷积&#xff08;DSC&#xff09;在轻量级模型中被广泛使用&#xff0c;但其在计算过程中会分离输入图像的通道信息&#xff0c;导致特征表示能力明显低于标准卷积&#xff08;SC&#xff09;&#xff0c…...

EasyExcel的基本使用——Java导入Excel数据

使用EasyExcel导入Excel数据有两种方式 无论哪种方式我们都需要建立Excel表格和Java对象的绑定 首先我们需要根据Excel表头定义一个对应的类 excel表示例&#xff1a; 对应的类&#xff1a; 使用ExcelProperty将excel列名和字段名绑定&#xff0c;括号里面填列名 package co…...

Apache Iceberg 试用

启动 spark-sql 因为 iceberg 相关的 jars 已经在 ${SPARK_HOME}/jars 目录&#xff0c;所以不用 --jars 或者 --package 参数。 spark-sql --master local[1] \--conf spark.sql.extensionsorg.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \--conf spar…...

速通汇编(六)认识栈,SS、SP寄存器,push和pop指令的作用

一&#xff0c;栈 &#xff08;一&#xff09;栈的特点 栈是一种具有特殊访问方式的存储空间&#xff0c;特殊在于&#xff0c;进出这块存储空间的数据&#xff0c;“先进后出&#xff0c;后进先出” 由于栈的这个“先进后出”的特点&#xff0c;我们可以利用其来很好的操作内…...

【Python机器学习】NLP信息提取——值得提取的信息

目录 提取GPS信息 提取日期 如下一些关键的定量信息值得“手写”正则表达式&#xff1a; GPS位置&#xff1b;日期&#xff1b;价格&#xff1b;数字。 和上述可以通过正则表达式轻松捕获的信息相比&#xff0c;其他一些重要的自然语言信息需要更复杂的模式&#xff1a; 问…...

代理IP批理检测工具,支持socks5,socks4,http和https代理批量检测是否可用

代理IP批理检测工具,支持socks5,socks4,http和https代理批量检测是否可用 工具使用c编写&#xff1a; 支持ipv4及ipv6代理服务器。 支持http https socks4及socks5代理的批量检测。 支持所有windows版本运行&#xff01; 导入方式支持手工选择文件及拖放文件。 导入格式支持三…...

AI视觉算法盒是什么?如何智能化升级网络摄像机,守护全方位安全

在智能化浪潮席卷全球的今天&#xff0c;以其创新技术引领行业变革&#xff0c;推出的集高效、智能、灵活于一体的AI视觉算法盒。这款革命性的产品&#xff0c;旨在通过智能化升级传统网络摄像机&#xff0c;为各行各业提供前所未有的安全监控与智能分析能力&#xff0c;让安全…...

【Vue】VueRouter路由

系列文章目录 第七章 VueRouter路由 文章目录 系列文章目录第一节&#xff1a;VueRouter基础一、安装&#xff1a;二、基本使用&#xff1a;1. 创建路由代码&#xff1a;Single Page Application&#xff1a;SPA2. 使用路由3. 展示路由&#xff1a; 二、嵌套路由三、路由传参1…...

idea多模块启动

文章目录 idea多模块启动2018版本的idea2019版本的idea idea多模块启动 2018版本的idea 1.首先看一下view> Tool Windows下有没有Run Dashboard 如果有&#xff0c;点击一下底部的窗口就会出现 如果不存在&#xff0c;执行下一步 2.查看自己项目的工作空间位置 点击 File&…...

23:SPI二:W25Q64存储器模块的使用

W25Q64存储器模块的使用 1、W25Q64的简介2、模块内部结构2.1&#xff1a;引脚结构2.2&#xff1a;内部存储结构2.3&#xff1a;此模块的注意事项 3、程序模拟SPI读写W25Q644、片上外设SPI读写W25Q64 1、W25Q64的简介 其中最主要的特点就是掉电不丢失。 由上图所示&#xff1a…...

论文解读《COMMA: Co-articulated Multi-Modal Learning》

系列文章目录 文章目录 系列文章目录论文细节理解1. 研究背景2. 论文贡献3. 方法框架4. 研究思路5. 实验6. 限制结论 论文细节理解 这段话中&#xff0c;the vision branch is uni-directionally influenced by the text branch only 什么意思&#xff1f;具体举例一下 以下是…...

10款电脑加密软件超好用推荐|2024年常用电脑加密软件排行榜

随着数据隐私和信息安全意识的增强&#xff0c;电脑加密软件已成为日常工作和个人生活中不可或缺的工具之一。无论是保护公司机密文件&#xff0c;还是保障个人数据的安全&#xff0c;合适的加密软件都能提供强有力的保护。本文将推荐2024年超好用的10款电脑加密软件&#xff0…...

用户态缓存:环形缓冲区(Ring Buffer)

目录 环形缓冲区&#xff08;Ring Buffer&#xff09;简介 为什么选择环形缓冲区&#xff1f; 代码解析 1. 头文件与类型定义 1.1 头文件保护符 1.2 包含必要的标准库 1.3 类型定义 2. 环形缓冲区结构体 2.1 结构体成员解释 3. 辅助宏与内联函数 3.1 min 宏 3.2 is…...

Harmony应用 ArkTs AES 加密方法之GCM对称加密

加解密介绍 在数据存储或传输场景中&#xff0c;可以使用加解密操作用于保证数据的机密性&#xff0c;防止敏感数据泄露。 使用加解密操作中&#xff0c;典型的场景有&#xff1a; 使用对称密钥的加解密操作。 使用非对称密钥的加解密操作。 使用RSA&#xff08;PKCS1_OAEP…...

热成像在战场上的具体作用!!!

1. 探测和跟踪敌人 原理&#xff1a;人体和许多类型的军事设备都会发热&#xff0c;热成像技术通过探测这些红外辐射&#xff0c;能够在远距离探测和跟踪敌人的位置。 应用场景&#xff1a;这一功能在夜间或有覆盖物&#xff08;如草丛、树林&#xff09;的情况下尤为有效&am…...

2024年09月20日《每日一练》

1、 根据我国“十三五”规划纲要&#xff0c;&#xff08;&#xff09;不属于新一代信息技术产业创新发展的重点。 A 人工智能 B 移动智能终端 C 先进传感器 D 4G D P13 此题考察的是新一代信息技术&#xff0c;必须掌握&#xff0c;高频考点 国在“十三五“规划纲要中&#x…...

使用 SSCB 保护现代高压直流系统的优势

在各种应用中&#xff0c;系统效率和功率密度不断提高&#xff0c;这导致了更高的直流系统电压。然而&#xff0c;传统的电路保护解决方案不足以在保持高可靠性和安全性的同时有效保护这些高压配电系统。 固态断路器 &#xff08;SSCB&#xff09; 和电熔断器具有众多优点&…...

Linux基础命令——文件系统的日常管理

目录 一.如何查看当前工作目录?&#xff08;你现在所处的位置路径&#xff09; 二.命令touch的用途是什么?还有别的方法新建文件吗? &#xff08;1&#xff09;创建空文件 &#xff08;2&#xff09;如果已经存在这个文件&#xff0c;就会更新创建时间。 &#xff08;3…...

uniapp使用高德地图设置marker标记点,后续根据接口数据改变某个marker标记点,动态更新

最近写的一个功能属实把我难倒了,刚开始我请求一次数据获取所有标记点,然后设置到地图上,然后后面根据socket传来的数据对这些标记点实时更新,改变标记点的图片或者文字, 1:第一个想法是直接全量替换,事实证明这样不行,会很卡顿,有明显闪烁感,如果标记点比较少,就十几个可以用…...

坦白了,因为这个我直接爱上了 FreeBuds 6i

上个月&#xff0c;华为发布的 FreeBuds 6i 联名了泡泡玛特真的超级惊艳&#xff0c;不少宝子被这款耳机的颜值所吸引&#xff0c;而它的实力更是不容小觑的。FreeBuds 6i 是一款性能强大的降噪耳机&#xff0c;它一直在强调平均降噪深度&#xff0c;但是应该很多人对这个概念很…...

006.MySQL_查询数据

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…...

【C#生态园】从图像到视觉:Emgu.CV、AForge.NET、OpenCvSharp 全面解析

C#图像处理库大比拼&#xff1a;功能对比、安装配置、API概览 前言 图像处理和计算机视觉在现代软件开发中扮演着重要角色&#xff0c;而C#作为一种流行的编程语言&#xff0c;拥有许多优秀的图像处理库。本文将介绍几个用于C#的图像处理和计算机视觉库&#xff0c;包括Image…...

1、无线通信的发展概况

无线通信是指双方至少一方使用无线方式进行信息的交换与传输&#xff0c;包括移动体&#xff08;行人、车辆、船舶以及飞机&#xff09;和移动体之间的通信&#xff0c;也包括移动体与固定点&#xff08;固定点的移动电台或有线通信&#xff09;之间的通信。 随着无线通信的范围…...

虚拟机安装xubuntu

新建一个新的虚拟机&#xff0c;选择自定义安装 默认下一步 选择稍后安装操作系统 选择所要创建的系统及版本 填写虚拟机的名称及创建的虚拟机保存的位置 选择处理器和内核的数量 处理器数量指的是&#xff1a;虚拟的CPU数量。 每个处理器的内核数量指的是&#xff1a;虚拟CPU…...

携手鲲鹏,长亮科技加速银行核心系统升级

新经济周期下&#xff0c;银行净息差持续收窄、盈利压力加大、市场竞争日趋加剧。同时&#xff0c;国家相关政策不断出台&#xff0c;对金融科技的自主创新与安全可控提出了更高要求。 在这样的大背景下&#xff0c;银行业的数字化转型已经步入深水区。其中&#xff0c;核心系统…...

新鲜的Win11/10镜像,全系列下载!

下载&#xff1a;新鲜的Win11/10镜像&#xff0c;全系列下载&#xff01; | 瑆箫博客 Windows每个月都来一次例行更新&#xff0c;大吉大利今晚装机&#xff01;2024年9月份ISO镜像&#xff0c;来咯~我们不生产系统&#xff0c;我们只是大自然微软的搬运工本文提供Windows11、…...