SystemInformer 多语言界面切换与自定义语言包制作指南
【免费下载链接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ https://windows-internals.com项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer
想用 SystemInformer 却读不懂满屏英文菜单?先说结论:SystemInformer 是一款免费的 Windows 系统资源监控与软件调试工具(还能辅助查杀恶意程序),它的界面文案全部编译在 .rc 资源文件里,不写在 C 代码中。所以"SystemInformer 中文界面"这件事,本质上取决于三样东西:资源文件、语言卫星 DLL、以及 Windows 的区域设置。搞懂这条链路,切换语言、甚至自己动手造一个 SystemInformer 语言包,都不再神秘。
一张图看懂 SystemInformer 的本地化链路
🧭 先看链路再动手。SystemInformer 的界面文本来自 SystemInformer/SystemInformer.rc 里的对话框和菜单定义,目前仓库只打包了英语这一份资源。想看到其他语言,标准做法是按语言各出一份"卫星 DLL"——即一个只装翻译资源的小 DLL,运行时由 Windows 按语言优先级自动挑选:
注意一个前提:命中语言的前提是那个语言的卫星 DLL 存在。官方发布版目前只有英语资源,因此不装语言包、不自己编译,界面就是英文。
三种切换方式怎么选:先对比再动手
🎯 直接上结论,帮你省掉试错成本:
| 切换方式 | 操作成本 | 适用人群 | 是否持久 | 风险 |
|---|---|---|---|---|
| 系统区域自动跟随 | 低(改一次系统设置) | 想让数字/日期也本地化、且已有目标语言包的日常用户 | 持久 | 影响整机所有程序 |
| 手动改配置文件 | 低(写几行 ini) | 只想试水、可接受不生效的用户 | 持久 | 该键无官方文档背书,可能无效(以官方文档/对应版本为准) |
| 自行编译语言包(卫星 DLL) | 高(翻译 + 编译 + 部署) | 想要稳定中文界面的进阶用户、翻译贡献者 | 持久 | 基本无,改动只作用于 SystemInformer |
推荐顺序:先走第一种零成本方案;想要稳定可控的中文界面,直接跳到 进阶:从零编译 SystemInformer 语言包。
上手:三步切换 SystemInformer 中文界面
第 1 步:把系统区域设为中文
- 打开 Windows「设置 → 时间和语言 → 语言和区域」;
- 把「Windows 显示语言」和「格式」都改为「中文(简体,中国)」;
- 按提示注销(部分 Windows 版本需要重启)后重新打开 SystemInformer。
SystemInformer 会读取系统区域来调整数字、日期等格式(对应 phlib/util.c 里的一组 locale 封装),这一步对整台电脑生效。
第 2 步:确认目标语言的资源已就位
- 已装第三方中文语言包?重启即可看到中文界面;
- 没有?界面会按上面的链路图回退英语——此时走手动方案或自己编译。
第 3 步(备选):手动改配置文件
- 完全退出 SystemInformer;
- 编辑配置文件(常见位置
%APPDATA%\SystemInformer\config.ini,以实际版本为准),追加:
[Localization] Language=zh-CN- 重启验证。⚠️ 诚实提醒:这个键在当前仓库源码和文档里查不到对应实现,属于社区经验值,是否生效请以官方文档或你的对应版本为准。
进阶:从零编译 SystemInformer 语言包
🔧 卫星 DLL 的思路是:从上游资源里复制一份英文文案,改写成目标语言,再用资源编译器和链接器产出一个只含资源的小 DLL,运行时按语言加载。四步走完:
1. 复制资源文件
把 SystemInformer/SystemInformer.rc 复制一份,比如命名为SystemInformer.zh-CN.rc。
2. 换语言宏、翻译文案
英文资源由语言宏圈定,中文版把入口改成简体中文(0x0804即 zh-CN),界面可见文本直接写在对话框块里,逐条翻译即可:
#if defined(AFX_TARG_ZHS) LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED CAPTION "进程" PUSHBUTTON "刷新",IDC_REFRESH,53,2,50,143. rc / link 编译出语言 DLL
在"Visual Studio 命令提示"里执行(两条命令各一行,连起来就是最快路径):
rc /l 0x0804 SystemInformer.zh-CN.rc link /DLL /OUT:SystemInformer_zh-CN.dll SystemInformer.zh-CN.res4. 部署并重启
把生成的 DLL 放到 SystemInformer 启动目录的Languages\子目录,重启程序加载。
排障速查:现象 → 原因 → 解法
🩺 出问题时对着这张表自查,十次有九次能命中:
| 现象 | 常见原因 | 解法 |
|---|---|---|
| 放了 DLL 仍是英文 | DLL 与主程序版本不匹配,或文件名/语言 ID 不对 | 核对同版本重新编译;确认rc /l 0x0804与语言宏一致 |
| 部分界面还是英文 | 翻译不完整,未命中的 ID 自动回退英语 | 对照英文版补齐对应文本后重编 |
| 中文变方框/乱码 | 编码或语言标记错误 | 源文件存为 UTF-8 并用/l指定语言参数编译,别靠手工转码 |
| 翻译后按钮文字被截断 | 中文字号宽度与英文不同 | 调整对应控件在对话框里的坐标与宽度 |
| 数字/日期格式不对 | 系统区域没改到"格式"项 | 把「格式」一并设为中文,或按官方文档核对行为 |
走向与参与:翻译怎么贡献
📌 仓库现状很明确:没有内置语言选择器,也没有官方语言包目录。近期 CHANGELOG.txt 里的相关记录只有区域格式修复类条目(如 CPU 低于 0.01% 显示不遵循 locale 的修复),方向上区域感知会越来越细。对想参与的翻译者,两条硬建议:
- 跟着上游走:.rc 资源是随版本变化的,主程序一更新就同步翻译并重新编译,否则回退英语的缺口会越来越大;
- 提交前自测:先在本地用 rc 编译通过、再按上面的部署步骤实测一遍,确认无遗漏 ID 后交给维护者评审(流程以官方仓库的 CONTRIBUTING 说明为准)。
一句话收尾:SystemInformer 的国际化是"资源文件 + 卫星 DLL + 系统区域"三件套,看懂链路,切换语言和自造语言包都只是照抄步骤的事。后续官方若发布语言包或内置切换入口,以官方渠道的最新说明为准。
【免费下载链接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ https://windows-internals.com项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考