
(一)Localizer及汉化包文件位置
(二)导出/更新汉化包
(三)制作汉化包
· 各个.json文件简介及注意事项
(四)打包汉化包及上传
(五)近期访问主站的方法
Localizer及汉化包文件默认存储在tModLoader的文件夹内
(一般为……\steamapps\common\tModLoader\Localizer)

文件夹示意
Download:汉化包文件(.locpack)存放在此,下载的汉化包会放在这个文件夹中。
Source:导出的Mod的汉化包文件位置。详细信息见下文。
UpdateLogs:导出带当前汉化包翻译的汉化包时,此处会生成一个.txt文本文档,用于记录两个版本间的汉化包的差异。主要用于汉化包的更新及维护。详细信息见下文。
Config.json:Localizer模组的一些配置,和汉化包导入相关。一般无需改动。
PackageStates.json:当前启用的汉化包信息。无需手动改动。
在Localizer的游戏内界面可以用“导出”及“导出翻译”的功能,将Mod的原文文件/当前启用的汉化包文件导出至Source文件夹。
(1)导出原文
打开游戏内的Localizer界面,然后选择想要导出的Mod,点击上方的“导出”即可。

之后,Source文件夹内会包含对应Mod名字的文件夹,其中包含汉化包所需的8个.json文件

(2)更新汉化包
如果需要更新旧版的汉化包,或者基于他人的汉化包进行更改,需要先启用想要更新的汉化包,然后点击上方的“导出翻译”

之后,除了Source文件夹内的新版汉化包外,UpdateLogs文件夹中会出现记录变更的.txt文档,名称为:
模组名称-年-月-日_时间.txt
其中内容类似这样:

[Content Changed]:新版本此处的文本发生了变化(需要更新)
[Content Added]:新版本中新增的内容(需要更新)
[Content Removed]:新版本中被移除的内容(建议删除)
此.txt中的更改内容按照如下顺序排序:
BasicItemFile.json
BasicNPCFile.json
BasicBuffFile.json
BasicProjectileFile.json
BasicPrefixFile.json
CustomModTranslationFile.json
LdstrFile.json
导出文件后,接下来就可以开始制作汉化包了。用于编辑.json的工具有很多,笔者使用的是Visual Studio Code。
在汉化者导出的文件中,物品、增益、减益如下呈现:

"ExampleItem"处为条目的内部名称;
"Name"为条目的显示名称(物品名,NPC名……)。
"Origin"为条目的原文。请不要修改Origin中的内容。
"Translation"为条目使用的翻译。请将你翻译的文本写在后面的双引号内。
"Tooltip"为条目的工具提示。
NPC、射弹、以及Ldstr文件中的条目如下呈现:

同上,请将翻译写在"Translation"后面的双引号内。
在详细介绍每个.json文件之前,先大致说一下每个文件通常会包含什么:
BasicItemFile.json:模组内的所有物品,及其工具提示(Tooltip)。
BasicNPCFile.json:模组内的所有NPC名称。
BasicBuffFile.json:模组内的所有增益、减益,及其工具提示。
BasicProjectileFile.json:模组内的所有射弹。
BasicPrefixFile.json:模组内的所有新增修饰语。
CustomModTranslationFile.json:模组内新增的状态讯息(即出现于左下角的信息)
LdstrFile.json:模组内所有字符串。其中会包括:Boss Checklist的Boss信息、NPC对话和界面选项、自定义UI选项、键位设置中的键位功能文本、小地图上的图格名称……等等各种各样的内容。
Package.json:汉化包的信息,包括汉化包名称、版本、描述、作者等等。
然后是一些常见的代码:
(1)\n 换行符。其他类似表达,请搜索“转义字符”。
(2)[c/327DFF:] 颜色代码。一般样式为[c/<16进制颜色码>:<所需翻译的文本>]
特殊情况:为“[<文字>]”应用颜色时,方式为:[c/<16进制颜色码>:[<文字>][c/<16进制颜色码>:]]
(3)[i:4053] 物品,一般用于在工具提示中显示物品。
一般会呈现为[i:{0}],或分段呈现为 "[i:" "]",而非具体数字。
若某条目的原文中含有物品显示([i:1234]),则应当到Ldstr.json中翻译此条目。
(4){0} 实际显示中会随当前游戏状况改变的值。无需翻译,应在对应位置复制。
例:You have {0} health. -> 你具有{0}生命值。
形如{$XXXXX}、${XXXXX}、$XXXXX的内容 此处引用了其他物品的工具提示/文本等。无需翻译,应直接复制。
例:{$CommonItemTooltip.RightClickToOpen}
(1)可直接翻译的文件

