#parser #command-line-tool #file #translate #po #dungeon #super

bin+lib translatepmd

使用 gettext po 文件翻译 pmd 的命令行工具

1 个稳定版本

1.0.0 2021年7月27日

#4 in #po

CC0 许可证

25KB
513

pmdtranslate

pmdtranslate 是一个允许翻译宝可梦超级神秘大冒险(至少 US/EU rom)的工具。它可能在其他语言或与无限和 RTDX 无变化或仅有轻微变化的情况下工作,但我还没有测试过。

如何使用

这是一个命令行工具。目前,我不提供预编译的二进制文件。我猜你可能需要查找如何编译 Rust 程序(如果已安装 cargo,则运行 cargo build --release)。

提取翻译

您需要一个解密和解包的 rom。您可以使用 ctrtool 来解包 rom。然后,您需要找到要翻译的文件。对于 US PSMD,应该是 message_us.bin。请注意,同一文件夹中应该有一个 message_us.lst 文件,因为它由该工具使用。然后,您需要运行 pmdtranslate farc to-pot <message_us.bin> <输出 .pot 文件>

pot 文件是 模型 文件。然后,您应该使用某种方法来编辑 po 文件(我使用 poedit)。

请确保软件保留注释和其他元数据,因为注释条目也需要由 pmdtranslate 使用。

一旦您开始编辑字符串,输入消息将采用 <id> text 的形式。在翻译时,您不应包含 <id> 以及下一个文本。例如,如果我有 1014321 欢迎光临 并且我想将其翻译成法语,我应该写 Bonjour

可能还会包含特殊符号,例如 [CENTER][PARTNERNAME]。这些是特殊内容,不应进行翻译。如果您想写一个 [,您需要写 \[,并且要写一个 \,您需要写 \\。例如,如果我想在屏幕上显示 [HELLO](而不是这个字符的效果),我会写 \[HELLO]。(] 不需要 \)。

在游戏中使用翻译

首先,您需要一种修改游戏的方法。PSMD的一个有趣之处在于,游戏包括从SD卡读取自定义翻译(但不包括自定义字体)的功能。要做到这一点,只需将您的自定义 message_us.bin 文件放入sdcard上的 private/Nintendo 3DS/app 文件夹中(如果需要,则创建它)。

要创建一个新的 message_us.bin 文件以翻译游戏,您需要运行: pmdtranslate farc from-po <source .po or .pot file> <target message_us.bin file>。然后您应该有目标 message_us.bin,您应该在游戏中加载它(通过在sdcard上放置它于 private/Nintendo 3DS/app/message_us.bin)。

您也可以使用更传统的修补方法来修补文件。

更改字体

您需要使用 pmdfonttool

依赖关系

~2.2–3MB
~54K SLoC