骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 946|回复: 0

[版主推荐] 《骑马与砍杀2》外挂式汉化教程

[复制链接]

29

主题

107

回帖

1651

积分

埃米尔[发布小组]

商队头领

Rank: 7Rank: 7Rank: 7

UID
3436517
第纳尔
4348
精华
0
互助
318
荣誉
2
贡献
1138
魅力
528
注册时间
2022-11-3

骑砍中文站APP会员勋章丝绸之路勋章富甲一方勋章骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之侠义勋章[杰出会员高级互助勋章]骑士美德之奉献勋章

鲜花(9) 鸡蛋(0)
发表于 2024-7-9 09:00:14 | 显示全部楼层 |阅读模式
本帖最后由 墨染衣 于 2024-7-9 09:15 编辑

写在最前


学习外挂式汉化之前,先去学习别杀鸡大佬的入门汉化教程:https://bbs.mountblade.com.cn/thread-2097412-1-1.html
使用传统的接口汉化方式永远是最优先也是最好的解。
但不是每个作者都会给MOD文本加接口,有的作者甚至不懂怎么加接口。
以往的方法是暴力翻译,直接修改MOD原文件。

然而,暴力翻译通常使用寿命只有一个版本,如果MOD更新,又要重新导出文本再匹配新的文件,查缺补漏导入到新文件里,也会遇到顺序错乱等问题,查重也是个繁杂的工作。
外挂式汉化的意义就是解决这些问题,通过绑定项目的ID,这ID类似于身份证,每个项目独一份,将身份证与汉化文本绑定在一起。
只要作者不将MOD的某项身份证改掉,那么外挂汉化永远生效,使它维护起来如同传统接口汉化一般。

下面我将通过实际案例来讲解外挂式汉化MOD的制作教程。
请出本次主人公 《古文明军械库》。
首先打开装备的xml瞧一瞧。
图片 1.png
好家伙,一个接口都莫得。
那么,再翻一翻其他文件是否还存在需汉化的文本。
最终我们找到需要汉化的文件5个。
图片 2.png
那么开始外挂式汉化的第一步吧。

一、外挂式汉化文件夹的建立
这是所有的基础,需要最最基础的MOD制作知识,如果这一步无法理解或学会,其他所有的努力都是无用功。
1.因为原MOD的文件夹名为Ancient Civilization v.1.1,所以我新建了一个文件夹叫做Ancient Civilization CNs,这是方便我区分,你也可以按照自己的习惯来。
2.在新建汉化文件夹中,再次新建个文件夹,命名为ModuleData
3.将刚刚翻到需要汉化的5个文件复制粘贴到这个Ancient Civilization CNs\ModuleData里。
4.从原MOD文件夹中复制SubModule.xml文件,将其粘贴到Ancient Civilization CNs文件夹。
现在Ancient Civilization CNs文件夹里的内容就像这样:
图片 3.png

二、Submodule.xml文件的编写
从现在开始可以不用管原MOD文件夹了,所有的操作只和你新建的汉化文件夹有关。
打开汉化文件夹中的Submodule.xml文件。
图片 4.png
1.首先这部分,name value决定了在启动器显示的名字,我们将其改为Ancient Civilization CNs
2.Id value,刚刚也说了相当于身份证不能重复,所以我们也将其改为Ancient Civilization CNs
这里改成什么都可以,只要不和原MOD一样就行。
3.接着在DependedModules里加一行,<DependedModule Id="Ancient Civilization" Optional="false"/>,这一行的意思是,古文明军械库MOD作为汉化MOD的前置,只有勾选了前置MOD,才可勾选汉化MOD。
改完后变成:
图片 5.png
这部分除了以上三处其他都无需更改。
4.开始向下翻,会看到很多涉及的xml。
图片 6.png
5.我们只保留那5个需要汉化的文件相关的部分,其他全部删除。
删完后变成:
图片 7.png
至此,第二部分submodule.xml的编写就结束了,很简单吧。
6.这里的id指向类别,path是你文件的名字。不同的MOD涉及的类别不同。
例如,
武器装备对应的类别id是Items
文化对应的类别id是SPCultures
兵种、人物对应的类别id是NPCCharacters
王国对应的类别id是Kingdoms
家族对应的类别id是Factions
再多我就不一一列举了,毕竟这里不是MOD制作教程。细心一些,根据原MOD的submodule.xml改,通常这部分就不会出错了。

三、外挂式汉化MOD里的内容
1.将5个需汉化的文件导入到TL汉化工具中
图片 8.png
使用2生成无接口用xml文件。
(不得不说TL工具真的神,和外挂式简直绝配)
图片 9.png
2.将这些文件进行汉化。
图片 10.png
3.将开头和结尾的格式改为。
图片 11.png
4.使用替换功能将中间内容的格式转换。
图片 12.png
5.保存,并将文件的格式从xml改为xslt。
图片 13.png
6.将其他几个文件同样按照此操作。
7.将5个文件移动到Ancient Civilization CNs\ModuleData中。
8.这样就大功告成了,可以进游戏看看效果了。

四、格式讲解
1.首先,开头和结尾的格式是这样的,不可以更改。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes"/>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
</xsl:template>
</xsl:stylesheet>
2.中间的内容通用的格式为:
<xsl:template match="XXXX[@id='YYYY']/@PPPP">
    <xsl:attribute name="PPPP">ZZZZ</xsl:attribute>
</xsl:template>
图片 14.png
如果你和我一样,使用的是notepad++,那么简单的理解为,红色的部分不要动,蓝色的部分可以动。
XXXX的部分填写的是翻译的项目类别,通常显示在原文件项目id的前面。
图片 15.png
如果是非锻造装备,对应的类别是Item
如果是锻造装备,对应的列别是CraftedItem
如果是兵种,对应的类别是NPCCharacter
如果是定居点,对应的类别是Settlement,我只列举了部分,更多的自己注意就行,这部分一定要写对,不然汉化不生效。
YYYY的部分是你打算替换的项目id,你通常无需改动。
PPPP是项目的条目,大部分情况下都是name,少部分情况是text。
ZZZZ的部分就是汉化文本。
3.根据需求不同也有不同的格式,例如:
如果同一个ID下有多个内容需要修改,拿权游的守夜人国家举例:
图片 16.png
看图可知,我们需要修改name、short_name、title、ruler_title以及text
那么我们需要使用的格式就是:
图片 17.png
4.格式批量替换
查找目标填入:<string id="([^"]+)" text="([^"]+)" \/>
替换为填入:<xsl:template match="Item[@id='\1']/@name"><xsl:attribute name="name">\2</xsl:attribute></xsl:template>
查找模式改为:正则表达式
如果是其他类别,就自己酌情把Item改为对应的类别。

更多参照示例可以参照权游国度这个MOD,这应该是我第一次在大型MOD中大规模使用外挂式汉化,例子应该蛮全的,也实在是原MOD接口给的太差了。

至此,外挂式汉化的教程就告一段落了。未来我想到更多的可以再行补充,或有其他疑问可以跟帖提问,我看到了会解答并挑选典型的问题加入到教程中。

外挂式汉化示例.zip

899 Bytes, 下载次数: 4

评分

参与人数 1荣誉 +1 第纳尔 +100 互助 +2 魅力 +50 收起 理由
Aomine Daiki + 1 + 100 + 2 + 50 感谢发表精华文章!

查看全部评分

您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-7-25 02:25 , Processed in 0.127496 second(s), 21 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表