KingHonor 发表于 2019-3-31 19:49

《剑士(Kenshi)》汉化制作教程指南

本帖最后由 KingHonor 于 2019-3-31 19:49 编辑

该帖转载自kenshi官方论坛,是一款详细的制作翻译教程。喜欢制作汉化的小伙伴可以参考使用。

简介:
翻译可以通过两种方式完成; 作为普通翻译(在'locale'文件夹中)或作为包含翻译的mod(Mod翻译)。
它们之间的区别在于,可以从启动器中的特定列表更改正常的(参见下图)并允许启动器文本的翻译,但是,它需要手动放置在游戏文件夹中。
作为mod的优点是使Steam Workshop上传并使其保持最新的简易性。
决定取决于你。

注意:不建议将两个选项组合使用。

所有显示的字符串都来自两个地方:源代码(SC)和游戏数据(在遗忘构造集(FCS)中)。
SC的字符串主要是消息,标题和类似的东西。游戏数据中的字符串基本上都是游戏内容和对话(FCS中的所有内容)。
两者都处理不同; SC字符串使用特定库加载(下面更多内容),而游戏数据的加载类似于mod(具有不同的扩展名)。

格式:
要翻译的字符串是使用使用GNU gettext格式的'Boost Locale'库生成的。
有很多工具和编辑器可以很容易地翻译和更新文件。

[*]文件:
      有三种类型:pot,po和mo。
             'pot'(可移植对象模板)文件,其中包含从源和游戏数据中提取的所有可翻译字符串的列表。
             'po'(可移植对象)文件包含特定语言的翻译字符串(来自.pot文件)。从.pot文件创建(可以更新)此文件。
             'mo'(机器对象)文件包含二进制编译的.po转换文件。
      最后一个文件是需要在翻译中分发的文件,因为它是游戏加载的文件。(仅适用于SC字符串)。

如果您想了解有关格式或其工作原理的更多信息,可以谷歌搜索。

[*]文件夹的命名:
语言环境内容文件夹的格式将使用结构'language_COUNTRY',其中语言是ISO-639语言名称,如“en”或“ru”,COUNTRY是ISO-3166国家标识符,如“US”或“DE” 。如果要为同一语言进行国家/地区特定翻译,则国家/地区标识符是可选的。
示例:de_DE,zh_HANS,ru_RU,es_ES,en_US。
注意:如果未将国家/地区添加到名称中,则数字格式(如十进制和千位分隔符)将不会显示在语言环境中。
工具:
有一些工具可用于翻译此文件:

[*]我推荐Poedit ; 它处理创建新翻译以及从pot文件更新。
[*]还有Google Translator Toolkit在线工具,允许与多人(如Google Doc文件)和其他一些功能进行协作。如果你想使用最后一个,由于某些原因它不支持.pot扩展,你需要在上传它们时从基本文件中将.pot的扩展名更改为.po。
入门:
有两种方法可以翻译游戏数据字符串(FCS中的数据字符串); 一个是创建一个普通的mod并手动替换所有的名称,描述,对话线等。
另一种选择是使用FCS工具将所有基本字符串(即非对话)字符串提取到pot文件,并使用FCS中的翻译模式来执行对话行。
后者是一个更好的选择,因为它将提取以游戏格式在游戏中使用的字符串,并且它提供了一种更简单的翻译对话方式。

注意:从技术上讲,这两个选项都兼容两种翻译方式,如简介中所述。
简介
a.游戏数据的翻译被分成几部分; 一个是基础游戏数据(一切不是对话)和对话。
在基础游戏数据提取到一个 POT更容易翻译。它只有使用过的字符串,没有重复的行。
该对话翻译用做翻译模式的FCS。它的工作原理类似于普通的FCS模式,除了它只显示使用过的对话和单词交换,对于每一个,它将显示原始和翻译的字符串。
注意:要提取基本游戏数据字符串,还需要在FCS中处于翻译模式。

由于SC的字符串已经随游戏一起提供(在'main.pot'文件中,位于'Kenshi \ locale \ en_GB \ LC_MESSAGES'中),您需要决定是否要提取游戏数据字符串或直接制作一个mod,如上所述。
决定取决于你。
本指南将假设您将使用FCS中的翻译模式。
b.激活“翻译模式”:
1.打开FCS

或在Kenshi文件夹中打开“忘记构造set.exe”。
2.选中底部的“启用”复选框。(注意:如果您加载任何其他mod,则该mod的内容也将被提取,不建议使用)

您可以添加新翻译或选择要更新的现有翻译。
翻译文件将位于Kenshi \ __ translations \ <locale> \文件夹中。

c.提取字符串:
要提取游戏数据字符串,请按以下步骤操作:
1.按工具栏按钮'翻译'


