六、创建Mod的多语言数据
本章节会讲述如何创建Localization数据。
Localization
多语言应该是整个Mod制作环节中最好讲的部分,但实际上,这个东西很乱,乱到人绝望。
初步讲解
首先多语言是通过Actions中的UpdateText来更新的,在游戏中多语言模块被单独放在了一个数据库中。
多语言的行为有两个部分,Front-End,In-Game,还有官方的一种骚操作,我称之为Mod-Description(将多语言放在modinfo)当中。
多语言既可以被Xml载入,也可以被Sql写入。
先做FrontEnd
首先,FrontEnd是最容易做的一部分:

我们在<GameData>中新建一个元素<LocalizedText>

若是英语(通用语言),请写在<BaseGameText></BaseGameText>标签下而不是<LocalizedText></LocalizedText>标签下,同时不需要写Language属性,因为如果其他语言加载文本数据发生缺省的话,是不会自动根据Language="en_US"来加载英文的,因此<BaseGameText>可以保证其他语言加载不到对应语言文件数据时读取基本数据文本。
简单来说,英文请将<Text>写在<BaseGameText>之中而不是<LocalizedText>,注意在<BaseGameText>中的<Text>不需要Language="en_US"!
<BaseGameText>用法和<LocalizedText>一样,是<GameData>的子元素。
然后我们就可以写文本啦
<Text> 文本
上面是芙芙Mod在加载时候的个人介绍。
文本具体有三个部分,它的整体是按照<Row>来划分的。
Row标签中有两个属性:Tag和Language。
首先,Tag是文本的Id,意思是你在你的Mod中预先配置好的文本Id或者是游戏中默认通过相对关系生成的Id(这句话很难理解,可以选择不理解)
其次,Language是游戏内部的语言Id,我这里展示所有的语言种类:
其中的Locale就是语言的id,Name是语言的方言名称。
然后<Row>元素中包裹着一个<Text>元素,<Text>元素中的内容是游戏中应该显示的文本,那么,芙芙这句话可以理解为:
引用LOC_TRAIT_LEADER_FATE_FOU_DESCRIPTION这个Id的英文环境下的文本是:Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!Fou!
注意,Tag和Language两个值必须保证联合唯一!意思就是Tag和Language同时相同的<Row>是不允许出现第二个的!
现在我们来整理整理哪些东西是FrontEnd需要加载的:
领袖名称
领袖技能名称
领袖技能说明
文明名称
文明技能名称
文明技能说明
特色单位、建筑、改良、区域等名称
大体上就是选择界面的那几个,现在我们根据这些线索,把他们的ID找出来:
我们目前只有这三项,所以我们只写这三项。
这是英文版本的,现在我们来复制这一部分两次,制作简体中文和繁体中文,当然,如果你不想做繁体中文,你只需要复制一次就可以了,最终,你应该有九条:
很好,现在你成功完成了这一部分,注意,我没有单纯的复制,我还修改了Language属性中的值,现在这三个Id,分别有了简体中文、繁体中文和英文的三种文本。
In-Game
InGame部分是最混乱的,因为游戏有大量的相对引用,暨没有明确的ID,会结合领袖ID,文明ID动态生成一些ID。
但是我为大家整合了这一部分(可能有错误),但是99%都是正确的,如果哪里有问题,可以联系我,我来改正。
你可以直接复制这一部分的<LocalizedText>放入到你In-Game中的文本Xml中,注意,如果你的Mod没有信仰和文明,你可以把这两个部分的代码去掉。
如刚才我们做FrontEnd一样,你可以把三个语言都写在一个Xml中,也可以分开建立三个Xml,分别写入每个语言,只要你保证你写的规则是正确的,游戏就可以读取。
你只需要把YYYYY_XXXXX_ZZZZZ替换为你的文明ID或者领袖ID就可以了(注意前缀不要重复,我已经写好了)。
其中还添加了Leader_Data中的文本Id,注意,当你发现有些地方的文本还是Id的时候,你就应该查一查哪个没有写,或者是写错了。
下面是我整个做完的内容:
特殊<Text>详解
{}
{}只可以写Id,意思是与目标id文本一致,比如:
当游戏调用LOC_PEDIA_LEADERS_PAGE_LEADER_FSN_ARCHER_EMIYA_CHAPTER_HISTORY_PARA_1时,实际上调用的是LOC_LOADING_INFO_LEADER_FSN_ARCHER_EMIYA。
[NEWLINE]
换行,没有特别的意义。
[COLOR][ENDCOLOR]
夹在这中间的文本会变成第一个括号的颜色,比如:
[COLOR_FLOAT_SCIENCE]Fate/EXTELLA LINK Charlemagne-Saber[ENDCOLOR]
这个意思是其中的文本变为游戏中科学文本颜色的蓝色。
[ICON]
其中填写代码为游戏中的图标代码,可以显示图标,比如:[ICON_GreatPerson],会显示伟人的小图标。
图标可以查大佬工具1.5。
大佬工具1.5文本生成器




收尾


现在我们来测试一下




至此,文本教程结束
Last updated
Was this helpful?