以 Visual Studio 2017 举例,主界面上不同语言翻译文件,是保存在 IDE{LANGID}\msenvmui.dll 下面,可以用资源编辑器打开,截图这样:

有 ID 和对应的字符串,我这时候猜测,资源里就是一个表格文本,读取和翻译应该很容易。
然后花一小时读了源代码,最后发现完全不是自己想的这样。
在 msenvmui.dll 里,一共有 82 个有效字符串,中间穿插了一百多个空字符串。
[正常 string] [空 string] [空 string] [正常 string], 就是这种文件布局,空 string 都是实际占空间的(两个字节)。
为什么空呢,因为微软对 ID 字符串用的是二分法查找。查询键值是纯数字 ID,比如 1 到 100,就算中间一大片都没有 ID 对应的字符串,也需要占位符给填满,所谓有序排序。
微软可真是个小机灵鬼。