2.按“导出”按钮。


完成后,它将在Kenshi \ __ translations \ <locale> \文件夹中创建一堆.pot文件。

该gamedata.pot包含的所有项目,建筑,种族,城镇等的名称和说明(如果他们有)。


注意:如果选择“导出对话”选项,它会在对话行出口在以.POT文件对话框的文件夹。

重要提示:数据文件夹中有文本文件,如'tips.txt','namesF.txt'等,需要直接翻译(不使用.pot / .po格式)(参见第4部分,了解如何使用包括他们)。
d.翻译:
游戏基础数据:
您需要为 gamedata.pot文件创建翻译(.po)文件。您可以使用Poedit或任何类似工具来执行此操作。

翻译说明:在字符串中,大括号内的内容({})表示在游戏中用其他一些内容替换的某些值。它可以来自数字,名称,动作等。虽然可以将文本放在文本的不同位置,但不应修改大括号及其内容。例如:西班牙语中的“Lockpicking(机会{1}%)”可以翻译为:“Forzando cerradura({1}%de probabilidad)”。
Alseo,.po文件中的所有非翻译字符串(空字符串“”)将以英语显示原始字符串(均来自main。

对话:
在翻译模式下打开FCS时,它将仅显示类别的主窗口:对话和单词交换。

要翻译它们,只需双击一个,它将显示以下窗口:

顶部栏显示所选对话节点的信息,如谁在说话,目标是特定类型/种族/性别还是满足其他条件。此信息为翻译提供了更好的背景信息。

左下角是对话树,其中包含对话的响应/路径。如果节点的名称周围有一个红色的虚线矩形,则表示还有需要翻译的字符串。是因为它们尚未翻译或基本字符串发生了变化。

在右下角显示所选节点的所有可能变体。当执行节点时,它们都具有在游戏中显示的相同概率。
如果该行为蓝色,则表示该行需要转换(与节点相同)。翻译完所有行后,节点红色虚线矩形将消失。
重要说明:要应用翻译,必须按“Enter”,否则更改将不适用。这也适用于翻译时保持不变的行。

翻译笔记:对话框中的某些行包含斜杠(/)之间的字符串,如/ HELL /或/ YOUTHERE /,这表示单词交换。这个单词交换是随机或基于上下文的替换在游戏中的其他单词。与支架类似,内部应保持相同,并可移动。

单词交换:
单词交换是对话行,包含主对话的交换单词。
与对话一样,他们有不同的条件和条件。
e.导入:
要将翻译的 gamedata.po文件导入翻译模式,请按照以下步骤操作:
1.将已翻译的gamedata.po文件放在导出.pot文件所在的文件夹中(Kenshi \ __ translations \ <locale> \)

2.打开导入/导出翻译窗口(与exctraction部分相同)

3.按“导入”按钮。

完成此操作后,所有翻译都将加载到活动翻译模式。在翻译模式中,基本游戏数据更改将不可见,因为它仅显示对话内容。
如果要查看FCS中的更改,请激活翻译模式,但在单击“ 完成”按钮之前,按住Alt键,然后单击按钮。这将加载翻译为普通mod。

特别说明:如果您使用以前的系统导出对话文件夹并对其进行翻译,请将对话框文件夹放在与gamedata.po相同的位置。文件并使用导入功能。这会将这些翻译添加到翻译模式。与基本字母相同的翻译字符串将在编辑器中显示为非翻译字符串。
f.打包:
完成翻译或想要部分发布后,您需要将更改保存在FCS中,并将所有文件放在相应的文件夹中。
1.创建最终文件夹(输出文件夹):
a.如果要创建普通翻译,请在Kenshi \ locale \中创建一个文件夹,其名称格式为上面“格式/文件夹”部分中指定的格式。
例如:Kenshi \ locale \ fr-FR \
b.如果要创建mod转换,请在mod文件夹中创建一个名为locale的文件夹(例如Kenshi \ mods \ <mytranslationmod>),其中包含一个文件夹,其名称格式为上面格式/文件夹部分中指定的格式。
例如:Kenshi \ mods \ <mytranslationmod> \ locale \ fr-FR \
2.复制翻译结果文件:

[*]将.translation文件复制到输出文件夹(在步骤3.1中创建)。如果未使用FCS工具提取/构建文件,请忽略此步骤。
[*]在名为LC_MESSAGES的输出文件夹(步骤3.1)下创建一个文件夹
[*]将已翻译的main.mo文件(请注意,即.MO文件,而不是.po文件)复制到LC_MESSAGES文件夹中。
输出文件夹应如下所示:
正常翻译
代码:全选
Kenshi
\---locale
   \---ru
          |   ru.translation
          |   
          \---LC_MESSAGES
               main.moMod翻译
代码:全选
Kenshi
\---mods
    \---my_russian_translation
      |   my_russian_translation.mod
      |         
      \---locale
            \---ru
                |   ru.translation
                |   
                \---LC_MESSAGES
                        main.mog.额外内容
由于游戏附带的字体(可能还有其他内容)不支持所有语言,因此您可能需要修改或添加新内容到您的mod /翻译。
幸运的是,两种类型(普通和现代翻译)都支持轻松修改或添加额外的游戏文件:
对于Mod翻译,因为它的工作方式与mod相同,所以您只需要使用相同的结构在mod文件夹上创建文件夹,并放置要添加或替换的文件。(例如:Kenshi \ mod \ mymod \〜= Kenshi \ data \)
对于普通翻译,输出文件夹的行为与mod文件夹相同。(例如:Kenshi \ locale \ ru \〜= Kenshi \ data \)
最简单的解释方法是举个例子。
在这种情况下,我要做的是添加额外的字体以支持俄语字母。
如果你检查游戏中的当前字体(Kenshi / data / gui / fonts /),其中只有一个支持西里尔字母(Exo2),但是,如果你检查kenshi_fonts.xml(这是游戏加载的文件)并且包含该字体的所有字体信息)它仅使用不包括西里尔字符的字符代码范围32到126。要解决这个问题,我们需要添加这些字符范围。
之前:
代码:全选
<Code range="32 126"/>后:
代码:全选
<Code range="32 126"/>
<Code range="1024 1279"/>注意:我不知道是否包含所有需要的字符,现在让我们假设它已经足够了。

