
Hoppscotch 多语言界面实战3 步切换 34 种语言手写新语言包【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem Cloud • Web, Desktop CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotch团队里有人习惯用中文界面写请求有人坚持英文断言同一套请求在两个人眼里文案对不上。Hoppscotch 是开源的 API 开发生态Postman / Insomnia 的开源替代支持 Web、桌面和 CLI内置 34 种界面语言它的多语言靠 locales 目录下的 JSON 语言包驱动本文带你把这套机制从会切用到会改。 本文你将获得3 步切换并固定默认语言弄清它存在哪看懂 34 种语言包的文件结构与注册机制手写一个新语言包并注册进选择器用语言切换 × 环境变量组合做多语言 API 测试排查半英文界面等高频问题多语言能力全景能力点与源码位置能力点典型场景上手难度界面语言切换团队按母语各选各的界面低浏览器语言自动识别首次打开免配置零语言选择持久化下次打开保持上次选择零缺键回退英文某语言没翻译完也不白屏零RTL 从右到左排版阿拉伯语界面整体镜像零手写新语言包 / 运行时扩展译文给仓库补一门语言、自托管端加文案中多语言在 Hoppscotch 里是前端的皮肤层语言文案集中放在 JSON 文件里语言文件就像工具箱上的标签纸贴错了整箱都找不到语言清单注册在一个索引文件里切换和回退逻辑则收敛在一个 i18n 模块中。整体基于 vue-i18n 实现URL 不带语言前缀语言只存在于本地存储里。关键路径如下packages/hoppscotch-common/ ├── locales/ # 每种语言一个 JSON共 34 种 │ ├── en.json # 回退语言fallback │ ├── cn.json # 简体中文 │ └── ... ├── languages.json # 语言注册表code / iso / 名称 / 方向 └── src/ ├── modules/i18n.ts # vue-i18n 初始化、切换与回退逻辑 ├── composables/i18n.ts # 组件内取 t() 函数的入口 └── components/smart/ChangeLanguage.vue # 设置页语言选择器快速上手3 步切换并固定默认语言进入设置页点左侧导航栏最底部的 Settings设置。点开语言选择器设置页顶部的语言按钮显示当前语言名弹出一个带搜索框的语言面板。输入或点选语言列表来自 languages.json 的 34 条注册项直接输入日就能过滤出日本語。即时生效整站文案立刻切换无需刷新选择会写入浏览器本地存储下次打开自动沿用。首次访问免操作如果你从没手动选过语言系统会按浏览器语言自动匹配如zh-CN匹配中文匹配不到则回退英文。⚠️ 语言选择存在浏览器本地存储里键名locale不是网址的一部分。清浏览器数据后语言会重置换浏览器或换设备也要重选一次。深度定制改文案、手写新语言包改现有语言包的文案需源码构建每个语言 JSON 都是模块 → 文案的嵌套结构顶层键对应功能模块。比如想改 cn.json 里取消按钮的叫法{ action: { cancel: 取消操作 } }改完重新构建前端即生效。路径规则和t(action.cancel)这类调用一一对应写文案前先搜一下键名避免改错层。手写新语言包并注册进选择器前提从源码构建git clone https://gitcode.com/GitHub_Trending/ho/hoppscotch后按仓库说明安装依赖并启动。复制 en.json 为locales/kk.json以哈萨克语kk为例逐条翻译。在 languages.json 末尾追加注册项阿拉伯语这类从右到左语言才需要dir: rtl{ code: kk, file: kk.json, iso: kk-KK, name: Қазақ тілі }重新构建新语言即出现在设置页选择器中。另一种不动语言文件的扩展方式i18n 模块 暴露了registerAdditionalMessages其他包可以在运行时往指定语言里合并额外文案自托管版、桌面端就是靠它补充界面词的适合二次开发场景。跨模块联动实战语言切换 × 环境变量场景一界面语言 环境变量模拟不同语言用户场景你的 API 按Accept-Language返回不同文案想固定复现日本用户看到日文错误提示又不想每次都手改请求头。操作新建环境JA添加变量accept_language ja-JP再建一个ZH环境变量值为zh-CN。请求的 Headers 里加一行Key 填Accept-LanguageValue 填{{accept_language}}。界面语言顺手切成日语纯演示用与请求本身无关发送请求。预期结果响应体返回日文文案顶栏切到ZH环境再发一次响应立刻变成中文文案请求头一个字都不用改。场景二桌面端 / 自托管实例多人各选各的互不干扰场景团队共用一个自托管实例有人要中文、有人要英文。操作每人打开桌面端或浏览器各自在设置页选语言。预期结果语言只存在各自浏览器本地服务端不感知也不共享——同一实例上甲看中文、乙看日文互不影响也不需要登录同一账号。社区共建把你的母语补进 34 种里仓库根目录的 TRANSLATIONS.md 写了完整的翻译协作流程先看看是否已有人在为同一语言开 PR然后走复制 en.json → 翻译 → 注册进 languages.json → 提 PR这条线翻译中途也可以先提 PR 求助。发现错别字、措辞别扭直接提一个修正 PR 即可不确定的先提 issue 讨论。欢迎随时来补一条翻译。排障速查半英文界面怎么查现象高频原因处理方式部分文本仍是英文该语言 JSON 缺这个键vue-i18n 自动回退 en属正常兜底把缺键补进对应语言包切换后界面没变浏览器缓存或在无痕/另一浏览器里操作强制刷新语言存本地换环境要重选重启后变回英文清过浏览器数据locale键被删重新手动选一次即恢复记忆界面跟着系统语言变从未手动选过走了navigator.language识别手动选一次后就不再跟随系统选择器里找不到某语言未注册进 languages.json按手写新语言包一节补文件并注册如果补了键还是显示英文多半是键路径写错了一层——先搜t(你的.键名)确认调用路径再回头对 JSON 层级。回到开头的场景开头那个中文界面 英文断言的对不上了界面语言各自切换只花 3 步真正要统一的是断言和变量而那属于请求层的事与界面多语言互不干扰。可以继续往下走的方向给仓库补一门缺失的语言、用registerAdditionalMessages为自己的自托管实例加定制文案、或者配合 CLI 批量跑同一请求在不同Accept-Language下的断言。速查卡项值 / 路径语言注册表packages/hoppscotch-common/languages.json语言文件目录packages/hoppscotch-common/locales/每语言一个 JSON回退语言en缺键时自动显示英文本地存储键locale浏览器本地存储切换入口设置页顶部语言选择器可搜索支持语言数34运行时扩展 APIregisterAdditionalMessages(locale, messages)贡献指南TRANSLATIONS.md【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem Cloud • Web, Desktop CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考