SystemInformer 中文界面怎么改?从 .rc 资源文件到语言切换的完整路径

SystemInformer 中文界面怎么改?从 .rc 资源文件到语言切换的完整路径

【免费下载链接】systeminformer A 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 【免费下载链接】systeminformer 项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer

你打开 SystemInformer,满屏英文:进程列表、内存标签、属性页,连右键菜单都是英文。想查一下"句柄"在哪里,却得先背下 Handles 的拼写。能不能换成中文?答案是:能,但得自己动手改。SystemInformer 的多语言支持藏在资源文件里,改对地方,SystemInformer 界面中文就不是梦。

一个被英文界面卡住的真实场景

你双击启动 SystemInformer,窗口刷出来:Processes、Threads、Memory……每一项都认识,连起来却不知道点哪里。找进程属性里的环境页,得靠翻译软件逐句对。问题就一个:SystemInformer 能不能显示中文界面?能改,改完整个 SystemInformer 中文界面就能读得懂了。

三分钟看懂:语言是怎么塞进程序的

Windows 程序的界面文字存在资源文件(.rc)里,资源文件就像软件的"翻译备忘录":备忘录上贴了哪种语言,程序就能显示哪种语言。备忘录的"语言标签"由 LANGUAGE 指令指定。

主程序的标签贴在这里,SystemInformer/version.rc 第 21 行:

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

标签一贴,程序运行时按这个语言 ID 去备忘录里取字符串。SystemInformer 判断"该取哪种语言"的逻辑在 phlib/util.c

if (NT_SUCCESS(NtQueryDefaultUILanguage(&languageId)))
    return languageId;

也就是说,程序会先问操作系统要默认 UI 语言,但备忘录里只有英文条目,问出来也得回落到英文。

动手改:把界面变成中文的完整路径

⚠️ 以下步骤都是在你自己的本地副本里操作,仓库是只读的。

先拿到代码:

git clone https://gitcode.com/GitHub_Trending/sy/systeminformer
cd systeminformer

1. 复制并改语言标识

把主程序资源文件复制一份作为中文底稿,再把语言标签从美式英语改成简体中文:

cp SystemInformer/version.rc SystemInformer/version_zh.rc

version_zh.rc 里改这一行(diff 形式):

- LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

同时把文件里所有字符串值翻译成中文。各插件同理,比如 plugins/HardwareDevices/HardwareDevices.rc 第 19 行也有同样的 LANGUAGE 标签,插件想中文化就得逐个改。

2. 多语言编译

用 CMake 配置编译。构建脚本在 CMakeLists.txt,rc 文件由 Windows 资源编译器(RC.exe)处理,改完标签重新编译即可:

mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/msvc-amd64.cmake ..
cmake --build . --config Release

编译输出在 bin/ 下,SystemInformer 和插件 DLL 都会带上新的语言资源。

3. 配置默认语言

想让中文成为默认,还要动语言判断逻辑。phlib/include/settings.h 所在的 phlib 负责全局设置,语言回退值写在 phlib/util.cPhGetUserDefaultUILanguage 里(查不到系统值时返回 LANG_ENGLISH)。在本地副本中把回退值改成:

return MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED);

重新编译,程序找不到系统 UI 语言时就会落到中文。至此 SystemInformer 修改语言的工作完成,重启程序生效。

如果版本已经支持多语言:设置面板里怎么选

如果你拿到的是社区已构建好的多语言版本,不用改代码,点五下就行:

  1. 菜单栏点 Options
  2. 选择 Settings 打开设置对话框
  3. 切到 Interface 选项卡
  4. 在 Language 下拉框选 Chinese (Simplified)
  5. 点 OK,重启 SystemInformer 生效

注意:当前仓库的 SystemInformer/options.cSystemInformer/settings.c 里没有 Language 设置项,这条路只对包含多语言资源的构建版有效。

想给社区翻译?从这里开始

给 SystemInformer 本地化贡献翻译,三步走:

  • 翻译 .rc 资源字符串:在本地副本改各模块 version.rc / 插件 .rc 的文本并改 LANGUAGE 标签;
  • CONTRIBUTING.md 的规范提交 PR;
  • 自查翻译完整性:用 phlib/verify.c 的验证逻辑检查版本信息字段,确认没有漏译的字符串。

每条翻译都对应一个字符串 ID,漏一个界面就混一个英文词,提交前自己跑一遍程序对照检查。

接下来会发生什么

本地化方向,仓库里目前有据可查的只有这些:

  • CHANGELOG.txt 记录过一次区域格式相关修复:"Fixed Show CPU Below 0.01 not respecting locale",说明数字显示已开始按系统区域格式化;
  • 语言读取依赖 phlib/util.cNtQueryDefaultUILanguage 查询,系统 UI 语言一变,取值路径就跟着变,为将来动态切换留了接口;
  • 动态语言切换、语言包自动更新目前没有任何已确认的规划记录,仓库所有 .rc 文件仍只有 LANG_ENGLISH 一种语言条目。

想先看到中文,最现实的路径还是本文第 3 节的自建中文资源文件。

【免费下载链接】systeminformer A 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 【免费下载链接】systeminformer 项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值