使用RimTrans进行Mod翻译的指南。说明为日语。 RimTrans无法启动时的解决办法 原因: 可能是因为未能创建配置文件,手动编辑配置文件即可解决启动问题。设置文件的编辑方法:在以下文件夹中保存 C: Users (用户名) AppData Roaming RimTrans 用能以UTF-8编码保存的编辑器打开「Settings.xaml」,复制粘贴以下内容后,将编码设置为UTF-8(有无BOM均可)并保存。 <?xml version="1.0" encoding="utf-8"?> <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.<s:Double x:Key="AddModWindowHeight">600</s:Double> <s:String x:Key="RimWorldInstallDir">C: Program Files (x86) Steam steamapps common RimWorld</s:String> <s:Double x:Key="OptionsWindowHeight">600</s:Double> <s:Double x:Key="MainWindowWidth">1080</s:Double> <s:Double x:Key="OptionsWindowWidth">971</s:Double> <WindowState x:Key="MainWindowState">Normal</WindowState> <s:String x:Key="WorkshopModsDir">C: Program Files (x86) Steam steamapps workshop content 294100</s:String> <s:Double x:Key="AddModWindowWidth">971</s:Double> <s:Double x:Key="MainWindowHeight">667</s:Double> <s:Boolean x:Key="Selected_Japanese">True</s:Boolean>注意:目录路径适用于Windows10系统。若无法直接编辑,请从谷歌云端硬盘下载示例文件,将解压后的Settings.xaml放入以下文件夹。详情请阅读一同包含的说明用.txt文件。 C: Users (用户名) AppData Roaming RimTrans 文件名:RimTransSampleSettings.zip RimTrans模组翻译指南 编辑 2020/12/02 本指南适用于使用RimTrans进行翻译的新手。 翻译使用工具: RimTrans 最新版:入手方法:从上述最新版链接下载0.18.2.6:RimTrans Beta。点击Assets下方名为RimTrans_0.18.2.6_Beta.zip的链接。

使用方法: 《边缘世界》v1.1及后续版本的使用方法略有不同。 1. 打开《边缘世界》的安装目录。 2. 启动RimTrans。 3. 打开RimTrans的设置(Options)。

从语言中选择日语。RimTrans的语言将被日语化。

接下来选择应用程序。

4. 设置并修正《边缘世界》的安装路径。由于1.1版本及之后游戏核心数据的存放位置已变更,因此需要手动输入并修正路径。若未进行此操作,将无法输出正确的翻译文件(请同时阅读17.)。

按下自动按钮后,将指定旧版1.0时的位置。

如果要创建参照最新版Core的完整翻译,请执行以下操作: 1. 通过【自动】按钮指定安装路径。

4 - b:将「RimWorld/Data」文件夹中的「Core」文件夹,仅在输出翻译时复制粘贴到「Mods」文件夹中。

4 - c: 完成步骤5及后续操作并输出翻译文件(Japanese文件夹)后,请删除复制粘贴到“Mods”文件夹中的“RimWorld/Mods/Core”文件夹。 注意:若翻译文件输出后“Core”仍残留在“Mods”文件夹中,游戏启动时会出现错误,请务必注意。 4 - d: 若希望明确区分与日语翻译的重复部分,可按以下操作: ・在“Mods/Core/Languages”文件夹内创建“Mods/Core/Languages/Japanese (日本語)”文件夹 ・将复制粘贴到Mods文件夹的Core中的Languages文件夹(RimWorld/Mods/Core/Languages)里的“Japanese (日本語)”请将“tar”解压到上述创建的“Japanese (日本語)”文件夹中。 这些文件在翻译输出完成后,需要连同Core一起删除。 解压tar文件需要专用的解压工具或命令。 5. 工坊文件夹点击自动按钮即可。


6.关闭选项并返回初始界面。 7.点击左上角的【添加模组】按钮。

点击左侧的Steam图标,选择创意工坊以显示列表。

从这个工坊ID和名称列表中,找到你想要创建翻译的Mod,点击选择。

8. 选择模组后,在画面右侧的语言栏中,勾选你想要创建翻译的语言。如果是日语,就选择Japanese(日本語)。

9. 在要翻译的语言处打勾后,点击“执行”按钮。

10. 这样一来,Mod列表中就会注册需要翻译的Mod和语言。 11. 在画面右侧确认Mod的名称和ID,确保Mod没有选错。(由于RimTrans的翻译错误,ID的位置显示的是名称)

