本项目是对游戏《Else Heart.Break()》进行的深度汉化,旨在提供高质量、沉浸式的双语游戏体验。汉化内容主要分为三个部分:游戏对话、UI与交互、以及游戏内编程脚本。
本仓库的 English 目录包含了经过润色的、可直接在游戏中使用的翻译文件。所有文本均由 DeepSeek 翻译,并经过了初步校对。
-
重要:备份原始文件!
- 备份翻译文件: 请找到您的游戏安装目录,在其中定位到
ElseHeartbreak_Data\InitData\Translations\English文件夹。请先将这个English文件夹完整备份到其他安全位置。 - 备份核心文件: 同样地,请备份
ElseHeartbreak_Data\Managed目录下的Assembly-CSharp.dll,GameWorld2.dll,TingTing.dll这三个文件。 - 备份脚本文件: 最后,请备份
ElseHeartbreak_Data\InitData\Sprak文件夹。
- 备份翻译文件: 请找到您的游戏安装目录,在其中定位到
-
替换文件
- 翻译对话将本仓库中的
English文件夹覆盖游戏目录中原有的ElseHeartbreak_Data\InitData\Translations\English文件夹。这个文件夹中的内容是负责翻译人物对话的 - 翻译交互按钮将
UItrans_zh目录下的Assembly-CSharp.dll,GameWorld2.dll,TingTing.dll三个文件覆盖到ElseHeartbreak_Data\Managed文件夹中。这部分文件主要负责游戏界面、物品交互和API文档的翻译。 - 翻译脚本 将本仓库中的
Sprak文件夹覆盖游戏目录中原有的ElseHeartbreak_Data\InitData\Sprak文件夹。这个文件夹中的内容是负责翻译游戏内所有可编程对象的脚本和注释的。
- 翻译对话将本仓库中的
-
进入游戏 启动游戏。如果进入后未显示中文,请尝试在游戏设置中切换一下语言(例如切换到其他语言再切回来)。
这些翻译需要覆盖dll文件来实现,作者是通过 dnSpy 软件来实现直接编辑 dll 文本来实现的,本仓库中的翻译保留了所有的英文翻译,如果你觉得中文翻译有不妥的地方,可以直接用 dnSpy 搜索,直接修改即可
所有角色的对话都基于瑞典语原文,借助 DeepSeek AI 翻译为精准的“英语-中文”对照格式。为了确保翻译质量和上下文一致性,我们为每一次 AI 对话都提供了丰富的背景资料,包括:
- 完整的剧情和人物性格分析
- 统一的专有名词、人名、地名术语表
这些背景资料确保了 AI 能够理解对话发生的具体情境,从而生成更自然、更准确的译文。
⚠️ 【剧透警告】关于背景资料来源的技术说明 (点击展开)
本项目使用的背景信息文件(位于
背景信息/目录下,如背景信息汇总.md,剧情与翻译参考详解.md)是借助 Google Gemini 2.5 Pro 模型分析游戏全部瑞典语对话文本,并结合 Steam 社区的玩家攻略总结而成的。内容包含了对游戏世界观、角色关系和核心剧情的深入剖析。为避免影响您的初次游戏体验,请在通关前谨慎阅读这些文件。
游戏中的用户界面(UI)、物品名称、交互提示以及 Sprak 编程语言的 API 文档等硬编码文本,是借助强大的 .NET 反编译工具 dnSpyEx 直接编辑游戏的 dll 文件实现的。
翻译难点与说明:
由于游戏底层逻辑将“动词”和“名词”分开处理(例如 open 和 door 是两个独立的文本),为了同时保留英文原文,汉化文本采用了 动词(中文) 名词(中文) 的格式,例如 open打开 door门。这种方式虽然看起来有些冗余,但最大限度地保留了与代码相关的一致性。
致有能力的玩家:如果您希望进一步优化或个性化翻译,可以同样使用 dnSpyEx 打开
Assembly-CSharp.dll等文件。根据作者的经验,直接搜索名为tooltipname的成员,可以快速定位到大部分游戏内物品的描述文本。
我们对游戏内所有 .sprak 脚本文件进行了全面汉化。
- 双语注释:为了不影响代码的正常运行,绝大部分中文翻译都以注释的形式添加在英文原文下方。
- Sprak 编程手册:我们还整理了一份详尽的 Sprak 语言中文手册,汇总了所有函数、变量和基本语法,方便玩家在游戏中学习和参考。
.
├── English/ # 游戏对话翻译的`.eng.mtf`文件 (DeepSeek AI 润色)
├── Sprak/ # 游戏内编程脚本翻译的`.sprak`文件 (双语注释)
├── UItrans_zh/ # UI、物品、API文档翻译的`dll`文件 (dnSpy 硬编码修改)
├── 背景信息/ # 翻译过程中使用的上下文、术语表和参考资料
│ ├── SprakManual_Full_zh.md # 游戏内 Sprak 编程语言的完整中文手册
│ └── ...
├── Output/ # 打包好的发布版本
├── polish_tool/ # (开发者) 自动化翻译润色脚本
├── .gitignore # Git 忽略文件配置
├── LICENSE # 项目许可证
└── README.md # 你正在阅读的这个文件
本项目提供了一套工具,用于半自动地对游戏《Else Heart.Break()》的汉化文本进行高质量润色。它利用 DeepSeek 的 API 来优化翻译文件(.eng.mtf)中右侧的文本,确保其格式为高质量、双语的“英文在前,中文在后”,同时保持左侧的瑞典语原文不变。
- 本汉化为英中对照版本,以方便学习和校对。
- 由于游戏引擎的限制,过长的文本可能会在显示时被裁切。
-
v1.2.0 (2025-11-09)
- 新增: 对游戏内所有
.sprak脚本文件进行了全面汉化。这包括了电脑、软盘、以及各种可编程设备的交互界面和代码注释。现在,游戏内的编程部分也实现了完整的双语体验。 - 更新: 使用方法中增加了关于如何安装和使用
Sprak脚本汉化文件的说明。
- 新增: 对游戏内所有
-
v1.1.0 (2025-11-08)
- 新增: 界面汉化(主界面和设置中的英文貌似是放在level文件里的,我没学会如何修改),包括游戏内交互按钮、物品名称和API文档。
- 更新: 使用方法现在包含覆盖
Assembly-CSharp.dll,GameWorld2.dll,TingTing.dll文件的步骤。
本仓库是在 1PercentSync/else-heart-break-chinese 的基础上更新而来。感谢 1PercentSync 的初始工作!
- 双语润色: 将译文优化为“英文-中文”格式。
- 高并发处理: 利用线程池并行处理多行或多批次文本,最大化效率。
- 成本控制: 支持
batch模式和动态背景 (auto模式) 来节约 API 调用成本。 - 可追溯性: 为每一次翻译尝试生成详细的 JSON 日志。
- 一致性引擎: 通过“术语挖掘”和“术语表应用”两步工作流,确保专有名词的翻译统一。
- 强大的错误处理: 包含 API 调用重试和批量任务失败自动降级为单行重试的机制。
- 安装依赖:
pip install requests regex
- 设置 API 密钥 (环境变量
DEEPSEEK_API_KEY):- (PowerShell):
$env:DEEPSEEK_API_KEY="你的API密钥" - (Cmd):
set DEEPSEEK_API_KEY=你的API密钥
- (PowerShell):
1. 确认当前目录
至关重要: 所有命令都必须在项目的根目录(即 else-heart-break-chinese 文件夹)下执行。
2. 使用 -m 模块化运行
请始终使用 python -m polish_tool.main 的形式来运行,以避免导入错误。
为安全起见,建议将大型任务分批执行。最方便的方法是使用 --letters 参数手动划分字母表:
- 第1批 (A-F):
python -m polish_tool.main --letters ABCDEF --mode batch
- 第2批 (G-L):
python -m polish_tool.main --letters GHIJKL --mode batch
- 后续批次以此类推...
-
追求最高性价比(推荐):
python -m polish_tool.main --letters A --mode batch --group-size 16 --max-workers 32 --temperature 1.0
--mode batch: 必须。节省成本的关键。--group-size 12-16: 推荐。平衡成本与稳定性的最佳范围。--max-workers 16-32: 推荐。可根据网络情况和API速率限制适当调整。--temperature 1.0: 推荐。最适合翻译和润色任务的温度。
-
追求最高质量 (处理核心剧情):
python -m polish_tool.main --only-files MainQuest.eng.mtf --mode batch --bg-mode full
--bg-mode full: 提供最完整的上下文,质量最高,但成本也最高。
此参数用于平衡翻译质量和API成本。
full(完整模式): 发送全部三个背景文件 (背景信息汇总.md,剧情与翻译参考详解.md,专有名词与翻译对照.md)。质量最高,成本最高。lite(精简模式): 仅发送专有名词与翻译对照.md。成本最低。auto(自动模式, 默认): 自动判断。如果文件名以_开头或包含phone,teach,siri,则使用lite模式;否则使用full模式。
这两个功能是独立的,请按“先挖掘,后应用”的顺序操作。
第一步:挖掘候选术语 (--mine-terms)
此功能是“词频统计器”,用于发现潜在的专有名词。
- 运行:
python -m polish_tool.main --letters ABC...Z_ --mine-terms - 得到输出: 在
glossary/out/.../目录下会生成glossary_candidates_...csv文件。 - 注意: 这份文件是供您审阅的“原材料”,不是可直接使用的三语对照表。
第二步:创建并应用术语表 (--glossary-in)
- 人工审阅: 打开
glossary_candidates_...csv,挑选出真正的专有名词。 - 创建术语表: 新建一个您自己的 CSV 文件 (例如
my_glossary.csv) ,按source,target,tgt_lng(瑞典语,英语,中文) 格式填入您希望强制统一的译法。 - 放置文件: 将您创建的
my_glossary.csv放入glossary/in/目录中。 - 应用: 在后续的润色任务中,脚本会自动加载并应用此规则。
总结:脚本不自动生成三语对照表。它通过 --mine-terms 提供候选词,由您来制作标准术语表,再通过 --glossary-in 在润色中应用。
| 参数 | 默认值 | 描述 |
|---|---|---|
--src-dir |
English |
源文件目录。 |
--only-files |
`` | 仅处理这些文件(逗号分隔)。 |
--letters |
`` | 按文件首字母筛选。不区分大小写,不支持范围(如A-G)。 |
--max-workers |
16 |
并行线程数。 |
--timeout |
90 |
HTTP 请求超时(秒)。 |
--temperature |
1.0 |
采样温度。 |
--max-tokens |
400 |
单行回复最大 tokens。 |
--mode |
batch |
line (单行) 或 batch (批量)。 |
--group-size |
12 |
batch 模式的批大小。 |
--bg-mode |
auto |
full, lite, 或 auto。 |
--dry-run |
False |
仅统计文件,不执行操作。 |
--log-dir |
logs/deepseek |
日志输出目录。 |
--progress-interval |
5.0 |
进度更新间隔(秒)。 |
--glossary-in |
glossary/in |
术语表输入目录。 |
--glossary-out |
glossary/out |
术语表输出目录。 |
--mine-terms |
False |
启用术语挖掘。 |







