Drpepper023(讨论 | 贡献) (翻译) |
Drpepper023(讨论 | 贡献) 无编辑摘要 |
||
(未显示同一用户的4个中间版本) | |||
第46行: | 第46行: | ||
== 方括号指令 == | == 方括号指令 == | ||
方括号指令(范围本地化声明) 用方括号(<code>[ ]</code>)包裹,以一个主 | 方括号指令(范围本地化声明) 用方括号(<code>[ ]</code>)包裹,以一个主 作用域 为开头,一段检索用文本为结尾。中间可以包含一个或数个次 作用域 。目标之间用小数点号(.)分隔。文本检索可以提前定义(参考下方的例子),可以引用 作用域 中声明的变量,也可以是段scripted_loc【即带脚本的语言文件】(参考common/scripted_loc底下的文件)。在写“''scripted_loc''”条目时,要注意这些条目本身不能用方括号指令(例如:一段带有<code>[Root.GetName]</code>的scripted_loc会直接原封不动地显示<code>[Root.GetName]</code>)。 | ||
注意:如果你想在[[scripted effect|脚本效果]]或[[scripted trigger|触发器]]中使用例如 <code>log = [This.GetName]</code> 这样的本地化指令,你得把它写成<code>\\[This.GetName]</code>,不然就会出错(至少会在效果中第二次使用时出现)。 | 注意:如果你想在[[scripted effect|脚本效果]]或[[scripted trigger|触发器]]中使用例如 <code>log = [This.GetName]</code> 这样的本地化指令,你得把它写成<code>\\[This.GetName]</code>,不然就会出错(至少会在效果中第二次使用时出现)。 | ||
第58行: | 第58行: | ||
下方表格只记录了一部分的硬编码范围本地化指令(也没有涉及任何脚本语言文件)。一份更详尽的代码名单可以在<code>Stellaris\logs\script_documentation\localizations.log</code>里找到。 | 下方表格只记录了一部分的硬编码范围本地化指令(也没有涉及任何脚本语言文件)。一份更详尽的代码名单可以在<code>Stellaris\logs\script_documentation\localizations.log</code>里找到。 | ||
==== 主 | ==== 主 作用域 ==== | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! 指令 !! 使用范例 !! 注释 | ! 指令 !! 使用范例 !! 注释 | ||
|- | |- | ||
| Root || [Root.GetName] || 事件的根 | | Root || [Root.GetName] || 事件的根 作用域 | ||
|- | |- | ||
| This || [This.GetName] || 当前 | | This || [This.GetName] || 当前 作用域 | ||
|- | |- | ||
| From || [From.From.GetName] || 调用事件的 | | From || [From.From.GetName] || 调用事件的 作用域 。对于调用栈中更早位置的事件,From也可以充当次 作用域 | ||
|- | |- | ||
| Prev || [Prev.From.GetName] || 上一个目标。我不清楚Prev.From指向的是什么,不过有些项目的描述中有用到。 | | Prev || [Prev.From.GetName] || 上一个目标。我不清楚Prev.From指向的是什么,不过有些项目的描述中有用到。 | ||
第82行: | 第82行: | ||
|} | |} | ||
==== 次 | ==== 次 作用域 ==== | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
第92行: | 第92行: | ||
|- | |- | ||
| Leader|| [Root.Leader.GetName] || 当前 | | Leader|| [Root.Leader.GetName] || 当前 作用域 的领导人(<small>舰队、国家、联邦、人口派系、第一次接触、情报行动、间谍网、星区</small>) | ||
|- | |- | ||
! colspan=3 style="font-size:small"| 战争活动 | ! colspan=3 style="font-size:small"| 战争活动 | ||
|- | |- | ||
| MainAttacker || [This.MainAttacker.GetAllianceName] || 当前 | | MainAttacker || [This.MainAttacker.GetAllianceName] || 当前 作用域 的主进攻者( 作用域 必须是战争),在战争名称样式中使用。 | ||
|- | |- | ||
| MainDefender || [This.MainDefender.GetSpeciesName] || 当前 | | MainDefender || [This.MainDefender.GetSpeciesName] || 当前 作用域 的主防御者( 作用域 必须是战争),在战争名称样式中使用。 | ||
|- | |- | ||
! colspan=3 style="font-size:small"| 星球活动:拥有者/所在星系/卫星/星区 | ! colspan=3 style="font-size:small"| 星球活动:拥有者/所在星系/卫星/星区 | ||
|- | |- | ||
| Owner || [Root.Owner.GetName] || 当前 | | Owner || [Root.Owner.GetName] || 当前 作用域 的拥有者 | ||
|- | |- | ||
| System || [Root.System.GetName] || 主 | | System || [Root.System.GetName] || 主 作用域 所在的星系 | ||
|- | |- | ||
| Planet || [Root.Planet.GetName] || 当前 | | Planet || [Root.Planet.GetName] || 当前 作用域 所处的星球(<small>人口、陆军、考古遗址、资源点、巨构建筑</small>) | ||
|} | |} | ||
=== 文本 | === 检索用 文本 === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! 指令 !! 使用范例 !! 注释 | ! 指令 !! 使用范例 !! 注释 | ||
|- | |- | ||
| GetAdj || [Root.GetAdj] || 当前 | | GetAdj || [Root.GetAdj] || 当前 作用域 所关联的形容词 | ||
|- | |- | ||
| GetAdjective || [Root.GetAdjective] || 当前 | | GetAdjective || [Root.GetAdjective] || 当前 作用域 所关联的形容词 | ||
|- | |- | ||
| GetAllianceName || [This.MainAttacker.GetAllianceName] || 当前 | | GetAllianceName || [This.MainAttacker.GetAllianceName] || 当前 作用域 所属的军事同盟的名称 | ||
|- | |- | ||
| GetControllerName|| [Root.GetControllerName] || 当前控制者的名称(已知能对星球生效) | | GetControllerName|| [Root.GetControllerName] || 当前控制者的名称(已知能对星球生效) | ||
第124行: | 第124行: | ||
| GetClassName || [Root.GetClassName] || 当前星球种类的名称 | | GetClassName || [Root.GetClassName] || 当前星球种类的名称 | ||
|- | |- | ||
| GetFleetName || [Root.GetFleetName] || 与当前 | | GetFleetName || [Root.GetFleetName] || 与当前 作用域 关联的舰队名称 | ||
|- | |- | ||
| GetHeirName || [Root.GetHeirName] || 当前继承人的名字 | | GetHeirName || [Root.GetHeirName] || 当前继承人的名字 | ||
第130行: | 第130行: | ||
| GetHeirTitle || [Root.GetHeirTitle] || 当前继承人的头衔 | | GetHeirTitle || [Root.GetHeirTitle] || 当前继承人的头衔 | ||
|- | |- | ||
| GetHomeWorldName || [Root.GetHomeWorldName] || 当前 | | GetHomeWorldName || [Root.GetHomeWorldName] || 当前 作用域 的母星名称 | ||
|- | |- | ||
| GetLeaderName || [Root.GetLeaderName] || 与当前 | | GetLeaderName || [Root.GetLeaderName] || 与当前 作用域 关联的领袖名称 | ||
|- | |- | ||
| GetName || [Root.GetName] || 与当前 | | GetName || [Root.GetName] || 与当前 作用域 关联的名称 | ||
|- | |- | ||
| GetFirstName || [Root.GetFirstName] || 与当前 | | GetFirstName || [Root.GetFirstName] || 与当前 作用域 领袖关联的第一个名称 | ||
|- | |- | ||
| GetSecondName || [Root.GetSecondName] || 与当前 | | GetSecondName || [Root.GetSecondName] || 与当前 作用域 领袖关联的第二个名称 | ||
|- | |- | ||
| GetAge || [Root.GetAge] || | | GetAge || [Root.GetAge] || 作用域 领袖的年龄 | ||
|- | |- | ||
| GetNamePlural || [Root.GetNamePlural] || 与当前 | | GetNamePlural || [Root.GetNamePlural] || 与当前 作用域 关联的复数称谓(必须是一个物种) | ||
|- | |- | ||
| GetNebula || [Root.GetNebula] || (未知) | | GetNebula || [Root.GetNebula] || (未知) | ||
第150行: | 第150行: | ||
| GetPersonalityName || [Root.GetPersonalityName] || 当前AI性格的名称 | | GetPersonalityName || [Root.GetPersonalityName] || 当前AI性格的名称 | ||
|- | |- | ||
| GetPlanetMoon || [Root.GetPlanetMoon] || 返回“星球”或者“卫星”,取决于当前 | | GetPlanetMoon || [Root.GetPlanetMoon] || 返回“星球”或者“卫星”,取决于当前 作用域 是哪一种 | ||
|- | |- | ||
| GetPlanetMoonCap || [Root.GetPlanetMoonCap] || 返回“星球”或者“卫星”,取决于当前 | | GetPlanetMoonCap || [Root.GetPlanetMoonCap] || 返回“星球”或者“卫星”,取决于当前 作用域 是哪一种【与上条区别在于英文首字母大写】 | ||
|- | |- | ||
| GetPopFactionName || [Root.GetPopFactionName] || 当前 | | GetPopFactionName || [Root.GetPopFactionName] || 当前 作用域 的人口派系的名称 | ||
|- | |- | ||
| GetRandomSpeciesSound || [Root.GetRandomSpeciesSound] || 从当前 | | GetRandomSpeciesSound || [Root.GetRandomSpeciesSound] || 从当前 作用域 物种相关联的声音列表里随机选一个进行播放 | ||
|- | |- | ||
| GetRegnalName || [Root.GetRegnalName] || 当前 | | GetRegnalName || [Root.GetRegnalName] || 当前 作用域 的尊称 | ||
|- | |- | ||
| GetRulerName || [Root.GetRulerName] || 当前 | | GetRulerName || [Root.GetRulerName] || 当前 作用域 关联的统治者名称 | ||
|- | |- | ||
| GetRulerTitle || [Root.GetRulerTitle] || 当前 | | GetRulerTitle || [Root.GetRulerTitle] || 当前 作用域 关联的统治者头衔 | ||
|- | |- | ||
| GetSpeciesAdj || [Root.GetSpeciesAdj] || 当前 | | GetSpeciesAdj || [Root.GetSpeciesAdj] || 当前 作用域 的物种的形容词形式 | ||
|- | |- | ||
| GetSpeciesClass || [Root.GetSpeciesClass] || 当前 | | GetSpeciesClass || [Root.GetSpeciesClass] || 当前 作用域 的物种所属类别 | ||
|- | |- | ||
| GetSpeciesClassPlural || [Root.GetSpeciesClassPlural] || 当前 | | GetSpeciesClassPlural || [Root.GetSpeciesClassPlural] || 当前 作用域 的物种所属类别的复数形式 | ||
|- | |- | ||
| GetSpeciesMouthName || [Root.GetSpeciesMouthName] || 当前 | | GetSpeciesMouthName || [Root.GetSpeciesMouthName] || 当前 作用域 的物种所属类别的嘴巴的名称 | ||
|- | |- | ||
| GetSpeciesName || [Root.GetSpeciesName] || 当前 | | GetSpeciesName || [Root.GetSpeciesName] || 当前 作用域 的物种名称 | ||
|- | |- | ||
| GetSpeciesNameCompliment || [From.GetSpeciesNameCompliment] || 用当前 | | GetSpeciesNameCompliment || [From.GetSpeciesNameCompliment] || 用当前 作用域 物种的名字发出一条赞美 | ||
|- | |- | ||
| GetSpeciesNameInsult || [From.From.GetSpeciesNameInsult] || 用当前 | | GetSpeciesNameInsult || [From.From.GetSpeciesNameInsult] || 用当前 作用域 物种的名字发出一条侮辱 | ||
|- | |- | ||
| GetSpeciesNamePlural || [This.GetSpeciesNamePlural] || 当前 | | GetSpeciesNamePlural || [This.GetSpeciesNamePlural] || 当前 作用域 物种名称的复数形式 | ||
|- | |- | ||
| GetSpeciesNamePluralCompliment || [Root.SpeciesNamePluralCompliment] || 用当前 | | GetSpeciesNamePluralCompliment || [Root.SpeciesNamePluralCompliment] || 用当前 作用域 物种的复数称谓发出一条赞美 | ||
|- | |- | ||
| GetSpeciesNamePluralInsult || [From.SpeciesNamePluralInsult] || 用当前 | | GetSpeciesNamePluralInsult || [From.SpeciesNamePluralInsult] || 用当前 作用域 物种的复数称谓发出一条侮辱 | ||
|- | |- | ||
| GetSpeciesHandName || [From.GetSpeciesHandName] || 描述当前 | | GetSpeciesHandName || [From.GetSpeciesHandName] || 描述当前 作用域 物种的手的词 | ||
|- | |- | ||
| GetSpeciesMouthName || [From.GetSpeciesMouthName] || 描述当前 | | GetSpeciesMouthName || [From.GetSpeciesMouthName] || 描述当前 作用域 物种的嘴的词 | ||
|- | |- | ||
| GetSpeciesOrganName || [From.GetSpeciesOrganName] || 描述当前 | | GetSpeciesOrganName || [From.GetSpeciesOrganName] || 描述当前 作用域 物种的内部器官的词 | ||
|- | |- | ||
| GetSpeciesSpawnName || [Root.GetSpeciesSpawnName || 描述当前 | | GetSpeciesSpawnName || [Root.GetSpeciesSpawnName || 描述当前 作用域 物种的小孩的词 | ||
|- | |- | ||
| GetSpeciesSpawnNamePlural || [Root.GetSpeciesSpawnNamePlural || 当前 | | GetSpeciesSpawnNamePlural || [Root.GetSpeciesSpawnNamePlural || 当前 作用域 物种的小孩的复数称谓 | ||
|- | |- | ||
| GetStarName || [Root.Capital.GetStarName] || 当前 | | GetStarName || [Root.Capital.GetStarName] || 当前 作用域 所在的恒星的名字 | ||
|- | |- | ||
| GetHerHim || [admiral.GetHerHim] || 按角色的性别输出“他”或“她” | | GetHerHim || [admiral.GetHerHim] || 按角色的性别输出“他”或“她” | ||
第223行: | 第223行: | ||
== 颜色代码 == | == 颜色代码 == | ||
[[File:Color codes in-game.png|thumb| | [[File:Color codes in-game.png|thumb| 游戏内的颜色代码]] | ||
颜色代码以<code>§</code>作开头(Windows快捷键:ALT+0167),后面跟着一个单一字母来指定所用的颜色,直到检测到另一个颜色代码,或以<code>§!</code>结尾为止。指令'''<code>$</code>'''代表着当前显示的变量的颜色(不是字符串定义,详见''[[#$ Codes|代码$]]'' ),也能通过用'''<code>{{!}}</code>'''以及颜色代码字母来隔开一对闭合的'''<code>$</code>''' 以指定颜色,如:<code>$AGE|Y$</code> | 颜色代码以<code>§</code>作开头(Windows快捷键:ALT+0167),后面跟着一个单一字母来指定所用的颜色,直到检测到另一个颜色代码,或以<code>§!</code>结尾为止。指令'''<code>$</code>'''代表着当前显示的变量的颜色(不是字符串定义,详见''[[#$ Codes|代码$]]'' ),也能通过用'''<code>{{!}}</code>'''以及颜色代码字母来隔开一对闭合的'''<code>$</code>''' 以指定颜色,如:<code>$AGE|Y$</code> | ||
第271行: | 第271行: | ||
代码£用于各种系统图标的名称,包括能量币、矿物、影响力,和三种研究类型(工程学、物理学、社会学)。还有更多没有列在此处,比如<code>£ship_stats_hitpoints\armor\shield£</code>、<code>£fleet_template_size£</code>以及<code>£trigger_yes\no£</code> 与其他种种。可以用类似于Notepad++的在文件中查找功能来搜索‘£’字符,以找到特定的某样东西。记住代码£必须包围着你所感兴趣的标签,例如<code>'''£'''energy'''£'''</code>。(没有英镑符号的Windows用户可以在键盘上按<code>Alt + 0163</code>) | 代码£用于各种系统图标的名称,包括能量币、矿物、影响力,和三种研究类型(工程学、物理学、社会学)。还有更多没有列在此处,比如<code>£ship_stats_hitpoints\armor\shield£</code>、<code>£fleet_template_size£</code>以及<code>£trigger_yes\no£</code> 与其他种种。可以用类似于Notepad++的在文件中查找功能来搜索‘£’字符,以找到特定的某样东西。记住代码£必须包围着你所感兴趣的标签,例如<code>'''£'''energy'''£'''</code>。(没有英镑符号的Windows用户可以在键盘上按<code>Alt + 0163</code>) | ||
其同时也支持多框架(如果子来源有的话),例如:<code>£leader_skill|3£</code>会渲染一个指定技能等级的图 | 其同时也支持多框架(如果子来源有的话),例如:<code>£leader_skill|3£</code>会渲染一个指定技能等级的图 标 。 | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
第331行: | 第331行: | ||
== 基于斜杠的代码 == | == 基于斜杠的代码 == | ||
两种可用的斜杠代码分别是<code>\n</code> 和<code>\t</code> 。<br> | |||
<code>\n</code> | <code>\n</code> 等价于按下回车键并换行,除非它在上述代码的内部。<br> | ||
<code>\t</code> | <code>\t</code> 生成一个制表符。<br><br> | ||
斜杠同时也能用做将特殊字符还原为文本字符,比如<code>\"</code> 会让字符串带上一个双引号,而不是结束字符串。 | |||
== | == 格式指导 == | ||
原版活动、修正和所有其他类型的本地化都遵循一套标点符号与大小写的规范。下方表格标出了原版英文本地化中用到的一些规则,使玩家自订的内容能更好地融入其中。表格并不完善,但可用作大多数常用文本的快捷备忘单。给出的字符数量限制并不是硬性要求,不过视位置而定超出限制可能导致文本被截断,破坏UI布局,或单单溢出框外显得难看。 | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! 位置 !! 大小写 !! 标点符号 !! 字数限制 !! 范例 | ||
|- | |- | ||
| | | 事件名称 || 每个单词首字母大写 || 无 || 50 || "Exotic Woodwind" | ||
|- | |- | ||
| | | 事件描述 || 句首字母大写 || 标准 || 2000 || "Music has taken many forms among the beings we have encountered since leaving [Root.GetHomeWorldName], and the methods and preferences continue to baffle us. Sometimes alien […] Whatever this instrument is, it’s unlike any of our own." | ||
|- | |- | ||
| | | 事件选项 || 句首字母大写 || 句尾终止式 || 70 || "An excellent time to learn more about their culture.", "Let us be careful and study this instrument.", "The colony is part of our future. It stays." | ||
|- | |- | ||
| | | 特质/ 修正/ 建筑/ 思潮等名称 || 每个单词首字母大写 || 无 || 30 || "Building Cost", "Massive Crater", "Very Strong" | ||
|- | |- | ||
| | | 特质/ 修正/ 建筑/ 思潮等描述 || 句首字母大写 || 标准 || 200 || "The impact site of the meteorite which brought Lithoids to this planet.", "Members of this species possess a strength that almost defies the laws of physics." | ||
|- | |- | ||
| UI | | UI 按钮 || 两者兼有 || 无 || 取决于UI || "Withdraw" | ||
|- | |- | ||
| UI | | UI 通知 || 每个单词首字母大写 || 无 || 取决于UI || "Relic Activation Available" | ||
|} | |} | ||
== | == 参考 == | ||
<references /> | <references /> | ||
{{ModdingNavbox}} | {{ModdingNavbox}} | ||
[[Category:模组制作]] | [[Category:模组制作]] |
2022年6月6日 (一) 02:31的最新版本
本地化是指在游戏内窗口实际呈现给玩家的文本,如事件、菜单、武器、故事等。本地化文件以.yml的格式保存在localisation/folder路径底下,且以UTF-8-BOM的格式编码。.yml文件的命名惯例是<文件名>_l_<语言名>.yml,其中<文件名>为这组本地化的名字,而<语言名>为本地化的目标语言。目前支持的语言有葡萄牙语(braz_por),英语(english),法语(french),德语(german),波兰语(polish),俄语(russian),西班牙语(spanish),以及简体中文(simp_chinese)。
实用指令:
reload text – 重新加载本地化目录。 switchlanguage l_english – 切换语言并重新加载本地化目录。
创建本地化文件[编辑 | 编辑源代码]
- 在模组的根文件夹(注意不在common里)创建一个名为“localisation”的文件夹。注意,在某些别的paradox游戏里用的可能是美式拼写、带有z的“localization”。
- (可选)在“localisation”文件夹中创建对应语言的子文件夹。这有助于管理,但不是必需的。
- 群星的本地化文件是用UTF-8-BOM编码的。UTF-8-BOM是唯一可用的编码方式,就算用UTF-8编码也会导致群星无法解析从而不能使用。
- 正确编码的最简单做法是复制一个现成的群星.yml文件,再直接对其进行编辑。
- 作为替代,你也可以创建一个标准的空白文本文档,再以UTF-8-BOM编码保存它。类似Notepad++和Visual Studio Code这样的文本编辑器能让你手动将文件保存为UTF-8-BOM编码格式。
- 文件名必须以“_l_<语言名>”结尾,否则无法被读取。
- 任何本地化文件的第一行都必须是
l_<language>:
,否则无法被读取。 - 范例文件名:
mod_buildings_l_english.yml
将YML文件命名为与一个原版YML文件相同会导致原版被覆盖。这么做并不推荐, 除非你打算改写文件内(几乎)所有的条目。本地化条目可以通过保存到“Replace”文件夹以单独进行覆盖,详见覆盖原版文本。
遗憾的是,游戏并没有适配模组的语言回滚功能。这意味着当本地化键值缺失时,键值会直接以文本形式呈现。因此,对应的做法是先直接把英语文件复制到其他所有语言里(改成合适的标题)。
文件编码[编辑 | 编辑源代码]
- 使用一个文本编辑器打开YML文件。推荐使用类似Notepad++和Visual Studio Code 这样的编辑器,如果上述软件不可用的话,普通的记事本也行。
- 将文件转码成UTF-8-BOM的格式。
- 使用Notepad++时,前往菜单栏,打开编码 界面。
- 使用Visual Studio Code时,前往右下角并点击编码(默认为
UTF-8
),再点击保存编码。作为替代,也可以通过改变设置来让VSC默认以UTF-8-BOM 格式生成YML文件。 - 使用记事本时,前往另存为...,改变编码并保存文件。
- 如果列出来的选项中同时有UTF-8 和UTF-8 with BOM(或相似的名称),选用UTF-8-BOM。
- 如果列出来的选项中同时有UTF-8 和UTF-8 without BOM(或相似的名称),选用UTF-8。【译注:即一定要带BOM】
本地化键值[编辑 | 编辑源代码]
l_<语言名>: localisation_key_1: "文本1" localisation_key_2: "文本2"
每个单独的本地化条目被称为“键值”,位于冒号的左侧,是指向本地化文本的实际代码。而游戏内显示的文本则位于冒号的右侧,包夹在双引号("")里。冒号是分隔符。
- 原版文件中紧接在冒号后面的数字可以被忽略,那是Paradox内部用于跟踪翻译用的。[1]
- 在出现任何本地化键值之前,文件必须先包含
l_english:
(或其他语言的相等形式)。 l_english:
(或相等)之后的所有条目必须以空格开始(空格或tab都行)。- 所有要在游戏内显示的文本都被双引号所包裹。想在游戏内显示双引号的话,请在双引号前面加上反斜杠(例如:
text \"name\"
)。 - 注意以下这些unicode字符在本地化文件中是不可用的,会生成一个“?”:
„ “ ‚ ‘ – ” ’ … —
覆盖原版文本[编辑 | 编辑源代码]
想要覆盖原版本地化键值(或其他模组的键值)时,在你的“localisation”文件夹底下创建一个名为“replace”的文件夹。该文件夹中的本地化文件的读取比其他所有本地化文件都晚,能覆盖掉任何重复的键值。这样做可以避免覆盖所有本地化文件,每个键值条目会单独被最后加载的文件所覆盖。不通过“replace”文件夹来覆盖本地化是可行的,但并不可靠。
方括号指令[编辑 | 编辑源代码]
方括号指令(范围本地化声明) 用方括号([ ]
)包裹,以一个主作用域为开头,一段检索用文本为结尾。中间可以包含一个或数个次作用域。目标之间用小数点号(.)分隔。文本检索可以提前定义(参考下方的例子),可以引用作用域中声明的变量,也可以是段scripted_loc【即带脚本的语言文件】(参考common/scripted_loc底下的文件)。在写“scripted_loc”条目时,要注意这些条目本身不能用方括号指令(例如:一段带有[Root.GetName]
的scripted_loc会直接原封不动地显示[Root.GetName]
)。
注意:如果你想在脚本效果或触发器中使用例如 log = [This.GetName]
这样的本地化指令,你得把它写成\\[This.GetName]
,不然就会出错(至少会在效果中第二次使用时出现)。
大多数情况下可以通过'[Scope.my_variable]'
来获取变量的赋值,以及通过'[Scope.my_date_flag]'
来获取保存的日期。(从3.1起)
两个连续的左方括号 '[['
会跳过指令,使一个单独的方括号呈现在文本里。例如文件中的'[[范例]'
会在游戏中显示为'[范例]'。
有几条指令是无范围的:GetDate, GetMidGameDate, GetLateGameDate, GetYear, LastKilledCountryName
。
下方表格只记录了一部分的硬编码范围本地化指令(也没有涉及任何脚本语言文件)。一份更详尽的代码名单可以在Stellaris\logs\script_documentation\localizations.log
里找到。
主作用域[编辑 | 编辑源代码]
指令 | 使用范例 | 注释 |
---|---|---|
Root | [Root.GetName] | 事件的根作用域 |
This | [This.GetName] | 当前作用域 |
From | [From.From.GetName] | 调用事件的作用域。对于调用栈中更早位置的事件,From也可以充当次作用域 |
Prev | [Prev.From.GetName] | 上一个目标。我不清楚Prev.From指向的是什么,不过有些项目的描述中有用到。 |
<event target tag> | [mytarget.GetName] | 事件目标(Event target)标签要在本地化文件中声明event_target: 后才能使用。
|
外交活动 | ||
Actor | [Actor.GetAllianceName] | 用于外交回应消息,发起行动的一方 |
Recipient | [Recipient.GetName] | 用于外交回应消息,作为行动目标的一方 |
Third_party | [Third_party.GetName] | 用于外交回应消息,行动中牵涉到的第三方 |
次作用域[编辑 | 编辑源代码]
指令 | 使用范例 | 注释 |
---|---|---|
国家活动:首都/统治者/继承人/物种/联邦 | ||
Capital | [Root.Capital.GetName] | 当前国家或星区的首都 |
Leader | [Root.Leader.GetName] | 当前作用域的领导人(舰队、国家、联邦、人口派系、第一次接触、情报行动、间谍网、星区) |
战争活动 | ||
MainAttacker | [This.MainAttacker.GetAllianceName] | 当前作用域的主进攻者(作用域必须是战争),在战争名称样式中使用。 |
MainDefender | [This.MainDefender.GetSpeciesName] | 当前作用域的主防御者(作用域必须是战争),在战争名称样式中使用。 |
星球活动:拥有者/所在星系/卫星/星区 | ||
Owner | [Root.Owner.GetName] | 当前作用域的拥有者 |
System | [Root.System.GetName] | 主作用域所在的星系 |
Planet | [Root.Planet.GetName] | 当前作用域所处的星球(人口、陆军、考古遗址、资源点、巨构建筑) |
检索用文本[编辑 | 编辑源代码]
指令 | 使用范例 | 注释 |
---|---|---|
GetAdj | [Root.GetAdj] | 当前作用域所关联的形容词 |
GetAdjective | [Root.GetAdjective] | 当前作用域所关联的形容词 |
GetAllianceName | [This.MainAttacker.GetAllianceName] | 当前作用域所属的军事同盟的名称 |
GetControllerName | [Root.GetControllerName] | 当前控制者的名称(已知能对星球生效) |
GetClassName | [Root.GetClassName] | 当前星球种类的名称 |
GetFleetName | [Root.GetFleetName] | 与当前作用域关联的舰队名称 |
GetHeirName | [Root.GetHeirName] | 当前继承人的名字 |
GetHeirTitle | [Root.GetHeirTitle] | 当前继承人的头衔 |
GetHomeWorldName | [Root.GetHomeWorldName] | 当前作用域的母星名称 |
GetLeaderName | [Root.GetLeaderName] | 与当前作用域关联的领袖名称 |
GetName | [Root.GetName] | 与当前作用域关联的名称 |
GetFirstName | [Root.GetFirstName] | 与当前作用域领袖关联的第一个名称 |
GetSecondName | [Root.GetSecondName] | 与当前作用域领袖关联的第二个名称 |
GetAge | [Root.GetAge] | 作用域领袖的年龄 |
GetNamePlural | [Root.GetNamePlural] | 与当前作用域关联的复数称谓(必须是一个物种) |
GetNebula | [Root.GetNebula] | (未知) |
GetOwnerName | [Root.GetOwnerName] | 当前所有者的名称 |
GetPersonalityName | [Root.GetPersonalityName] | 当前AI性格的名称 |
GetPlanetMoon | [Root.GetPlanetMoon] | 返回“星球”或者“卫星”,取决于当前作用域是哪一种 |
GetPlanetMoonCap | [Root.GetPlanetMoonCap] | 返回“星球”或者“卫星”,取决于当前作用域是哪一种【与上条区别在于英文首字母大写】 |
GetPopFactionName | [Root.GetPopFactionName] | 当前作用域的人口派系的名称 |
GetRandomSpeciesSound | [Root.GetRandomSpeciesSound] | 从当前作用域物种相关联的声音列表里随机选一个进行播放 |
GetRegnalName | [Root.GetRegnalName] | 当前作用域的尊称 |
GetRulerName | [Root.GetRulerName] | 当前作用域关联的统治者名称 |
GetRulerTitle | [Root.GetRulerTitle] | 当前作用域关联的统治者头衔 |
GetSpeciesAdj | [Root.GetSpeciesAdj] | 当前作用域的物种的形容词形式 |
GetSpeciesClass | [Root.GetSpeciesClass] | 当前作用域的物种所属类别 |
GetSpeciesClassPlural | [Root.GetSpeciesClassPlural] | 当前作用域的物种所属类别的复数形式 |
GetSpeciesMouthName | [Root.GetSpeciesMouthName] | 当前作用域的物种所属类别的嘴巴的名称 |
GetSpeciesName | [Root.GetSpeciesName] | 当前作用域的物种名称 |
GetSpeciesNameCompliment | [From.GetSpeciesNameCompliment] | 用当前作用域物种的名字发出一条赞美 |
GetSpeciesNameInsult | [From.From.GetSpeciesNameInsult] | 用当前作用域物种的名字发出一条侮辱 |
GetSpeciesNamePlural | [This.GetSpeciesNamePlural] | 当前作用域物种名称的复数形式 |
GetSpeciesNamePluralCompliment | [Root.SpeciesNamePluralCompliment] | 用当前作用域物种的复数称谓发出一条赞美 |
GetSpeciesNamePluralInsult | [From.SpeciesNamePluralInsult] | 用当前作用域物种的复数称谓发出一条侮辱 |
GetSpeciesHandName | [From.GetSpeciesHandName] | 描述当前作用域物种的手的词 |
GetSpeciesMouthName | [From.GetSpeciesMouthName] | 描述当前作用域物种的嘴的词 |
GetSpeciesOrganName | [From.GetSpeciesOrganName] | 描述当前作用域物种的内部器官的词 |
GetSpeciesSpawnName | [Root.GetSpeciesSpawnName | 描述当前作用域物种的小孩的词 |
GetSpeciesSpawnNamePlural | [Root.GetSpeciesSpawnNamePlural | 当前作用域物种的小孩的复数称谓 |
GetStarName | [Root.Capital.GetStarName] | 当前作用域所在的恒星的名字 |
GetHerHim | [admiral.GetHerHim] | 按角色的性别输出“他”或“她” |
GetSheHe | [abducted_leader.GetSheHe] | 按角色的性别输出“他”或“她” |
GetSheHeCap | [abducted_leader.GetSheHeCap] | 按角色的性别输出“他”或“她”【与上条区别在于英文首字母大写】 |
GetHomeWorldName | [Root.GetHomeWorldName] | 选中国家的母星名称 |
GetHerHis | [admiral.GetHerHis] | 按角色的性别输出“他的”或“她的” |
GetHerHisCap | [admiral.GetHerHisCap] | 按角色的性别输出“他的”或“她的”【与上条区别在于英文首字母大写】 |
LastKilledCountryName | [LastKilledCountryName] | 输出上一个所灭亡的国家名称 |
- 补丁3.1新增的本地化指令
GetSpeciesFossilName GetSpeciesFossilNamePlural GetSpeciesRemnantName GetSpeciesRemnantNamePlural Species GetFossilName GetFossilNamePlural GetRemnantName GetRemnantNamePlural
颜色代码[编辑 | 编辑源代码]
颜色代码以§
作开头(Windows快捷键:ALT+0167),后面跟着一个单一字母来指定所用的颜色,直到检测到另一个颜色代码,或以§!
结尾为止。指令$
代表着当前显示的变量的颜色(不是字符串定义,详见代码$ ),也能通过用|
以及颜色代码字母来隔开一对闭合的$
以指定颜色,如:$AGE|Y$
你也可以通过在颜色代码字母中加入一个DC1 UTF-8字符来改变游戏中的文本颜色。请注意这样做后如果没有把颜色改回默认,你可能会不小心使所有后续文本着色。
§RR§Sa§Hi§Yn§Gb§Bo§Mw§!
会被显示成:Rainbow
代码 | 颜色 | 原版用法 |
---|---|---|
W | 白色 | 外交态度 |
T | 浅灰色 | 所有文本的标准颜色 |
L | 棕色 | 传说、背景故事、角色扮演元素 |
P | 淡红色 | 在描述和事件文本中高亮显示充满敌意的文本 |
R | 红色 | 负面修正 |
S | 暗橙色 | 含蓄的高亮文本 |
H | 橙色 | 高亮文本 |
Y | 黄色 | 欠佳或中性的修正 |
G | 绿色 | 正面修正 |
E | 青色 | 大块文本 |
B | 蓝色 | 影响人口的事件效果 |
M | 紫色 | 稀有科技 |
! | 默认 | 回到上一次颜色变化之前的颜色 |
代码$[编辑 | 编辑源代码]
$ 用于圈定在别处定义的字符串(或变量),将其拓展到当前字符串中,或GUI元素的系统统计数据里。
数字格式[编辑 | 编辑源代码]
| 字符也能被用于调整数字的格式。$VALUE|*x$
会将VALUE
的小数点限定到x
位。
# 范例 = 100 "$范例|*0$" # 100 "$范例|*1$" # 100.0
代码£[编辑 | 编辑源代码]
代码£用于各种系统图标的名称,包括能量币、矿物、影响力,和三种研究类型(工程学、物理学、社会学)。还有更多没有列在此处,比如£ship_stats_hitpoints\armor\shield£
、£fleet_template_size£
以及£trigger_yes\no£
与其他种种。可以用类似于Notepad++的在文件中查找功能来搜索‘£’字符,以找到特定的某样东西。记住代码£必须包围着你所感兴趣的标签,例如£energy£
。(没有英镑符号的Windows用户可以在键盘上按Alt + 0163
)
其同时也支持多框架(如果子来源有的话),例如:£leader_skill|3£
会渲染一个指定技能等级的图标。
£自定义图标[编辑 | 编辑源代码]
你可以创建在游戏内与上方图标表现一样的文本图标,通过把图标保存在<游戏根目录>/gfx/interface/icons/text_icons 里。标准的文本图标是尺寸为16x16像素点大小的.dds文件。为了在文本中引用你的图标,你需要像定义事件图片一样定义它。将以下文本文档以.gfx的格式保存到<游戏根目录>/interface/ 里可以定义如下方所示的任何自定义修正:
spriteTypes = { spriteType = { name = "GFX_text_worker_produces_mult" texturefile = "gfx/interface/icons/text_icons/mod_planet_jobs_worker_produces_mult.dds" }
你可以通过多写几个spriteType =
区块来关联更多的图标。这些全部都应该处在spriteTypes =
(多了一个s)的区块中。
其名称必须以GFX_text_
为前缀。不过,如果是为了在本地化文件中引用它,用£worker_produces_mult£
(没有前缀)就行,它会照常在游戏文本中出现。
基于斜杠的代码[编辑 | 编辑源代码]
两种可用的斜杠代码分别是\n
和\t
。
\n
等价于按下回车键并换行,除非它在上述代码的内部。
\t
生成一个制表符。
斜杠同时也能用做将特殊字符还原为文本字符,比如\"
会让字符串带上一个双引号,而不是结束字符串。
格式指导[编辑 | 编辑源代码]
原版活动、修正和所有其他类型的本地化都遵循一套标点符号与大小写的规范。下方表格标出了原版英文本地化中用到的一些规则,使玩家自订的内容能更好地融入其中。表格并不完善,但可用作大多数常用文本的快捷备忘单。给出的字符数量限制并不是硬性要求,不过视位置而定超出限制可能导致文本被截断,破坏UI布局,或单单溢出框外显得难看。
位置 | 大小写 | 标点符号 | 字数限制 | 范例 |
---|---|---|---|---|
事件名称 | 每个单词首字母大写 | 无 | 50 | "Exotic Woodwind" |
事件描述 | 句首字母大写 | 标准 | 2000 | "Music has taken many forms among the beings we have encountered since leaving [Root.GetHomeWorldName], and the methods and preferences continue to baffle us. Sometimes alien […] Whatever this instrument is, it’s unlike any of our own." |
事件选项 | 句首字母大写 | 句尾终止式 | 70 | "An excellent time to learn more about their culture.", "Let us be careful and study this instrument.", "The colony is part of our future. It stays." |
特质/修正/建筑/思潮等名称 | 每个单词首字母大写 | 无 | 30 | "Building Cost", "Massive Crater", "Very Strong" |
特质/修正/建筑/思潮等描述 | 句首字母大写 | 标准 | 200 | "The impact site of the meteorite which brought Lithoids to this planet.", "Members of this species possess a strength that almost defies the laws of physics." |
UI按钮 | 两者兼有 | 无 | 取决于UI | "Withdraw" |
UI通知 | 每个单词首字母大写 | 无 | 取决于UI | "Relic Activation Available" |
参考[编辑 | 编辑源代码]
帝国 | 帝国 • 思潮 • 政府 • 国民理念 • 起源 • 承诺 • 议程 • 传统 • 飞升天赋 • 法令 • 政策 • 遗珍 • 科技 • 自定义帝国 |
人口 | 岗位 • 派系 |
领袖 | 领袖 • 领袖特质 |
物种 | 物种 • 物种特质 |
行星 | 行星 • 行星特征 • 轨道矿藏 • 建筑 • 区划 • 行星决议 |
星系 | 星系 • 恒星基地 • 巨型结构 • 虫洞 • 星门 • 地图 |
舰队 | 舰队 • 舰船 • 部件 |
地面战 | 陆军 • 轰炸姿态 |
外交 | 外交 • 联邦 • 星海共同体 • 评价修正 • 宣战理由 • 战争目标 |
事件 | 事件 • 异常现象 • 特殊项目 • 考古遗址 |
游玩 | 游玩 • 定义 • 研究 • 经济 • 游戏开局 |
动态修改 | 动态 • 指令效果 • 触发条件 • 作用域 • 修正 • 变量 • AI |
媒体/本地化 | Maya 导出器 • 图形 • 肖像 • 旗帜 • 事件图片 • 界面 • 图标 • 音乐 • 本地化 |
Other | 控制台命令 • 存档编辑 • Steam 创意工坊 • 模组制作教程 |