DualSub 两种字幕语言用于语言学习

DualSub 两种字幕语言用于语言学习

一边玩一边学语言。此模组会同时显示两种字幕语言:上方是你的常规语言,下方是第二种语言;适用于每一段对话语音以及每一份游戏内文档、备忘录和物品描述。你的主语言仍保持你在游戏自带的“选项 > 语言”中所选的设置

================================================================
The Witcher 3: Wild Hunt - DualSub v1.3
屏幕上同时显示两种字幕语言
================================================================

每一句有人说的话,都会在下方附加第二种语言。
专为边玩游戏边学语言的人打造。

两种语言都由你选择:

第一行 游戏字幕所设置的语言
第二行 你正在学习的语言

支持 18 种语言。游戏字体能够绘制其字母的任意语言对都能使用——306 种组合中有 155 种可用——菜单会在你选择之前标出不可用的组合及其原因。请参见下方的“哪些组合可用”。


---------------- 开始之前 ------------------------------

你需要 Python。它可从 python.org 免费获取,只需安装一次:

WINDOWS https://www.python.org/downloads/ -> 那个大大的黄色
“Download Python”按钮。在安装程序中,点击 Install
之前先勾选“Add python.exe to PATH”复选框。

LINUX 你几乎肯定已经安装了。如果没有:
Ubuntu / Debian / Mint sudo apt install python3
Fedora / Nobara sudo dnf install python3
Arch / CachyOS sudo pacman -S python
Steam Deck 已经自带——使用桌面模式。

这个模组只有一个 Python 文件。它不会下载任何东西,也不会在你的电脑上安装任何东西。它会重写游戏的一个文本文件,并保留原始文件以便还原。


---------------- 安装 ---------------------------------------

1. 关闭游戏。

2. 将下载内容解压到你能再次找到的位置。请将文件保持在一起。

3. 在该文件夹中打开命令窗口:

WINDOWS 点击文件夹窗口顶部的白色地址栏,输入 cmd 并按回车。
LINUX 在文件夹内右键单击 -> “在此处打开终端”。

4. 输入以下内容并按回车:

WINDOWS python dualsub_installer.py
LINUX python3 dualsub_installer.py

5. 仅首次运行时,它会询问游戏的位置。请粘贴包含 bin 和 content 文件夹的文件夹——或将该文件夹拖到窗口中。它会记住该答案。

6. 回答三个问题:你使用哪种语言游玩、你正在学习哪种语言,以及它应如何显示。按回车接受默认值。

7. 启动游戏。在 选项 -> 语言 中,将字幕语言设置为你所选的第一行语言。

这只需几秒钟。它会把双行文本写入

content\content0\<language>.w3strings

并先将原始文件复制到游戏自身文件夹旁的 DualSub-Backup 文件夹中。预渲染视频会保留它们自己的字幕。

如果 Windows 提示无法写入游戏文件夹,说明游戏位于 Program Files 中,需要管理员权限:

* 点击开始,输入 cmd
* 右键单击“命令提示符” -> “以管理员身份运行”
* 输入 cd /d,然后输入一个空格,再将解压后的文件夹拖到窗口中,然后按回车
* 然后:python dualsub_installer.py


---------------- 移除 ----------------------------------------

以相同方式再次运行安装程序,并按 R。

它会从 DualSub-Backup 还原原始文本文件,并删除其自身的文件夹。如果此后有别的程序改动过某个文件,该文件会被保留不动,并会告知你。

从 1.0 升级:请先运行 1.1 并按 R。它还会撤销 1.0 对 movies.bundle 所做的视频相关更改。游戏会在下次启动时自行重建其文件索引(content\metadata.store)。


---------------- 什么会获得第二种语言 -------------------

每一句有人大声说出的台词——对话、过场动画、街上的人、所有内容。约 64,700 行。

你在对话中所选择的回答。约 7,100 条。

游戏自身的文件会指明哪些是哪些——语音文件列出了每句口头台词,场景文件列出了每条回答——因此不会进行任何猜测。物品名称、菜单、HUD、地图、任务目标、日志、书籍和昆特牌永远不会被改动:它们的框内只容纳一种语言的一行文本,并保持可读。

---------------- 哪一行在上,或只显示一种 ----------------

第 3 步会询问第二种语言应如何显示:

1. both 游戏语言在上,第二种语言以暗色显示在其下
2. top 第二种语言在上,游戏自身语言以暗色显示在其下
3. only 只显示第二种语言,替代游戏语言
4. 分别设置口头台词和回答(每一项也可关闭)