12. 右键点击左侧的Mod名称,在弹出的菜单中选择【在资源管理器中显示】,即可打开Mod的安装文件夹。建议提前打开该文件夹以便进行后续操作。

13. 点击画面上的【输出】按钮,即可将所选语言的翻译文件输出到目标模组的语言文件夹中。

14.工坊Mod文件夹的Language(翻译文件夹)内会输出用于需要翻译语言的翻译文件,请对元素内容进行翻译。

注意:翻译文件是按照XML规范制作的,因此请使用能够直接编辑XML或可以将文件保存为UTF-8编码的编辑器。在日语环境中使用常用编辑器保存时,文件会自动以Shift-JIS等编码保存,而《边缘世界》无法读取这些编码,从而导致错误。 此外,换行符的差异也可能引发问题。从谷歌等翻译网站复制粘贴译文时,请确认换行符是否正确。换行符包括LF(Unix系)、RF(Mac系)、LF+RF(Windows系),请统一使用其中一种,否则可能会导致文字乱码。关于XML的详细描述方法,建议进行搜索查询。 15. 首次输出翻译文件时,建议添加年月日进行备份。这样当Mod有更新时,通过对比备份文件,能更轻松地确认哪些内容发生了变更。 例如:ENG_201202_JP.zip表示这是RimTrans输出的英文(ENG)转日语(JP)的翻译文件,是2020年12月2日输出的备份压缩文件。虽然也可以通过文件更新时间等方式确认,但在更换驱动器或使用云备份恢复数据时,这种命名方式便于文件管理。 16.如果无法输出翻译文件,或许可以将输出设置从普通模式切换为Core模式。Core模式是仅从Mod包含的要素(如Defs、Keyed等)中输出翻译文件的模式。

17.RimTrans的正式版在1.0版本后停止更新,因此1.1版本及之后新增的内容(如任务和DLC部分等)不会被输出。请注意,务必在完成翻译后,在模组列表中启用翻译目标模组,检查是否存在翻译错误。在开发者模式下,如果错误日志中记录了黄色的Translation错误,可点击开始画面左侧的【翻译文件验证】按钮。

关于翻译文件错误的日志(TranslationReport.txt)将输出到桌面。

TranslationReport.txt的简单查看方法:

一般加载错误:游戏启动时记录的错误原因会显示在这里。通常是XML语法错误等问题。 Def注入翻译加载错误:原Mod的Def加载时发生的翻译加载错误。 背景故事加载错误:背景故事加载时的翻译错误。不过,对于Humanoid Alien Races 2.0中添加的外星种族,即使此处记录了错误,也可能存在“已正确翻译”的情况。 缺失键值翻译:可翻译的键值部分存在没有对应翻译的键值时记录的错误。通常是Mod设置文件的翻译问题。Def注入翻译缺失:当元Mod的Def被加载时,本应存在可翻译内容,却未找到对应翻译的情况下,会记录错误。不过,对于Humanoid Alien Races 2.0(HAR)添加的外星种族,即使此处记录了错误,也可能存在“实际已正确翻译”的情况。此外,像以下种族特有的身体部件等内容,是不应进行翻译的,因为HAR会自动处理这些内容,无需手动翻译。*.alienRace.generalSettings.alienPartGenerator.bodyAddons.*.身体部位 缺少背景故事翻译:这是当背景故事中存在未翻译内容时出现的错误,但在HAR种族的情况下,即使内容存在也会记录错误。defName中通常会包含种族名称等信息,请据此进行判断。 不必要的def注入翻译(标记为NoTranslate):当存在不必要的翻译时会记录错误。例如因更新等原因已不再存在的无用翻译会被记录。 使用旧的、已重命名def的def注入翻译(会自动修复,但可能在《边缘世界》下一版本中出现问题):当使用1.0以前的旧描述规则编写defName等内容时会输出此提示。大多出现在Things_Building(建筑物)中,1.0版的Door_Frame需要改为1.1版及以后的Flame_Door等类似形式。即使保持旧有形式,在游戏中也不会出现问题,但当调用该建筑的翻译时会进行转换处理,这可能导致游戏启动时间延迟。 参数数量不匹配(可能正确也可能不正确):当{0}或[PAWN_nameDef]等指定字符自动填入时,如果参数不匹配,就会被记录。不过,有时可能是故意设置为不匹配,因此即使记录了错误,也可能无需修正。在英文中是必要的,但在日语中,有时会出现像“他为了他而搬运他的物品”这样重复“他(HE)”部分,导致句子变得奇怪的情况。因此在日语翻译中,有时会减少对应HE的[PAWN_pronoun]的数量。 不必要的键控翻译(永远不会被使用):当存在不必要的Mod设置用键控翻译时会被记录。不过,有些Mod可能经过dll处理,所以是否真的是错误,请打开Mod选项进行确认。 键控翻译与英文匹配(可能没问题):这是指在设置(Keyed)的翻译文件中,仍残留着英文部分的错误。不过,像{0}这类引用符号以及kg等单位,大部分都无需翻译。如果强行翻译或修改,可能会导致用户界面布局错乱,出现文字无法显示的情况。若必须修改此类内容,需要在屏幕上确认效果。 Backstory translations matching English (maybe ok):当背景故事中仍残留未翻译的英文原文时,会进行记录。 HugsLib的Mod用News的翻译方法 安装HugsLib后,在Mod选项中显示的Mod更新信息,无法通过RimTrans进行翻译。这是因为从文件结构来看,该部分不属于《边缘世界》的定义范围,所以RimTrans不会将其视为《边缘世界》的文件文件夹。因此,每个Mod中包含的HugsLib用News文件夹需要手动翻译。 翻译步骤:首先,要翻译News内容,需打开翻译对象Mod文件夹中的【News】文件夹。如果各Mod是创意工坊项目,则位于以下文件夹路径中,且与每个创意工坊项目的URL编号相同的数字文件夹内。 C: Program Files (x86) Steam steamapps workshop content 294100 ****(创意工坊ID编号) 举例:Allow Tool C: Program Files (x86) Steam steamapps workshop content 294100 761421485 下面以Allow Tool为例进行说明。打开上述【Allow Tool】文件夹中的News文件夹,会显示如下图像所示的内容。

