超级玩家
 
- 贡献度
- 91
- 金元
- 3146
- 积分
- 689
- 精华
- 1
- 注册时间
- 2012-1-20
|
本帖最后由 vinnie32 于 2020-1-12 11:56 编辑
但是有时候把zh-cn文件里面的每个词条都汉化完了但是进游戏还是有英文怎么办呢?
首先将zh-cn文件与en-us文件进行对比看看是否有缺失的词条文本,然后要确定是该mod的什么地方是英文,是部件的文字说明显示是英文呢,还是其提供的界面是英文。
1)如果有缺失词条,将zh-cn文件中缺失的词条从en-us文件复制过来再翻译一遍就好了。
2)如果是部件的文字说明是英文,那么,就要稍微花费点功夫了。
下面来进行一点简单的基础知识普及:
所以你安装的mod中的部件文件要加载到游戏里面,这需要遵从一点游戏中的部件加载语法
下面随便打开一个mod的部件文件
可以看到图中有很多字段,我用红色方框框住的部分便是部件主要在游戏中的能显示的文本了.
其中:
<其实会点英文看到这些字段就能知道大概了。(实际上能改的不止这3个字段,请看本页面末尾)
然后直接修改这个3个字段等号右边的文字就行了。(建议使用本地化格式)
什么是本地化方法呢?
如下图的中的
<
这个#autoLOC_aluminiumPhotonSail_part_title是在你的语言文件中自定义的一个"变量"(如果不知道什么是变量可以点击此处查看),继续如图所示
这么多语言文件都有相同名称的一个变量,游戏调用哪个文件中变量来显示呢?
根据个人的经验,你游戏中用什么语言就调用哪个语言代码块中定义的变量。
比如你用英文就调用en-us{}这个块(大括号内)中的变量.你用简体中文就调用zh-cn{}块中的变量.如果当前语言块没有这个变量,就调用其他语言块中的变量.
注意我这里使用了"块"而不是"文件",因为所有的语言块都可以放在一个文件内,例如Mod"DeepFreeze Continued..."和"Hide Empty Tech Tree Nodes"中的本地化文件(注意,在DeepFreeze Continued...中的本地化文件名为DFLocalization.cfg而Hide Empty Tech Tree Nodes的本地化文件名为HETTN_dictionary.cfg)
也就是说,游戏只看.cfg文件中的Localization块内的各种语言块内的变量.
3)如果是界面为英文,那很大的程度上其文本是写在其DLL文件中了,那怎么办呢?
如果MOD作者公布了源码并且你有一定的C#编程经验,那实际上非常好办,直接下载作者的源码,再在自己的主机上搭建相应的环境,查找源码内中在游戏中出现过的字符串.
1)引用KSP.Localization库后直接调用官方给的本地化方法Localizer.Format()来对其进行本地化,然后注册个github账号先fork作者的工程上传好本地化后的代码后直接pull request给mod作者,待作者整合后,这个mod就会支持本地化了并影响到以后的更新,相当于你也做了出贡献.
2)或者你直接修改相应的字符串为中文也行(个人不提倡直接修改,因为MOD是会更新的,mod作者每更新一个版本你就得重新来替换一次,当然如果你不觉得麻烦当我没说),然后确认无误后编译生成,在放在游戏里,你就可以使用自己的中文mod了
(附(可能不完整):在[part].cfg内可更改的字段:
PART
{
title
description
manufacturer
MODULE
{
experimentActionName
resetActionName
reviewActionName
storeActionName
toggleName
eventOnName
eventOffName
}
}
在[Resouces].cfg内可更改的字段:<在[Planet].cfg内可更改的字段:
Properties
{ displayName
description
Biome
{
displayName
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|