翻译示例
无需考虑太多文本问题,可以直接进行翻译的文件:
BasicItemFile.json
BasicNPCFile.json
BasicBuffFile.json
BasicProjectileFile.json
BasicPrefixFile.json
CustomModTranslationFile.json
但记住上文所述:如果某条目中含有物品显示,则应当到Ldstr.json中翻译此条目(示例见下方"Ldstr.json"章节
(2)Package.json
这个文件储存汉化包的相关信息

"Name":汉化包在游戏内菜单中和上传到镜像站后所显示的名称
"Author":汉化包作者,会在汉化包名称后显示
"Description":汉化包简介,会在鼠标悬停在游戏内菜单的汉化包上时、和上传到镜像站后显示。
"Version":汉化包版本号。
其它选项无需改动
(3)Ldstr.json
这个文件包含了所有字符串类型的文件,汉化较为困难,且没有完全固定的处理方式,只能具体Mod具体分析。由于Ldstr导入时会修改代码,因此可能会有Mod的汉化包不能导入Ldstr.json,此时可以前往Localizer文件夹的Config.json中将"ImportLdstr"改为false。当然,做这类Mod的汉化包也不建议对Ldstr做修改。
不过,还是仍然有一些方法能帮助汉化的:
部分信息可见恋佬的教程中的“Ldstr文件汉化建议”:https://docs.qq.com/doc/DSnNZekFmS3ZVSXl3
还有部分方法名较为固定:
"Load":如果Mod添加了自定义按键,此处可能会有需要汉化的控件菜单中的文本。
"PreKill":玩家的死亡讯息。请选择看起来像死亡讯息的文本汉化。
"PostSetupContent":这里会有给Boss Checklist模组使用的Boss名和Boss信息,可以选择汉化。
"SetDefaults":所有物品、增益、减益、NPC、射弹……的初始文本。不要改动这些内容,除非其中包含物品显示。此时,应当改动Ldstr.json内的对应文本,BasicItemFile.json中的文本无需改动。

这类文本改动BasicItemFile.json是无法显示的
此外,内部名称一般为无空格,全小写/仅首字母大写的英文文本。翻译Ldstr.json时不应翻译此类文本。

这样的东西不能翻译
最后还有一个比较简单但是也比较麻烦的办法:先不要动Ldstr.json,做完其他几个文件的汉化后将汉化包导入游戏,再在实际游戏过程中寻找没有汉化的部分,然后到Ldstr.json里查找对应条目。
在完成汉化包后,需要将汉化包打包供Localizer识别。将所有8个.json文件放入一个.zip压缩包内(压缩包名称随意)(可选:然后将其后缀名改为.locpack)。Localizer能够识别.zip和.locpack格式的汉化包。

然后将此文件放入Downloads文件夹,若游戏内Localizer菜单出现了你的汉化包(显示的汉化包名称为Package.json内的"Name"),则说明你的汉化包格式正确。
每次在游戏内重新加载模组时,Localizer也会自动将Source文件夹内的汉化包自动打包。如果你是在此文件夹内修改的文件,可以不用手动打包。
在确认了汉化包准确无误后,你可以将其上传到镜像站了。
由于主站流量较大时会自动跳转mirror7,因此可能需要不断尝试访问才能成功上传汉化包。
方法:不断访问https://mirror.sgkoi.dev/,直到进入主站,然后每次点击链接都应选“在新标签页中打开链接”,多次尝试直到成功上传。