游戏汉化文本有什么方便的办法可以管理版本更新吗?有没有有经验的老哥

2021-10-10 01:33:50 +08:00
 LeeReamond

如题,汉化游戏过程中遇到的问题。

游戏目前还在 EA 阶段,未来还会增加文本,作为汉化组有办法进行增量管理么,

比如目前有两句话,第一句内容为 abcd,第二句内容为 efgh,我分别进行了翻译。未来新增文本中在两句话中间插入了 k1,在两句话结尾插入了 k2,这样新的两句话,在保留原文的情况下,有没有什么好办法可以只识别出新增内容,并且对新增内容进行汉化即可这种的?

git 之类的版本控制工具倒是可以读取到一个大差不差的行级增删信息,但是这部分信息怎么导出来给人参考呢?另外汉化文本与原文的对应又该怎么解决呢?比如原先 abcd 一句话在第 100 行的位置,但更新只有跑到第 160 行去了,应该如何对应地覆盖之前已经翻译好的文本呢?

1095 次点击
所在节点    问与答
9 条回复
vcfghtyjc
2021-10-10 05:48:31 +08:00
也许可以自己写个简单的小程序来管理?
ysc3839
2021-10-10 05:57:44 +08:00
现在的原文本是怎样的?分散在不同地方吗?
crab
2021-10-10 06:08:56 +08:00
类似 Poedit ?
vance123
2021-10-10 07:47:03 +08:00
用命令行和 python 应该就能解决,不过楼主好像不太熟悉的样子
zk8802
2021-10-10 18:55:04 +08:00
对原始文本进行排序,输出成文本文件(注意编码),然后用 git 做版本管理。

我记得原来是有专门的软件资源汉化管理工具的。
LeeReamond
2021-10-12 15:51:17 +08:00
@vance123 你可以直接说思路
vance123
2021-10-12 16:15:25 +08:00
@LeeReamond
假设有 origin.txt 和 origin.trans.txt 两个文件,origin.trans.txt 的格式可以是在原文的每一行后加 "//" 追加当前行的翻译,或者其他,总之要能从 origin.trans.txt 中分离出映射关系
origin.txt 更新后,用 python 从 origin.trans.txt 中读取映射,再根据 origin.txt 生成新的 origin.trans.txt
最后用 `git diff origin.trans.txt > changes.txt` 导出新增行,交给其他人汉化。
LeeReamond
2021-10-12 16:41:08 +08:00
@ysc3839 文本可以提取出来,但中间会掺杂一些跳转,人物,场景等等的命令,分散在不同文件里,具体应用场景一楼已经说了,比如目前作者做了 A 人物的剧情,而之后会加入 B 人物的剧情,或者对 A 人物增删,就会涉及到一些行的修改
ysc3839
2021-10-12 16:58:51 +08:00
@LeeReamond 所以说“分散在不同文件里”具体是什么格式的文件呢?
如果原文本是分散的,那建议使用自动化工具提取出来再进行翻译。
如果全都在源代码文件中的话,可以使用 GNU gettext 的命令行工具提取,然后建议在运行时进行原文本到翻译后文本的转换。
如果原文本是在一些资源文件中,不可以运行时转换的话,只能考虑使用 Translate Toolkit http://docs.translatehouse.org/projects/translate-toolkit/en/latest/index.html 或者其他工具提取,翻译后再更新资源文件。
提取出来的文本推荐用 GNU gettext 的 po 格式存储,因为这个格式在各类翻译工具中的通用性最强,使用此格式就可以配合 Poedit 或 Weblate 进行翻译,“只识别出新增内容,并且对新增内容进行汉化即可”这种需求完全不成问题,因为已翻译的文本是一直再那的,新增的文本会显示为未翻译的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/806786

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX