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

VUE3多国语言切换(国际化)

  • 安装
# 用npm安装(推荐)
npm install vue-i18n@9# 用yarn安装
yarn add vue-i18n@9
  • 参考

其中有些错误。

Vue3国际化全攻略:从安装到多语言切换,让你的应用秒变国际范!_vue3 国际化-CSDN博客

  • 相关文件

src/i18n/locale/en.json

{"i18n.password": "password",
}

src/i18n/locale/zh.json

{"i18n.password": "密码",
}

src/i18n/index.ts

import { createI18n } from 'vue-i18n'
import zh from './locale/zh.json'
import en from './locale/en.json'const messages = {'en' : en,'zh' : zh,
}// 导出语言选项(用于下拉菜单)
export const LANGUAGE_OPTIONS = [{ label: '中文',    value: 'zh' },{ label: 'English', value: 'en' }
]export const DEFAULT_LANGUAGE   = 'zh';
export const SAVED_LANGUAGE_KEY = 'selected_language';export const SAVED_LANGUAGE = (localStorage.getItem(SAVED_LANGUAGE_KEY) || navigator.language.split('-')[0] || DEFAULT_LANGUAGE);const i18n = createI18n({locale: SAVED_LANGUAGE,fallbackLocale: DEFAULT_LANGUAGE, // 设置备用语言messages,legacy: false
})export default i18n

main.ts

import { createApp } from 'vue'
import App from './App.vue'
import i18n from './i18n'const app = createApp(App)app.use(i18n).mount('#app')
  • 登录界面前部分
<template><div><j-form-item:label="$t('i18n.password')"name="password" ><j-input-password:maxlength="64" ></j-input-password>
</j-form-item><j-form-item><select v-model="currentLang" @change="changeLangEvent"><option v-for="lang in LANGUAGE_OPTIONS" :value="lang.value" >{{ lang.label }}</option></select>
</j-form-item></div>
</template>
  • 登录界面后部分
import { useI18n } from 'vue-i18n';
import { SAVED_LANGUAGE, SAVED_LANGUAGE_KEY, LANGUAGE_OPTIONS } from '@/i18n/index'const { locale } = useI18n();
const currentLang = SAVED_LANGUAGE;const changeLangEvent = (event) => {locale.value = event.target.value;localStorage.setItem(SAVED_LANGUAGE_KEY, locale.value);
};

至此,可以点击下拉框切换了。

http://www.xdnf.cn/news/97.html

相关文章:

  • 数据结构初阶:二叉树(二)
  • 【MySQL数据库入门到精通】
  • 考研系列-计算机网络-第二章、物理层
  • C++_设计模式\_观察者模式(Observer Pattern)
  • .NET Core 服务实现监控可观测性最佳实践
  • 5.0.2 颜色16进制格式含义 控件template中path的使用
  • 微服务架构基础知识
  • ICPR-2025 | 让机器人在未知环境中 “听懂” 指令精准导航!VLTNet:基于视觉语言推理的零样本目标导航
  • 插入排序和希尔排序
  • R 语言科研绘图 --- 饼状图-汇总
  • 磁流变式汽车减振器创新设计与关键技术研究
  • OpenCV 中的分水岭算法的原理及其应用---图像分割的利器
  • 小红书爬虫,小红书api,小红书数据挖掘
  • 【go】什么是Go语言的GPM模型?工作流程?为什么Go语言中的GMP模型需要有P?
  • 【数据结构与算法】——插入排序
  • 深度监听 ref 和 reactive 的区别详解
  • python面向对象实现学员信息管理系统详解
  • 滑动窗口209. 长度最小的子数组
  • 如何避免被目标网站识别为爬虫?
  • 长亭2月公开赛Web-ssrfme
  • 在没有第三方库的情况下使用 Python 自带函数解码
  • 递归函数详解
  • 力扣刷题-热题100题-第35题(c++、python)
  • StarRocks Community Monthly Newsletter (Mar)
  • nginx-基础知识(一)
  • 深度学习 从入门到精通 day_02
  • 【2025“华中杯”大学生数学建模挑战赛】选题分析 A题 详细解题思路
  • docker占用磁盘100%
  • [MySQL数据库] InnoDB存储引擎(三): 内存结构详解
  • 【Leetcode 每日一题 - 补卡】1534. 统计好三元组