V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

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

  •  
  •   LeeReamond · 2021-10-10 01:33:50 +08:00 · 1097 次点击
    这是一个创建于 1137 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    我记得原来是有专门的软件资源汉化管理工具的。
    LeeReamond
        6
    LeeReamond  
    OP
       2021-10-12 15:51:17 +08:00
    @vance123 你可以直接说思路
    vance123
        7
    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
        8
    LeeReamond  
    OP
       2021-10-12 16:41:08 +08:00
    @ysc3839 文本可以提取出来,但中间会掺杂一些跳转,人物,场景等等的命令,分散在不同文件里,具体应用场景一楼已经说了,比如目前作者做了 A 人物的剧情,而之后会加入 B 人物的剧情,或者对 A 人物增删,就会涉及到一些行的修改
    ysc3839
        9
    ysc3839  
       2021-10-12 16:58:51 +08:00   ❤️ 1
    @LeeReamond 所以说“分散在不同文件里”具体是什么格式的文件呢?
    如果原文本是分散的,那建议使用自动化工具提取出来再进行翻译。
    如果全都在源代码文件中的话,可以使用 GNU gettext 的命令行工具提取,然后建议在运行时进行原文本到翻译后文本的转换。
    如果原文本是在一些资源文件中,不可以运行时转换的话,只能考虑使用 Translate Toolkit http://docs.translatehouse.org/projects/translate-toolkit/en/latest/index.html 或者其他工具提取,翻译后再更新资源文件。
    提取出来的文本推荐用 GNU gettext 的 po 格式存储,因为这个格式在各类翻译工具中的通用性最强,使用此格式就可以配合 Poedit 或 Weblate 进行翻译,“只识别出新增内容,并且对新增内容进行汉化即可”这种需求完全不成问题,因为已翻译的文本是一直再那的,新增的文本会显示为未翻译的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5626 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:28 · PVG 11:28 · LAX 19:28 · JFK 22:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.