# 教程汉化交付说明 ## 当前结果(2026-09-20) 用户已确认完整教程及字体修正“没有问题”。本次验收来自用户实机反馈;自动化检查覆盖字节、编码、排版与回滚,不替代实机操作。 - 教程全部 57 处标题、消息正文、任务说明使用 42 条中文映射。 - 范围包括开场、镜头、飞行、高度、攻击、蓄力、吐息、进食、法术、速度控制和结束提示。 - 开场及后续新增页面使用居中短句;此前已验收的镜头说明保留原有格式。 - 句号在 12×12 字格中下移 3 像素,边界由 `(2,5,6,9)` 变为 `(2,8,6,12)`;字宽和其他字符不变。 - 按钮中文与快捷键不再重叠,选项页标题按实际文字宽度居中。 - 原事件、按键绑定、资源路径、等待与判定条件保持原字节。 ## 教程构建 在仓库根目录使用 Python。将路径换为本机位置,`Tutorial.original.dsc` 必须是保留的原版英文脚本,而非已经汉化的文件。 ```powershell python tools/script_text.py --source "C:/DragonWork/Tutorial.original.dsc" --mapping tools/tutorial_cn.json --out "C:/DragonWork/build/Tutorial.dsc" --allow-alignment-changes python tools/verify_tutorial_step1.py modified "C:/DragonWork/Tutorial.original.dsc" "C:/DragonWork/build/Tutorial.dsc" ``` 工具同时生成 `Tutorial.manifest.json`。验证器沿用早期文件名,目前检查的是完整教程。 | 文件 | SHA256 | |---|---| | 原版英文输入 | `bd959758223b976ffac35b4ef7d94661f62060c1134316eddb559772d544e02c` | | 完整中文输出 | `720b7fce23b80405d6c8af2a1302ed95c085a072d8c8ecbae49b9db2cb32b8e3` | 默认严格保留控制符;`--allow-alignment-changes` 仅允许替换同一位置的对齐/缩进控制符,换行顺序及数量仍受检查。原版施法正文两处未转义的 `"F"` 采用专门识别,不扩大到一般表达式。百分数文字 `0% is` 与实际格式占位符分别处理。 ## 验证 字体排版测试需要 `unicorn`,位图测试需要 `Pillow`;排版测试默认读取已修补的本机游戏程序,路径可通过 `tools/test_cjk_layout.py` 的 `DEFAULT_EXE` 统一调整。 ```powershell $tests = @('test_script_text.py', 'test_tutorial_intro.py', 'test_tutorial_flight.py', 'test_tutorial_complete.py', 'test_cjk_layout.py', 'test_cjk_titles.py', 'test_full_stop.py') foreach ($test in $tests) { python "tools/$test" if ($LASTEXITCODE -ne 0) { throw "Test failed: $test" } } ``` 最新运行:39 项通过。完整教程校验输出 `MODIFIED: all 57 display literals translated; all other bytes unchanged; PASS`。新页面在 360/400/480 像素宽度下检查行首标点、中心坐标和总高度。所有中文字符均核对存在于已生成的 GB2312 字库中。 ## 安装与恢复 本次本机安装已经完成;以下步骤用于以后重建。游戏退出后,先备份当前 `Data/Scripts/English/Tutorial.dsc`,再用生成的同名文件替换。保持已有 CJK 程序补丁、字库及字体表。 恢复教程只需把该次备份复制回相同位置,核对 SHA256;不需要重装字体或重建程序。本次已在独立副本执行恢复,字节与备份一致。最后一批的备份是 `E:/DragonHD/backup_game/tutorial-complete-20260920/Tutorial.dsc`,内容为已验收的前五组汉化版本。 句号修正通过 `tools/fix_full_stop.py --source <原字库.TGA> --cells --out <新字库.TGA>` 生成。部署须同步更新松散字库和 `Textures.res` 的 `UI\Overhead\Shrift_gb_Germany.TGA` 条目;保留并恢复这两个文件的成对备份。`tools/build_cjk.py` 已包含相同修正,重新生成字库时不会丢失。 不要为单独更新教程重新执行 `install_cjk.py install`:它会重建并部署整套程序/字体/字符串文件。 ## 下一阶段 教程已经验收。后续主线汉化或高清素材试作按独立批次推进,尚未在本次启动。历史试作记录见 `DEVLOG.md`,其中早期“待验收”状态以本说明和最终验收条目为准。