Yaak 多语言切换教程:4 个文件给桌面 API 客户端加上中文界面
Yaak 多语言切换教程4 个文件给桌面 API 客户端加上中文界面【免费下载链接】yaakThe most intuitive desktop API client. Organize and execute REST, GraphQL, WebSockets, Server Sent Events, and gRPC 项目地址: https://gitcode.com/GitHub_Trending/ya/yaakYaak 支持 REST、GraphQL、WebSockets、SSE、gRPC 等多种 API 协议但界面默认只有英文仓库里也没有现成的多语言切换入口。这篇教程带你用 4 个文件、约 20 分钟给 Yaak 加上「Yaak 中文界面」和免重启的语言切换能力。先说清楚现状。Yaak 的界面文案目前直接硬编码在各个 React 组件里没有集中的语言资源也没有语言状态。也就是说想做「Yaak 界面本地化」缺的不是翻译工具而是一个让所有文案统一走「查表」机制的出口。方案一共四件事翻译资源文件按语言存放文案的 JSON语言状态一个全局可读、可写、会持久化的语言代码设置页选择器让用户切换语言插件扩展位让第三方插件也能提供各语言文案第一步建好翻译资源文件让文案有统一出口在客户端目录下新增一个locales/目录放语言资源文件en.json、zh-CN.json、zh-TW.json、ja.json、ko.json。key 用分层命名common.send表示「发送」settings.appearance表示「外观」一眼能定位到模块。{ common: { send: 发送, cancel: 取消, save: 保存 }, settings: { general: 常规, appearance: 外观, language: 语言 } }之后把组件里写死的英文比如ButtonSend Request/Button统一换成t(common.sendRequest)这样的查表调用。这一步做完所有界面文案就都从「各写各的」变成「一个地方改」。第二步用 jotai 管理语言状态切换即时生效Yaak 前端已经在用 jotai例如 lib/atoms.ts 里就有 atom加语言状态不需要引新依赖。新建一个原子文件// apps/yaak-client/lib/atoms/language.ts import { atomWithStorage } from jotai/utils; export const languageAtom atomWithStorageen | zh-CN | ja( yaak-language, en ); export const makeT (language: string, dict: Recordstring, string) (key: string) dict[key] ?? key;atomWithStorage把选择写进本地存储下次打开应用语言还在。任何组件只要useAtom(languageAtom)读它语言一变React 自动重渲染——这就是「切换后界面临时跟着变、不用重启」的全部秘密。第三步在设置页加语言选择器并处理 RTL 与系统语言设置页apps/yaak-client/components/Settings/下的 General 页加一个下拉框即可Select labelLanguage / 语言 sizesm value{language} onChange{setLanguage} options{[ { label: English, value: en }, { label: 简体中文, value: zh-CN }, { label: 日本語, value: ja }, ]} /三个容易忽略的细节跟随系统首次启动读navigator.languagezh-TW归繁体其余zh归简体ja、ko直接对应兜底en。右到左排版阿拉伯语、希伯来语等 RTL 语言用document.documentElement.dir rtl翻转整页方向其余语言设回ltr。缺失兜底某语言文件里没翻译的 keymakeT会回退显示英文原文界面不会白屏。第四步给插件系统留多语言扩展位Yaak 的插件类型定义集中在 plugin-runtime-types 包。在插件清单类型里加一个可选字段export interface PluginLocale { en: Recordstring, string; zh-CN?: Recordstring, string; ja?: Recordstring, string; }插件运行时渲染插件自带的文案动作菜单、表单标签时按当前languageAtom的值先查zh-CN没有再回退en。这样「API 客户端如何多语言」就不只是主应用的事社区插件也能各自带翻译互不阻塞。最后怎么验证这套 Yaak 中文界面真的生效按顺序跑一遍全过才算完成默认状态界面应为英文刷新后仍是英文没动过选择的默认值。设置页切到「简体中文」侧边栏、菜单、设置项立即变中文无需重启。关掉应用再打开语言保持中文。把zh-CN.json里随便删一个 key对应位置应回退显示英文而不是空白。装一个带locales字段的插件其菜单文案随语言切换。几点实用建议新增语言只加一个 JSON 文件和下拉框选项不动组件代码文案 key 命名先按模块settings、sidebar再按功能方便社区协作翻译RTL 只影响排版方向不改变请求数据本身不用担心破坏 API 调试功能。【免费下载链接】yaakThe most intuitive desktop API client. Organize and execute REST, GraphQL, WebSockets, Server Sent Events, and gRPC 项目地址: https://gitcode.com/GitHub_Trending/ya/yaak创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

chsrc 的 rawstr4c 配置实战:以 Homebrew 换源 recipe 的 Markdown 模板与 C 字符串生成为例

chsrc 的 rawstr4c 配置实战:以 Homebrew 换源 recipe 的 Markdown 模板与 C 字符串生成为例

CLI开发工具 【免费下载链接】chsrc chsrc 全平台通用换源工具与框架. Change Source everywhere for every software 项目地址: https://gitcode.com/gh_mirrors/ch/chsrc 点击查看 免费下载 本文以 chsrc 仓库中 Homebrew 换源 recipe 的 rawstr4c 输入文档 为核…

2026/10/28 18:15:43 阅读更多 →
AI Agent Skills实战指南:原理、开发与落地

AI Agent Skills实战指南:原理、开发与落地

我接触“skills”这个词,一开始是从Claude的Agent Skills、Codex的skills这类AI能力扩展机制开始的,后来发现GitHub skills、Superpowers这类第三方合集也火得不行,几乎每天都能刷到新的“技能包”。说白了你完全可以把它理解成给AI装上的一套…

2026/11/1 7:27:29 阅读更多 →
为Claude Code赋予持久记忆:claude-mem原理、安装与实战指南

为Claude Code赋予持久记忆:claude-mem原理、安装与实战指南

最近我在重度使用 Claude Code 帮自己写代码,遇到了一个特别拧巴的场景:昨天刚跟它交代清楚的偏好——包管理器用 pnpm、测试走 Vitest、格式化交给 Biome 并且别乱动 import 顺序,今天新开一个终端窗口,它全忘了。这就是无状态会…

2026/11/14 13:21:06 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/15 5:13:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/16 6:41:34 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/15 5:13:35 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/15 3:37:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/15 4:18:38 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/15 5:13:35 阅读更多 →

日新闻

周新闻

月新闻