对于使用的其他两种字体,我们需要选择新的字体(https://fonts.google.com/是很好的免费字体的良好来源)并修改kenshi_fonts.xml以使用这些新字体(并且还添加字符代码)范围)。
完成后,最后一步是将它们复制到locale / mod输出文件夹。

结果将是这样的:
正常翻译
代码:全选
Kenshi
\---locale
    \---ru
      |   ru.translation
      |   tips.txt
      |   namesF.txt
      |   namesM.txt
      |   namesMF.txt
      |   
      +---gui
      |   \---fonts
      |         kenshi_fonts.xml
      |         pretty_font_with_cyrilic_chars.ttf
      |         some_font_with_cyrilic_chars.ttf
      |
      \---LC_MESSAGES
                main.mo
    Mod翻译
代码:全选
Kenshi
\---mods
    \---russian
      |   russian.mod
      |   tips.txt
      |   namesF.txt
      |   namesM.txt
      |   namesMF.txt
      |
      +---gui
      |   \---fonts
      |         kenshi_fonts.xml
      |         pretty_font_with_cyrilic_chars.ttf
      |         some_font_with_cyrilic_chars.ttf
      |         
      \---locale
            \---ru
                |   ru.translation
                |   
                \---LC_MESSAGES
                        main.mo
    注1:我没有包含Exo2字体,因为它们已经在游戏数据文件夹中。
注2:我已经将tips.txt,namesF.txt等作为可修改的其他文件的示例包括在内。
h.分享和获利?
将它上传到Steam Workshop,到另一个站点或用它做任何你想做的事情。
普通的留言:

[*]由于游戏已经是英语,因此将忽略名为“en-GB”的语言环境文件夹。您仍然可以为英语创建国家/地区变体。(即:en-US,en-AU等)
常见问题:

[*]如何使FCS尽可能便携?
您只需要以下文件:
代码:全选
Kenshi
|   CSteamworks.dll.dll (*)
|   DialogConditionControl.dll
|   forgotten construction set.exe
|   NLog.dll
|   PropertyGrid.dll
|   steam_api.dll (*)
|   Steamworks.NET.dll (*)
|   
+---data
|       Dialogue.mod
|       gamedata.base
|       Newwworld.mod
|       rebirth.mod
|      
\---__translations
    \---es_ES
         ...(*)仅适用于Steam版本。
注意:需要维护文件夹结构。
编辑:
现在翻译是直接在FCS上进行的。(这种方式更容易获得上下文。)
这将以特殊模式运行FCS,您可以在其中查看所有对话行和单词交换,并在看到原始字符串时修改它们。
导出只会导出基本游戏数据(即非对话内容)。导入功能将导入基础和对话翻译(用于旧版翻译)。
现在,您将能够为您的语言的对话行添加新的行选项。


3DMyiyiy 发表于 2021-1-12 23:20

厉害学习

凯文先森 发表于 2021-1-21 15:40

6666666666666

哈哈还有个 发表于 2021-1-24 00:38

666666666666666666666666666
页: [1]
查看完整版本: 《剑士(Kenshi)》汉化制作教程指南