20240901 汉化预览版
Pre-release
Pre-release
注意这是个预览版,仅支持 50.13 版本,可能会崩溃以及造成存档损坏、丢失!仅供学习交流
使用方法:
- 下载对应版本的压缩包,解压到游戏根目录
- 兼容 DFHack,需要使用 DFHack 的 dfhooks chainloader(已打包)
- 应用修复补丁:https://github.com/vizv/df-steam-hook-rs/releases/tag/preview-20240901-patch-2
本次更改:
- hook 窗口大小变动的函数在 Linux 和 Windows 平台统一使用
gps_allocate
- 使用
bitflags
包管理一些 enum - 删除
erasescreen
函数的 hook,统一在完整绘制后清空缓冲层(修复文本渲染重叠的问题) - 修正文本在渲染后会有一个多余的空格的问题
- 使用
fontdue
包替换cosmic-text
,以提高渲染效率和支持多行文本排版、中英文混排(代价是启动慢了点) - 增加中英文混排、和 CP437 和 UTF-8 互相转换的逻辑,修复有些符号不能正常渲染(如性别符号和一些西欧字符的渲染),同时修复因为之前 CP437 强制转换 UTF-8 导致的缺字并在渲染时崩溃的问题
- 重构整个项目,增加多行富文本排版(目前 Windows 仍有键位名称无法渲染导致崩溃的 bug,暂时已对 Windows 平台禁用相关逻辑,可以使用 Ctrl+F2 暂时切回英文查看按键)
- 字典增加了教程部分的翻译(为了展示富文本排版,我手动翻译的)
已知 Bug:
- Windows 上的富文本的键位名称(比如 w、a、s、d 等)无法显示(我不熟悉 Windows 调试,需要大佬帮忙)
- Windows 上有些字典中的翻译不显示(比如「矮人们正忙上几周时间,把事情准备妥当...」这段)
偶尔崩溃,可能是 C++ 字符串在 Rust 的生命周期管理造成的(修复补丁 1 已修复文字渲染溢出造成的崩溃)
暂未实现:
- 文本匹配翻译
- 很多翻译缺字
鸣谢:
- 基于上游 https://github.com/dfint/df-steam-hook-rs 实现
- 翻译来自 https://github.com/dfint/autobuild/blob/main/translation_build/csv/Chinese%20Simplified/dfint_dictionary.csv
- 字体来自 https://github.com/notofonts/noto-cjk
- 逆向脚本 https://github.com/DFHack/df_misc
- DFHack 提供的 dfhooks API chainloader https://github.com/DFHack/dfhooks
- 以及矮人要塞吧 QQ 群、DFHack 的 Discord 频道的各位大佬的帮助