images文件夹中包含更新信息中使用的图片。这些图片基本与翻译无关。AllowToolUpdateFeatures.xml文件记录了更新内容的版本号、用于查看详细信息的URL、Mod名称以及更新内容。该文件需要进行日语翻译。 打开AllowToolUpdateFeatures.xml后内容如下。

生成翻译所需的XML元素包括:用于指定模组的modNameReadable、用于区分版本的defName以及更新内容的说明文本content。 <modNameReadable>允许工具</modNameReadable> <defName>AllowTool_2_3_0</defName> <content>略</content> 将翻译放入日语翻译文件夹时,所需的文件夹名称为代码中描述为<HugsLib.UpdateFeatureDef ParentName="ATUpdateFeatureBase">部分的HugsLib.UpdateFeatureDef。 请注意,句点(.)也是文件夹名称的必要组成部分,不要忘记。 实际的日语翻译用文件夹结构如下方图片所示。

翻译用的文件名也可以设为AllowToolUpdateFeatures.xml,但在此图片示例中,使用的是HugsLib的基本文件名UpdateFeatures.xml。 日语翻译文件的创建 那么,我们来实际查看一下翻译文件的内容吧。

用于翻译News的defName是由“翻译制作所需的xml要素”中说明的内容组合而成。 label对应的部分为defName.(点)modNameReadable description对应的部分为defName.(点)content 例如: <AllowTool_2_3_0.modNameReadable>Allow Tool</AllowTool_2_3_0.modNameReadable> <AllowTool_2_3_0.content>略</AllowTool_2_3_0.content> 将这些内容按照翻译源UpdateFeatures.xml中描述的每个Version进行制作并翻译,即可翻译HugsLib的Mod更新信息(News)。

