Drpepper023(讨论 | 贡献) (翻译) |
Drpepper023(讨论 | 贡献) 无编辑摘要 |
||
(未显示同一用户的6个中间版本) | |||
第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>,不然就会出错(至少会在效果中第二次使用时出现)。 | ||
第56行: | 第56行: | ||
有几条指令是无范围的:<code>GetDate, GetMidGameDate, GetLateGameDate, GetYear, LastKilledCountryName</code>。 | 有几条指令是无范围的:<code>GetDate, GetMidGameDate, GetLateGameDate, GetYear, LastKilledCountryName</code>。 | ||
下方表格只记录了硬编码范围本地化指令 | 下方表格只记录了 一部分的 硬编码范围本地化指令(也没有涉及任何脚本语言文件)。一份更详尽的代码名单可以在<code>Stellaris\logs\script_documentation\localizations.log</code>里找到。 | ||
==== 主作用域 ==== | ==== 主作用域 ==== | ||
第69行: | 第69行: | ||
| From || [From.From.GetName] || 调用事件的作用域。对于调用栈中更早位置的事件,From也可以充当次作用域 | | From || [From.From.GetName] || 调用事件的作用域。对于调用栈中更早位置的事件,From也可以充当次作用域 | ||
|- | |- | ||
| Prev || [Prev.From.GetName] || 上一个 | | Prev || [Prev.From.GetName] || 上一个 目标 。我不清楚Prev.From指向的是什么,不过有些项目的描述中有用到。 | ||
|- | |- | ||
| <event target tag> || [mytarget.GetName] || [[Event target|事件目标(Event target)]]标签要在本地化文件中声明<code>event_target:</code>后才能使用。 | | <event target tag> || [mytarget.GetName] || [[Event target|事件目标(Event target)]]标签要在本地化文件中声明<code>event_target:</code>后才能使用。 | ||
|- | |- | ||
! colspan=3 style="font-size:small"| 外交 | ! colspan=3 style="font-size:small"| 外交 活动 | ||
|- | |- | ||
| Actor || [Actor.GetAllianceName] || 用于外交回应消息,发起行动的一方 | | Actor || [Actor.GetAllianceName] || 用于外交回应消息,发起行动的一方 | ||
第87行: | 第87行: | ||
! 指令 !! 使用范例 !! 注释 | ! 指令 !! 使用范例 !! 注释 | ||
|- | |- | ||
! colspan=3 style="font-size:small"| | ! colspan=3 style="font-size:small"| 国家活动:首都/统治者/继承人/物种/联邦 | ||
|- | |- | ||
| Capital || [Root.Capital.GetName] || | | Capital || [Root.Capital.GetName] || 当前国家或星区的首都 | ||
|- | |- | ||
| 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] || 当前控制者的名称(已知能对星球生效) | ||
|- | |- | ||
| GetClassName || [Root.GetClassName] || | | GetClassName || [Root.GetClassName] || 当前星球种类的名称 | ||
|- | |- | ||
| GetFleetName || [Root.GetFleetName] || | | GetFleetName || [Root.GetFleetName] || 与当前作用域关联的舰队名称 | ||
|- | |- | ||
| GetHeirName || [Root.GetHeirName] || | | GetHeirName || [Root.GetHeirName] || 当前继承人的名字 | ||
|- | |- | ||
| 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] || (未知) | ||
|- | |- | ||
| GetOwnerName || [Root.GetOwnerName] || | | GetOwnerName || [Root.GetOwnerName] || 当前所有者的名称 | ||
|- | |- | ||
| GetPersonalityName || [Root.GetPersonalityName] || | | 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] || 按角色的性别输出“他”或“她” | ||
|- | |- | ||
| GetSheHe || [abducted_leader.GetSheHe] || | | GetSheHe || [abducted_leader.GetSheHe] || 按角色的性别输出“他”或“她” | ||
|- | |- | ||
| GetSheHeCap || [abducted_leader.GetSheHeCap] || | | GetSheHeCap || [abducted_leader.GetSheHeCap] || 按角色的性别输出“他”或“她”【与上条区别在于英文首字母大写】 | ||
|- | |- | ||
| GetHomeWorldName || [Root.GetHomeWorldName] || | | GetHomeWorldName || [Root.GetHomeWorldName] || 选中国家的母星名称 | ||
|- | |- | ||
| GetHerHis || [admiral.GetHerHis] || | | GetHerHis || [admiral.GetHerHis] || 按角色的性别输出“他的”或“她的” | ||
|- | |- | ||
| GetHerHisCap || [admiral.GetHerHisCap] || | | GetHerHisCap || [admiral.GetHerHisCap] || 按角色的性别输出“他的”或“她的”【与上条区别在于英文首字母大写】 | ||
|- | |- | ||
| LastKilledCountryName || [LastKilledCountryName] || | | LastKilledCountryName || [LastKilledCountryName] || 输出上一个所灭亡的国家名称 | ||
|} | |} | ||
; | ;[[Patch 3.1|补丁3.1]] 新增的本地化指令 | ||
GetSpeciesFossilName | GetSpeciesFossilName | ||
GetSpeciesFossilNamePlural | GetSpeciesFossilNamePlural | ||
第222行: | 第222行: | ||
GetRemnantNamePlural | GetRemnantNamePlural | ||
== | == 颜色代码 == | ||
[[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> | |||
你也可以通过在颜色代码字母中加入一个DC1 UTF-8 字符来改变游戏中的文本颜色。请注意这样做后如果没有把颜色改回默认,你可能会不小心使所有后续文本着色。 | |||
<code>§RR§Sa§Hi§Yn§Gb§Bo§Mw§!</code> <!-- Editor's note: You cannot get dc1 that easily, can't use   just to preview it --> | <code>§RR§Sa§Hi§Yn§Gb§Bo§Mw§!</code> <!-- Editor's note: You cannot get dc1 that easily, can't use   just to preview it --> 会被显示成:<span style="color:#D2483B">R</span><span style="color:#B07921">a</span><span style="color:#D69123">i</span><span style="color:#D2D62C">n</span><span style="color:#23BF20">b</span><span style="color:#2B8ED9">o</span><span style="color:#8B2DCB">w</span> | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
! | ! 代码 !! 颜色 !! 原版用法 | ||
|- | |- | ||
| W || <b style="color:#DCDCDC"> | | W || <b style="color:#DCDCDC"> 白色</b> || 外交态度 | ||
|- | |- | ||
| T || <b style="color:#D9D9D9"> | | T || <b style="color:#D9D9D9"> 浅灰色</b> || 所有文本的标准颜色 | ||
|- | |- | ||
| L || <b style="color:#9E8F75"> | | L || <b style="color:#9E8F75"> 棕色</b> || 传说、背景故事、角色扮演元素 | ||
|- | |- | ||
| P || <b style="color:#BF5E5E"> | | P || <b style="color:#BF5E5E"> 淡红色</b> || 在描述和事件文本中高亮显示充满敌意的文本 | ||
|- | |- | ||
| R || <b style="color:#D2483B"> | | R || <b style="color:#D2483B"> 红色</b> || 负面修正 | ||
|- | |- | ||
| S || <b style="color:#B07921"> | | S || <b style="color:#B07921"> 暗橙色</b> || 含蓄的高亮文本 | ||
|- | |- | ||
| H || <b style="color:#D69123"> | | H || <b style="color:#D69123"> 橙色</b> || 高亮文本 | ||
|- | |- | ||
| Y || <b style="color:#D2D62C"> | | Y || <b style="color:#D2D62C"> 黄色</b> || 欠佳或中性的修正 | ||
|- | |- | ||
| G || <b style="color:#23BF20"> | | G || <b style="color:#23BF20"> 绿色</b> || 正面修正 | ||
|- | |- | ||
| E || <b style="color:#73D9B0"> | | E || <b style="color:#73D9B0"> 青色</b> || 大块文本 | ||
|- | |- | ||
| B || <b style="color:#2B8ED9"> | | B || <b style="color:#2B8ED9"> 蓝色</b> || 影响人口的事件效果 | ||
|- | |- | ||
| M || <b style="color:#8B2DCB"> | | M || <b style="color:#8B2DCB"> 紫色</b> || 稀有科技 | ||
|- | |- | ||
| ! || | | ! || 默认 || 回到上一次颜色变化之前的颜色 | ||
|} | |} | ||
== $ | == 代码$ == | ||
'''$''' | '''$''' 用于圈定在别处定义的字符串(或变量),将其拓展到当前字符串中,或GUI元素的系统统计数据里。 | ||
== | == 数字格式 == | ||
| 字符也能被用于调整数字的格式。<code>$VALUE|*x$</code> 会将<code>VALUE</code> 的小数点限定到<code>x</code> 位。 | |||
# 范例 = 100 | |||
# | "$ 范例|*0$" # 100 | ||
"$ | "$ 范例|*1$" # 100.0 | ||
"$ | |||
== £ | == 代码 £ == | ||
£ | 代码 £ 用于各种系统图标的名称,包括能量币、矿物、影响力,和三种研究类型(工程学、物理学、社会学)。还有更多没有列在此处,比如<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> 会渲染一个指定技能等级的图标。 | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! | ! 代码 !! 图片 | ||
|- | |- | ||
| £energy£ || [[File:Energy Credits.png|40px]] | | £energy£ ||[[File:Energy Credits.png|40px]] | ||
|- | |- | ||
| £minerals£ || [[File:Minerals.png|40px]] | | £minerals£ ||[[File:Minerals.png|40px]] | ||
|- | |- | ||
| £food£ || [[File:Food.png|40px]] | | £food£ ||[[File:Food.png|40px]] | ||
|- | |- | ||
| £influence£ || [[File:Influence.png|40px]] | | £influence£ ||[[File:Influence.png|40px]] | ||
|- | |- | ||
| £stability£ || [[File:Stability.png|40px]] | | £stability£ ||[[File:Stability.png|40px]] | ||
|- | |- | ||
| £unity£ || [[File:Unity.png|40px]] | | £unity£ ||[[File:Unity.png|40px]] | ||
|- | |- | ||
| £alloys£ || [[File:Alloys.png|40px]] | | £alloys£ ||[[File:Alloys.png|40px]] | ||
|- | |- | ||
| £trade_value£ || [[File:Trade value.png|40px]] | | £trade_value£ ||[[File:Trade value.png|40px]] | ||
|- | |- | ||
| £physics£ || [[File:Physics Research.png|40px]] | | £physics£ ||[[File:Physics Research.png|40px]] | ||
|- | |- | ||
| £society£ || [[File:Society Research.png|40px]] | | £society£ ||[[File:Society Research.png|40px]] | ||
|- | |- | ||
| £engineering£ || [[File:Engineering Research.png|40px]] | | £engineering£ ||[[File:Engineering Research.png|40px]] | ||
|- | |- | ||
| £pops£ || [[File:Pop.png|40px]] | | £pops£ ||[[File:Pop.png|40px]] | ||
|- | |- | ||
| £happiness£ || [[File:Happiness.png|40px]] | | £happiness£ ||[[File:Happiness.png|40px]] | ||
|- | |- | ||
| £opinion£ || [[File:Opinion.png|40px]] | | £opinion£ ||[[File:Opinion.png|40px]] | ||
|- | |- | ||
| £empire£ || [[File:Empire Modifier.png|40px]] | | £empire£ ||[[File:Empire Modifier.png|40px]] | ||
|- | |- | ||
| £military_ship£ || [[File:Military Ship (icon).png|40px]] | | £military_ship£ ||[[File:Military Ship (icon).png|40px]] | ||
|- | |- | ||
| £military_power£ || [[File:offensive_value.png|40px]] | | £military_power£ ||[[File:offensive_value.png|40px]] | ||
|- | |- | ||
| £blocker£ || [[File:Tile Blocker.png|40px]] | | £blocker£ ||[[File:Tile Blocker.png|40px]] | ||
|- | |- | ||
| £time£ || [[File:Time.png|40px]] | | £time£ ||[[File:Time.png|40px]] | ||
|- | |- | ||
| £planetsize£ || [[File:Planet Size.png|40px]] | | £planetsize£ ||[[File:Planet Size.png|40px]] | ||
|} | |} | ||
== £ | == £ 自定义图标 == | ||
你可以创建在游戏内与上方图标表现一样的文本图标,通过把图标保存在''< 游戏根目录>/gfx/interface/icons/text_icons'' 里。标准的文本图标是尺寸为16x16像素点大小的.dds 文件。为了在文本中引用你的图标,你需要像定义[[event pictures|事件图片]] 一样定义它。将以下文本文档以.gfx 的格式保存到''< 游戏根目录>/interface/'' 里可以定义如下方所示的任何自定义修正: | |||
<pre> | <pre> | ||
spriteTypes = { | spriteTypes = { | ||
第328行: | 第326行: | ||
texturefile = "gfx/interface/icons/text_icons/mod_planet_jobs_worker_produces_mult.dds" | texturefile = "gfx/interface/icons/text_icons/mod_planet_jobs_worker_produces_mult.dds" | ||
}</pre> | }</pre> | ||
你可以通过多写几个<code>spriteType =</code> 区块来关联更多的图标。这些全部都应该处在<code>spriteTypes =</code> (多了一个s)的区块中。 | |||
其名称必须以<code>GFX_text_</code> 为前缀。不过,如果是为了在本地化文件中引用它,用<code>£worker_produces_mult£</code> (没有前缀)就行,它会照常在游戏文本中出现。 | |||
== | == 基于斜杠的代码 == | ||
两种可用的斜杠代码分别是<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 创意工坊 • 模组制作教程 |