Vue国际化处理-i18n

发布时间:2026/10/2 6:58:16

Vue国际化处理-i18n Vue3 vue-i18n 国际化项目完整总结一、项目目标实现网站中英文切换全局所有组件文字同步更新不需要刷新页面语言翻译文本抽离独立文件方便维护适合多页面首页、文章列表、商品列表、详情页项目。二、技术栈Vue3 Vitevue-i18n9Vue3 对应的国际化库script setup组合式 API三、核心原理vue-i18n提供$t()翻译函数模板中使用{{ $t(key) }}渲染文字locale是响应式变量修改locale.value页面全部翻译自动更新翻译文案单独抽离存放语言包文件key 一一对应不同语言文本四、项目目录结构最终版src ├─ locales # 语言包文件夹 │ ├─ zh.js # 中文语言包 │ └─ en.js # 英文语言包 ├─ router # 路由 ├─ views # 页面组件 │ ├─ ArticleList.vue │ ├─ GoodsList.vue │ └─ ... ├─ App.vue # 根组件放置导航栏语言切换下拉框 └─ main.js # 入口文件注册i18n五、关键代码1. 语言包文件src/locales/zh.jsexport default { home: 首页, articleList: 文章列表, articleDetail: 文章详情, goodsList: 商品列表, goodsDetail: 商品详情, goodsTitle: 商品列表页面, goodsDesc: 这里展示所有在售商品 }src/locales/en.jsexport default { home: Home, articleList: Article List, articleDetail: Article Detail, goodsList: Goods List, goodsDetail: Goods Detail, goodsTitle: Goods List Page, goodsDesc: Show all products on sale }2. main.js 注册 i18nimport { createApp } from vue import App from ./App.vue import router from ./router import { createI18n } from vue-i18n // 引入外部语言包 import zh from ./locales/zh.js import en from ./locales/en.js const i18n createI18n({ legacy: false, // vue3必须关闭legacy模式使用组合式API locale: zh, // 默认加载中文 messages: { zh, en } }) const app createApp(App) app.use(router) app.use(i18n) app.mount(#app)3. App.vue 导航 语言切换下拉框template div div classnav router-link to/{{ $t(home) }}/router-link | router-link to/articlelist{{ $t(articleList) }}/router-link | router-link to/articledetail{{ $t(articleDetail) }}/router-link | router-link to/goodslist{{ $t(goodsList) }}/router-link | router-link to/goodsdetail{{ $t(goodsDetail) }}/router-link !-- 语言切换下拉 -- select v-modellocale changechangeLang stylemargin-left:10px; option valuezh中文/option option valueenEnglish/option /select /div router-view / /div /template script setup import { useI18n } from vue-i18n const { locale } useI18n() const changeLang () { // locale.value 自动修改全局文字响应式更新 } /script4. 子组件示例 GoodsList.vuetemplate div classgoods-list h2{{ $t(goodsTitle) }}/h2 p{{ $t(goodsDesc) }}/p /div /template六、使用规则新增文字流程在zh.js添加 key 中文文本在en.js添加完全相同 key 英文翻译页面模板使用{{ $t(key) }}渲染在script setupJS 代码内获取翻译import { useI18n } from vue-i18n const { t } useI18n() // 需要响应式则搭配 computed import { computed } from vue const text computed(() t(goodsTitle))七、踩坑记录重点❌ 文件名拼写错误zh.js写成zn.jsVite 找不到文件直接报错❌legacy:trueVue3script setup必须设置legacy:false否则useI18n无法使用❌ key 两边语言包不一致只写中文没写英文页面直接显示 key 名称❌ 文件放错目录locales 文件夹必须放在 src 内部不能和 src 同级❌ Windows 隐藏后缀新建文件zh.js实际是zh.js.txt识别失败八、拓展优化方向可选切换语言后把语言选择存入localStorage刷新页面保留上次语言增加更多语言日语、韩语新增对应的语言包文件把下拉框改成按钮切换样式九、项目效果顶部导航下拉选择中英文所有页面文字实时切换无需刷新翻译文案集中管理后续修改文字只需要修改 locales 里的文件不用逐个页面改代码
延伸阅读

更多相关文章

2026/10/2 6:58:16

银河麒麟V10源码编译安装Redis 7.0.14完整指南

前阵子在银河麒麟V10服务器上部署Redis,网上翻了不少帖子,要么直接照搬Ubuntu那套流程,要么写着“亲测可用”结果一跑就崩。折腾了小半天,踩了好几个坑,最后把Redis 7.0.14在银河麒麟上稳定跑了起来。这篇就把整个安装…

2026/10/2 6:58:16

Ubuntu 20.04离线安装NFS服务完整实践指南

1. 为什么离线装NFS不是“多此一举”,而是生产环境的刚需在Ubuntu 20.04上离线安装NFS,很多人第一反应是:“不就是apt install nfs-kernel-server nfs-common两行命令的事?连不上网还装什么?”——这话放在个人笔记本或…

2026/10/2 7:53:18

MTK平台跑Qwen2.5实战:从GGUF到真机推理全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 7:53:18

2025主流AI IDE工具横评:从Cursor到Codex的选型指南

AI IDE 这个赛道,现在平均三个月就要换一次天。去年还觉得 Cursor 是版本答案,今年再看,市面上已经至少有七八个能打的工具在互相卷:Windsurf 改版后走 Agent 路线,Trae 在国内和海外双线推进,OpenAI Codex…

2026/10/2 7:53:18

国产高可靠芯片驻厂烧录零缺陷实战:从设备选型到质量闭环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 7:53:18

一天重启人生:从零开始重新掌控生活的完整操作指南

1. 那个“一天重启一切”的念头,到底在说什么 我试过一百种年度计划,最后让生活真正翻篇的,却是某个普通的周六:从早八点忙到深夜十二点,当天结束时我看着重新变得空荡的桌面、清空了的邮箱和写满未来九十天安排的笔记…

2026/10/2 7:48:18

CLI与MCP:AI Agent工具链的边界划分与混合架构实践

1. 从"CLI 已死"到"CLI 复兴":这场争论到底在吵什么过去一年里,只要你在技术社区里稍微活跃一点,就一定刷到过类似"CLI 要被 MCP 取代了"或者"CLI 才是 AI Agent 的终极形态"这样的标题。我一开始也…

2026/10/1 5:21:14

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/1 17:09:46

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/2 0:02:57

PWN入门:从栈溢出原理到ROP链实战

1. 这不是“学PWN”,是重新理解你每天敲的每一行C代码我第一次在CTF赛场上写出能控制程序流的exp时,手抖得连gdb的c命令都输错三次。那道题只有23行C代码,一个gets()调用,一个printf(),一个return——它甚至没开NX&…

2026/10/2 0:02:57

Windows下cudaMallocHost显存占用之谜:WDDM与TCC模式差异及优化方案

1. 一个反直觉的显存占用现象第一次在 Windows 上看到cudaMallocHost把显存吃掉的时候,我的反应是打开任务管理器反复确认了三遍。明明调用的是主机端锁页内存分配,按 CUDA 文档的说法,这块内存应该落在系统 RAM 里,跟 GPU 的显存…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