关于补丁内的翻译 1. 确认补丁文件:首先确认补丁文件的内容,确定其属于哪个Defs文件夹。 例如,对于具有以下路径的补丁 <Operation Class="PatchOperationReplace"> <xpath>/Defs/ThingDef[defName = "Silver"]/label</xpath> <value> <label>quiksilver</label> </value> </Operation> 可知该补丁是对ThingDefs中所属的DefName进行补丁操作。 2.确认补丁重写对象的路径。接下来在Core/Defs内,搜索与[defName = "Silver"]对应的<defName>Silver</defName>。应该会找到Core/Defs/ThingDefs_Items/Items_Resource_Stuff.xml,将其中与<defName>Silver</defName>相关的从<ThingDef ParentName="ResourceBase">到</ThingDef>的内容复制,不要在Core中,而是在想要翻译的Mod的Defs内临时创建一个xml文件。为方便翻译工作,建议将其命名为ThingDef_TrasPatch.xml之类易懂的名称。翻译完成后,从翻译对象的Mod文件夹中删除该文件。3. 创建替换补丁操作对象的文件。这个ThingDef_TrasPatch。将复制到xml中的<label>silver</label>通过补丁替换为<label>quiksilver</label>进行实际改写。 改写完成后,不要忘记将文字编码保存为UTF-8。 示例: <ThingDef ParentName="ResourceBase"> <defName>Silver</defName> <label>quiksilver</label> 4. 为RimTrans翻译添加文件:将这个改写后的ThingDef_TrasPatch.xml移动到想要翻译的模组的Defs/ThingDefs_Items文件夹中。如果没有该文件夹,就新建一个。 5. 修正RimTrans输出的翻译文件:放入ThingDef_TrasPatch.xml后,按照常规在RimTrans中进行翻译。之后,ThingDef_TrasPatch.将以xml为文件名输出翻译文件。 通过补丁进行改写的部分会变为<Silver.label>quiksilver</Silver.label>。 其他要素无需保留,删除后如下所示: <?xml version="1.0" encoding="utf-8"?> <LanguageData> <Silver.label>quiksilver</Silver.label> </LanguageData> 修改后请像步骤3一样以UTF-8格式保存。 6. 使用LoadFolders.xml为补丁目标Mod添加专用翻译,将输出的翻译文件名(ThingDef_TrasPatch.xml)改写为步骤2中搜索到的Core文件名Items_Resource_Stuff.xml。这是修改核心要素时为避免重复错误的方法。如果要改写的是模组专用内容或其他模组的defName,建议使用要改写的模组的Defs中包含的xml文件名,而非核心文件。 如果游戏启动时没有出现错误,嫌麻烦的话,保持ThingDef_TrasPatch.xml这个临时名称也可以。 当补丁对象是其他模组的要素时,可以使用LoadFolders.xml,通过目标模组的packageId进行确认,并将翻译放入指定的另一个文件夹中,这样就能实现在目标模组存在或启用时才添加翻译。LoadFolders。使用xml添加Mod专用文件夹的示例<?xml version="1.0" encoding="utf-8"?> <loadFolders> <v1.3> <li>Common</li> <li>1.3</li> <li IfModActive="Ludeon.RimWorld.Ideology">Ideology</li> <li IfModActive="Ludeon.RimWorld.Royalty">Royalty</li> <li IfModActive="Ludeon.RimWorld.Biotech">Biotech</li> <!-- 条件:Mod AAA处于激活状态,Mod包ID=AAA,Mod短文件夹名称=BBB --> <li IfModActive="AAA">BBB</li> <!-- Mod DDD已加载到Mod列表中,Mod包ID=DDD,Mod短文件夹名称=CCC --> <li IfModLoaded="DDD">CCC</li> <!-- 若包ID=EEE的Mod未激活,则加载FFF文件夹。<!-- 若EEE模组未激活 -->FFF <!-- 若GGG模组未加载,则加载HHH文件夹 --> <!-- 若III模组和JJJ模组均激活,则加载KKK文件夹 --> <!-- 示例:皇权DLC和意识形态DLC均激活 --> <!-- 若皇权DLC激活,意识形态DLC未激活 -->详细信息请阅读《边缘世界》安装文件夹中的ModUpdating.txt,或参考Ludeon社公开的以下文档。多版本模组在《边缘世界》中。使用LoadFolders.xml的特殊模组确认方法示例:使用LoadFolders.xml确认是否存在多个模组,仅当其中某个模组存在时才使用指定文件夹的示例。条件: 当Mod的packageId为【AAA】或【BBB】或【CCC】,且它们各自单独或全部在Mod列表中处于激活状态时,加载DDD文件夹。 xml描述示例: <?xml version="1.0" encoding="utf-8"?> <loadFolders> <v1.3> <li>Common</li> <li>1.3</li> <li IfModActive="AAA, BBB, CCC">DDD</li> </v1.3> </loadFolders> 使用方法: 可用于需要排除存在翻译(如原Mod使用的defName等)冲突的多个Mod,并对其应用翻译的情况。 关于使用逗号(,)分隔packageId(或的关系)的方法,请参考Ludeon社公开的相关文档。《边缘世界》多版本模组:条件加载文件夹引用自《边缘世界》多版本模组:IfModActive和IfModNotActive均支持在其值中使用多个以逗号分隔的packageId(例如IfModNotActive="Ludeon.Rimworld, Ludeon.Rimworld.Royalty")。这些packageId之间会被视为使用“OR”运算符进行连接。




换一换 