“top”适用于英文在上、中文、日文或韩文在下的情况:将游戏设置为中文(其字体也能绘制英文字母),选择英文作为第二种语言,然后选择 top。

“only”适用于游戏为英文的情况——语音、菜单、物品名称——而字幕单独显示为德文。游戏从未翻译过的台词会保留你所游玩的语言。

---------------- 哪些组合可用 ------------------------------

游戏使用一种字体绘制文本,字体由你所游玩的语言决定,而每种字体只包含为其制作的字母表:

* 英语、波兰语、德语、法语、意大利语、西班牙语、葡萄牙语、捷克语、匈牙利语和土耳其语中的任意两种——始终可用。
* 上述任意语言位于俄语或乌克兰语之下——始终可用。俄语字体也包含所有拉丁字母。
* 任何拉丁字母或西里尔字母语言位于阿拉伯语之下——始终可用。
* 英语和波兰语位于中文、日文或韩文之下——可以。大多数其他欧洲语言位于这些语言之下——不可以,亚洲字体缺少它们的重音字母。
* 俄语、乌克兰语、阿拉伯语、中文、日文或韩文位于欧洲语言之下——安装程序会为你反向设置:游戏文本使用该语言,欧洲语言显示在上。外观相同;菜单使用该语言,语音可保持原样。

安装程序会在写入任何内容之前读取你磁盘上的字体。每种组合都可安装:如果某种组合没有一种字体能完整绘制——例如德语或法语与亚洲语言组合——安装程序会以损失最小的方式设置,并会显示哪些字母可能显示为空框,且会先询问你。

---------------- 他人制作的翻译 --------------

如果游戏 mods 文件夹中有翻译模组,其语言会出现在菜单中游戏自带语言的旁边,并标明其来源文件夹:

19. English - from mods/modBetterEnglish

可将其选为任意一半。他们的文本会直接从其模组中读取,并按他们的原文原样使用;他们的文件永远不会被改动。请注明他们的贡献——第二行是他们的成果。

大多数粉丝翻译会覆盖英文。此时英文会列出两次,一次是游戏原文,一次是他们的译文,将两者上下对照阅读正是应该做的。

---------------- 须知 ----------------------------------

* 一次只能使用一种组合。要选择另一种,请先移除(R)。
* 有些台词从未被翻译成某些语言。这些台词会保持原样,而不会用其自身的副本进行加倍。
* 在游戏补丁之后,或在启动器中“验证游戏文件”之后,请按 R 并重新安装。这两者都可能还原游戏自带的文本文件,而 R 能应对这种情况。
* 没有 Python?安装程序会说明这一点,并指引你前往 python.org。此下载中的任何内容都绝不会获取任何东西。


---------------- 如果出现问题 -----------------------

“python is not recognized”(Windows)
未安装 Python,或未勾选“Add python.exe to PATH”。请勾选该框重新安装,然后关闭并重新打开命令窗口。

双击会在编辑器中打开文件
Python 未与 .py 文件关联。请在文件夹中打开命令窗口,并输入第 4 步中的命令。

“That folder has no content\content0\en.w3strings in it”
请提供游戏自身的安装文件夹,而不是其上级文件夹,也不是启动器的文件夹。打开它,点击地址栏,复制该行并粘贴进去。

游戏启动但没有双行显示
选项 -> 语言 中的字幕语言不是你选为第一行的语言。请在那里更改。

其他任何情况
安装程序旁会出现一个名为 dualsub-error.log 的文件。请将其附加到模组页面的帖子中。


---------------- DualSub 项目与支持 -----------------

DualSub 的目标是通过让双语字幕成为标准功能,打破游戏中的语言障碍。游戏是学习语言最引人入胜的方式之一,本项目旨在让这一过程顺畅、易用且有趣。

每个引擎处理文本的方式都不同,因此每款游戏都需要各自的逆向工程——这意味着需要实际访问游戏,在本地测试其文件结构。

如果你想帮助将 DualSub 带到更多游戏中:
- 在 Posts 标签页中提出请求,让我知道你渴望用哪些游戏来学习。
- 非常欢迎通过上方的 Donation 按钮捐款。

每一份贡献都会用于获取新游戏和开发工具。支持有助于确定接下来研究哪些游戏,但未来的移植永远无法保证——它们取决于技术可行性和时间。每个 DualSub 模组将始终 100% 免费。

感谢每一位下载、分享并使用此模组学习的人。无论你是在精通第二语言还是打磨第三语言,你的支持都让整个项目值得。