SystemInformer 中文界面改造指南:5分钟让系统监控工具说中文
【免费下载链接】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 是一款免费的 Windows 系统监控工具,能实时查看进程、网络连接、磁盘活动,还能调试软件、排查异常程序。它目前只提供英文界面,很多国内用户在查进程占用、断网络连接时还要靠猜测按钮含义。读完本文,你就能在自己电脑上把它的界面改成简体中文。
为什么值得动手汉化
想象这样一个场景:你发现磁盘占用突然飙升,打开 SystemInformer 想找出元凶。界面里 "Terminate"、"Mitigation policies"、"Image file name" 这些词你都不确定对应什么功能,反复切换鼠标位置看提示,排查时间被翻了一倍。
把常用按钮和对话框标题换成中文之后,你不用再猜 "Terminate" 是不是结束进程,"Policy" 按钮点下去会发生什么也能心里有数。排查资源占用、定位可疑连接会明显更快。
动手前先认清仓库骨架
汉化不需要读懂全部代码,只要知道文案藏在哪。这个仓库由四块组成:
- 主程序:
SystemInformer/目录,界面逻辑在mainwnd.c等.c文件里,界面文案集中在SystemInformer.rc资源文件中 - 内核驱动:
KSystemInformer/目录,提供底层访问能力,与汉化无关 - 插件:
plugins/目录下每个子目录是一个独立插件(如DotNetTools、ExtendedTools),各自带一份.rc资源文件 - 构建脚本:
build/目录,build_init.cmd和build_release.cmd是编译入口
记住一个规律:资源文件(.rc)里是界面文字的主战场,代码文件(.c)里是少量硬编码文字。
五步完成界面汉化
第一步:拉取源码并搭好编译环境
你只需要一台 Windows 10 以上系统,以及 Visual Studio 2022 或更高版本(社区版即可)。克隆仓库:
git clone https://gitcode.com/GitHub_Trending/sy/systeminformer进入build目录,先执行build_init.cmd初始化工具链,再执行build_release.cmd编译。第一次成功编译出SystemInformer.exe之前,不要做任何改动,确保环境本身是好的。
完成后你会看到bin目录下的可执行文件,双击能正常打开英文界面。
第二步:一键切换主程序语言标识
打开SystemInformer/SystemInformer.rc,第 20 行写着当前的语言声明:
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US把它改成简体中文标识:
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED接着打开SystemInformer/version.rc,第 21 行做同样修改。另外这个文件底部的VarFileInfo区块还有一处语言码:
VALUE "Translation", 0x0409, 0x04b0建议同步改为0x0804, 0x0804,与简体中文保持一致。完成后重新编译,"关于"对话框的属性信息就会按中文环境展示。
第三步:把对话框文案改成中文
继续看SystemInformer.rc,所有对话框的标题和按钮文字都写在CAPTION与PUSHBUTTON里。比如第 104 行起的"常规"页:
IDD_PROCGENERAL DIALOGEX 0, 0, 260, 260 CAPTION "General" BEGIN PUSHBUTTON "Permissions",IDC_PERMISSIONS,143,218,50,14 PUSHBUTTON "Terminate",IDC_TERMINATE,197,218,50,14把"General"改成"常规","Permissions"改成"权限"。注意只改引号里的文字,控件 ID 和后面的坐标数字一个都不要动。完成后重启程序,选中任意进程点开属性页,标题栏就会显示"常规"。
第四步:统一插件的资源语言
主程序改完只是开始,每个插件还有一份自己的资源文件。以网络插件为例,打开plugins/NetworkTools/NetworkTools.rc,同样找到LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US一行改成简体中文标识。需要覆盖的插件包括plugins/DotNetTools/DotNetTools.rc、plugins/ExtendedTools/ExtendedTools.rc、plugins/HardwareDevices/HardwareDevices.rc等,改法完全相同。完成后加载对应插件时,它的菜单和弹窗会跟随中文环境渲染。
第五步:编译并验证汉化效果
回到build目录再执行一次build_release.cmd。跑完后打开可执行文件,做三项检查:选中进程弹出的属性对话框标题是否为中文;资源监视页是否正常显示;"关于"对话框中版本号、版权信息是否完好。三项都通过,汉化就算落地了。
再进一步:三处可选打磨
- 处理硬编码英文:少数文字直接写在代码里,例如
SystemInformer/mainwnd.c中PhMwpCreateInternalPage(L"Processes", ...)创建的主页标题。这类文字改.rc无效,需要改源码后重新编译 - 调整控件尺寸:中文字符宽度与英文不同,"权限"两个字放在宽 50 像素的按钮里刚好,但更长的词可能溢出,可微调
PUSHBUTTON后面的宽高参数 - 本地化数字与时间:进程启动时间、内存大小等格式由代码中的格式化逻辑决定,想要"年-月-日"风格需要改动对应的格式化代码
常见故障速查表
| 现象 | 排查 | 解决 |
|---|---|---|
编译报LINK : fatal error C1047 | 第三方库与当前编译器版本不一致 | 运行build/build_thirdparty.cmd后重新编译 |
| 改了语言标识,界面仍是英文 | 只改了.rc却用了旧的编译产物,或缓存未清 | 运行build/build_clean.cmd清理,再执行build_release.cmd全量重编 |
| 中文显示为方块或被截断 | 控件宽度不够,或字体不含中文字形 | 加宽对应PUSHBUTTON/LTEXT的宽高参数;对话框字体保持MS Shell Dlg即可显示中文 |
| 自编译插件在驱动开启时不加载 | 这是驱动对未签名插件的安全限制,非汉化问题 | 参考KSystemInformer/README.md,或在设置中关闭镜像加载拒绝 |
把你的汉化贡献给社区
汉化成果值得共享。流程四步:先 Fork 一份自己的仓库;在本地按本文步骤完成修改;跑一遍编译和界面自测,确认没有控件错位;最后向主仓库提交 PR,附上改动的文件列表和一张界面截图。术语翻译建议保持一致,比如全项目统一用"进程"而不是"程序"。
写在最后
现在你手里有一个界面全中文的 SystemInformer:找资源占用大户、掐可疑网络连接,再也不用对着英文按钮发呆。动手改完SystemInformer.rc里那几行文字,你的系统监控效率就会肉眼可见地提升。
别再让语言挡住你排查问题的速度,今天就动手汉化你的 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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考