本地化文件将 eu4 文件中事物的内部代码名称与实际文本关联起来,并根据 eu4 所设置的语言使用不同的文本。
格式
EU4 使用的格式类似于 YAML,大致如下:
l_english: MENU_MESSAGES_DISABLE_ALL:0 "Disable all" FILTER:0 "Filter" TO_ME:0 "To me" FROM_ME:0 "From me" INTERESTING:0 "Interesting" OTHERS:0 "Others" hre_province_restored:0 "Territory restored to the Empire" DECAY:0 "Decay"
以下规则适用于所有本地化文件:
- 本地化文件必须放在 "localisation" 文件夹中("localization" 无效)。
- 要替换原版或其他模组中已有的本地化,请将编辑后的本地化文件放入 "localisation/replace"。
- 文件名必须以
_l_english.yml结尾,例如mymod_l_english.yml。为英语以外的语言进行本地化时,请将english替换为对应的语言(french等)。 - 文件必须编码为 带字节顺序标记的 UTF-8(UTF-8-BOM)。如果本地化文件使用 ISO 8859-1 等单字节编码,游戏将无法读取该文件,而是直接显示本地化键名。为确保编码正确,可以复制一份原版本地化文件,或使用 Notepad++ 等高级编辑器,通过编码菜单中的 Convert to …(转换为……)选项进行设置。游戏的其他文本文件(
.txt)应使用 CP-1252/ANSI 编码,且绝不能带有 BOM。 - 文件的第一行必须是
l_english:(同样,将 "english" 替换为其他语言)。 - 与其他文件一样,引号之外的 # 表示行注释——只要该行 # 之后不含双引号("),其后的所有内容都不会被 eu4 读取。你可以在引号内的文本中使用 #。
- 空行会被忽略(包括仅含空白字符和注释的行)。
- 其他所有行都必须符合以下格式:
- 恰好一个空格
- 本地化键,只能包含以下字符:A-Z、a-z、0-9、'_'、'.'、'-'。游戏通过该键来确定文本应当用于何处。在某些情况下(例如事件标题、描述、选项名称),键在其他游戏文件中指定;在另一些情况下,键由代码对象名称派生(例如,名为
test_decision的决议会自动使用test_decision_title作为其标题的本地化键,使用test_decision_desc作为描述的本地化键)。 - 冒号(:)
- 可选:一个数字。没有实际含义,供 eu4 开发者记住该文本的“版本”。
- 恰好一个空格
- 一个双引号(")
- 本地化文本。它几乎可以使用任何 UTF8 字符,但只有 UI 元素所用字体中包含的字符才能正确显示。对于原版字体,即 CP-1252/ANSI 字符集。换行必须写作
\n,反斜杠必须写作\\。文本中的双引号可以正常使用(旧版游戏要求将其写作\")。反斜杠后跟任何其他字符都会破坏本地化。 - 一个双引号(")
- 偏离此格式可能会破坏本地化文件,并导致其后所有行被忽略。
- 任何本地化键都可以放在任何文件中,替换本地化时亦然;不过,最好将相近的键值对放在同一文件中(并使用与被替换文件相同的文件名),以便日后查找。
文本格式
本地化系统还支持在本地化字符串中(而非 C++ 代码中)格式化文本。要格式化某个变量,请输入 §,后接所需的格式规则,再以 §! 结束该表达式。
如果键盘上有数字小键盘,可以按住 左 Alt,在小键盘上输入 0167,然后松开 左 Alt,即可轻松输入 §。必须开启 NumLock 才有效。
或者,也可以尝试 Compose 键序列 S, !。
目前实现了以下格式规则:
| 代码 | 效果 | 用法 | 示例 |
|---|---|---|---|
| W,B,G,R,b,g,Y, M,T,O,l,J,P,V |
为文字着色
|
§<COLOR_CODE>彩色文字§! |
"This is regular text, §Rand this text is red§!"将显示为 This is regular text, and this text is red。彩色部分可以嵌套: "Regular text, §Rred text, §Bblue§! and back to red§!, and black"将显示为 Regular text, red text, blue and back to red, and black。
|
| 以下条目可以组合使用,以产生所需的结果 | |||
| % | 将数值转换为百分比 | $VAL|%$! |
0.5 -> 50%
|
| * | 将数值转换为 SI 单位 | $VAL|*$! |
1000 -> 1K1000000 -> 1M
|
| = | 若数值为正则在前面加上 '+',为负则加上 '-' | $VAL|=$! |
10 -> +10-10 -> -10
|
| 0..9 | 小数位数 | $VAL|<1..9>$! |
$VAL|3$! 10 -> 10.00010.12345 -> 10.123
|
| + | 数值为正时显示为绿色,为零时显示为黄色,为负时显示为红色 | $VAL|+$! |
10 -> 100 -> 0-10 -> -10 |
| - | 数值为正时显示为红色,为零时显示为黄色,为负时显示为绿色 | $VAL|-$! |
10 -> 100 -> 0-10 -> -10 |
例如,若要将一个定点数值转换为百分比并保留一位小数,且在其为正时显示为绿色,现在可以写作 $VAL|%2+$!。若要将一个数值显示为黄色、保留 3 位小数,并在其为正时加上 '+' 号,则可以写作 §=Y3$VAL$§! 等。
变量
我们可以通过几种方式来显示动态的本地化信息(例如省份的宗教)。
方括号命令
这是调用数据并在本地化中显示的更简洁、更新、更灵活的方式。它使用类似于事件修改中 作用域 的系统,不过请注意,它使用的是下文所列的一套独有的作用域。任何做过面向对象编程的人都会对它感到熟悉。
下面是一些示例——请注意游戏是如何从事件的 Root/From 出发,通过各级作用域,直至找到我们所需的信息的。
[Root.GetAdjective]
我们可以使用额外的作用域:
[FRA.Monarch.GetTitle]
与常规代码中的 FROM 不同,本地化命令允许叠加 From 作用域,以访问事件链中更早的部分:
[From.From.From.Owner.Monarch.GetHerHim]
作用域(区分大小写)
| 起始作用域 | 运算符 | 目标作用域 | 描述 |
|---|---|---|---|
| - | <国家标签> | 国家 | 直接将作用域切换到某个国家(例如 FRA) |
| - | <省份 ID> | 省份 | 直接将作用域切换到某个省份(例如 1865) |
| - | <事件目标> | 国家、省份、单位 | 将作用域切换到被调用的事件目标(名称必须全部小写) |
| - | Player | 国家 | 本地玩家的国家作用域 |
| - | This | 任意 | THIS 作用域,通常与 Root 相同,但在例如 log 和 custom_tooltip 效果中很有用
|
| - | Root | 任意 | ROOT 作用域,即当前代码所在的位置 |
| - | From | 任意 | FROM 作用域,即调用当前代码的位置,或交互中的“另一方”。在链式调用可定制的本地化时,ROOT 将被 FROM 覆盖。 |
| - | FromFrom | 任意 | |
| - | Prev | 任意 | PREV 作用域,通常与 Root 相同,但在例如 log 和 custom_tooltip 效果中很有用
|
| - | Emperor | 国家 | (事件目标)切换到当前的神圣罗马帝国皇帝 |
| - | EmperorOfChina | 国家 | (事件目标)切换到当前的中国皇帝 |
| 国家 | Monarch | 角色 | Ruler |
| 国家 | Heir | 角色 | Heir |
| 国家 | Consort | 角色 | Consort |
| 国家 | Adm_Advisor | 角色 | 行政顾问 |
| 国家 | Dip_Advisor | 角色 | 外交顾问 |
| 国家 | Mil_Advisor | 角色 | 军事顾问 |
| 国家 | Capital | 省份 | 首都省份 |
| 国家 | 文化 | 文化 | 文化 |
| 国家 | 宗教 | 宗教 | 宗教 |
| 国家 | ColonialParent | 国家 | 殖民领的宗主国 |
| 国家 | SecondaryReligion | 宗教 | 宗教 |
| 国家 | Overlord | 国家 | 附属国的宗主国 |
| 省份 | Owner | 国家 | 省份的所有者 |
| 省份 | 文化 | 文化 | 文化 |
| 省份 | NativeCulture | 文化 | |
| 省份 | 宗教 | 宗教 | 宗教 |
| 省份 | OriginalReligion | 宗教 | |
| 省份 | TradeCompany | 贸易公司 | 贸易公司附属国 |
| 角色 | 王朝 | 王朝 | 统治者所属的王室 |
| 角色 | 文化 | 文化 | 文化 |
| 单位 | Leader | 角色 | |
| 单位 | Location | 省份 | 单位当前所在的位置(移动中的单位视为位于出发省份) |
| - | 触发条件 | <触发条件名称> | 进入一个特殊的触发条件作用域 |
| 触发条件 | <触发条件名称> | <触发条件值> | 输出指定触发条件的目标值(位于自定义触发条件提示框内) |
没有起点的作用域(如 Root)可用于开始本地化命令。
命令(区分大小写)
| 作用域 | 命令 | 描述 | 示例 |
|---|---|---|---|
| - | GetDateText | 无需作用域,返回当前日期,格式为 dd <月份>(m) yyyy | [GetDateText] |
| - | GetDate | 无需作用域,返回当前日期,格式为 yyyy.mm.dd | [GetDate] |
| - | GetYear | 无需作用域,返回当前年份 | [GetYear] |
| - | GetMonth | 无需作用域,返回当前月份 | [GetMonth] |
| 国家 | GetTag | 返回所在作用域的国家的 TAG(可与 @ 配合使用以显示国旗) | @[Root.GetTag] |
| 国家 | GetName | 国家名称 | [ENG.GetName] |
| 国家 | GetAdjective
GetAdjectiveCap |
国家形容词,例如 Spanish | [SPA.GetName] |
| 国家 | GovernmentName | 获取国家的政府名称(例如 Kingdom) | [Root.GovernmentName] |
| 国家 | GetParliamentName | 议会名称 | |
| 国家 | GetCult | 当前生效的崇拜 | |
| 国家 | GetReligiousSchool | 宗教学派 | |
| 国家 | GetReligiousSchoolCountryModifiers | 输出该宗教学派的本地化修正 | |
| 国家 | GetRandomShipName | 随机舰船名称 | |
| 国家 | GetFlagshipName | 国家的旗舰名称 | [Root.GetFlagshipName] |
| 国家 | GetLostFlagshipName | ||
| 国家 | Get<Estate>Name | 获取当前国家及指定作用域下阶层的本地化名称。
使用阶层的本地化名称。(estate_church > 教士阶层) |
[This.GetClergyName]
[This.GetNobilityName] |
| 国家 | GetCachedAgendasFlavorText | [Root.GetCachedAgendasFlavorText] | |
| 国家 | GetXEDip | 仅限法语 :Permet d'accorder féminin ou masculin(用于配合阴性或阳性) | excellent[Root.GetXEDip] |
| 国家 | GetErEreDip | 仅限法语 :Permet d'accorder le mot 'conseiller'(用于配合“conseiller”一词) | conseill[Root.GetErEreDip] |
| 省份 | GetName | 省份名称 | [This.GetName] |
| 省份 | GetCapitalName | 获取省份的城市名称(例如 Paris) | [From.Capital.GetCapitalName] |
| 省份 | GetAreaName | 省份所属的区域 | [This.GetAreaName] |
| 省份 | GetTradeGoodsName | 省份所产 商品 的名称 | [This.GetTradeGoodsName] |
| 省份 | GetRegionName | 省份所属的地区 | [This.GetRegionName] |
| 省份 | GetSuperRegionName | 省份所属超级地区的名称 | [Root.Capital.GetSuperRegionName] |
| 省份 | GetContinentName | 省份所属的大陆 | [Root.Capital.GetContinentName] |
| 省份 | GetColonialRegionName | 省份所属的殖民地区 | [22.GetColonialRegionName] |
| 省份 | GetTradeNodeName | 省份所属的贸易节点 | [Root.Capital.GetTradeNodeName] |
| 省份 | GetAdjective | 省份形容词 | [This.GetAdjective] |
| 角色 | GetName | 角色名称 | |
| 角色 | GetTitle | 例如 King、President(国王、总统) | |
| 角色 | GetSheHe
GetSheHeCap |
"he"/"she"(他/她)
"He"/"She"(首字母大写) |
|
| 角色 | GetHerHim
GetHerHimCap |
"her"/"him"(她/他,宾格)
"Her"/"Him"(首字母大写) |
|
| 角色 | GetHerHis
GetHerHisCap |
"her"/"his"(她的/他的)
"Her"/"His"(首字母大写) |
|
| 角色 | GetHersHis
GetHersHisCap |
"hers"/"his"(她的/他的,名词性物主代词)
"Hers"/"His"(首字母大写) |
|
| 角色 | GetHerselfHimself
GetHerselfHimselfCap |
"herself"/"himself"(她自己/他自己)
"Herself"/"Himself"(首字母大写) |
|
| 角色 | GetWomanMan | "man"/"woman"(男人/女人) | |
| 角色 | GetMotherFather | "mother"/"father"(母亲/父亲) | |
| 角色 | GetWifeHusband | "wife"/"husband"(妻子/丈夫) | |
| 角色 | GetDaughterSon | "daughter"/"son"(女儿/儿子) | |
| 角色 | GetSisterBrother | "sister"/"brother"(姐妹/兄弟) | |
| 角色 | GetStats | 以 (adm/dip/mil) 格式输出君主能力值 | |
| 角色 | GetAdm
GetDip GetMil |
行政能力
外交能力 军事能力 |
|
| 王朝 | GetName | 王朝名称 | |
| 单位 | GetName | 单位名称 | |
| 文化 | GetName | 文化名称,例如 English | |
| 文化 | GetGroupName | 文化组,例如 British | |
| 宗教 | GetName | 宗教名称,例如 Catholic | |
| 宗教 | GetGroupName | 宗教组,例如 Christian | |
| 宗教 | GetCountryModifiers | 输出该宗教的国家修正 | |
| 宗教 | GetProvinceModifiers | 输出该宗教的省份修正 | |
| 贸易公司 | GetName | 贸易公司名称 | |
| 贸易公司 | GetRegion | 贸易公司所在地区 | |
| 变量 | GetName | 输出变量名称 | |
| 变量 | GetValue | 输出变量的值(若该作用域中未设置此变量,将产生错误) | |
| 事件作用域值 | GetName | 输出存储事件作用域值的变量名称 | |
| 事件作用域值 | GetCultureName | 所存储文化的名称 | |
| 事件作用域值 | GetCultureGroupName | 所存储文化所属组的名称 | |
| 事件作用域值 | GetReligionName | 所存储宗教的名称 | |
| 事件作用域值 | GetReligionGroupName | 所存储宗教所属组的名称 |
@TAG
@TAG(例如 @HAB)会显示该标签对应的国旗,可与 @[Root.GetTag] 及类似的本地化作用域配合使用。
键
游戏现有的本地化文件中出现了许多标量标识符。它们不太灵活,也不太美观,但只要作用域正确,我们就可以使用它们。
其中一些可能无法用于事件、任务等,因为它们需要通过游戏代码获得其他数据。
| 键 | 作用域 | 描述 | 示例值 |
|---|---|---|---|
| $ADM$ | |||
| $ARMY_REFORMER$ | 顾问姓名 | ||
| $ARMY_ORGANISER$ | 顾问姓名 | ||
| $ARTIST$ | 顾问姓名 | ||
| $BASE$ | |||
| $CAPITAL$ | 国家 | 显示 root 国家的首都省份 | Île-de-France |
| $CAPITAL_CITY$ | 国家 | 显示 root 国家的首都城市 | Paris |
| $COLONIAL_GOVERNOR$ | 顾问姓名 | ||
| $COMMANDANT$ | 顾问姓名 | ||
| $CONTINENT$ | |||
| $CONTROLLERNAME$ | 省份 | 显示 root 省份的控制者(围城的胜利者) | England |
| $COUNTRY$ | 国家 | 显示 root 国家的名称 | France |
| $COUNTRY_ADJ$ | 国家 | 显示 root 国家的形容词 | French |
| $COUNTRY_RELIGION$ | 国家 | 显示 root 国家的宗教 | Catholic |
| $CULTGROUP$ | 文化组。不确定能否用于事件中 | ||
| $CULTURE$ | 国家 | 显示 root 国家的 primary_culture | Francien |
| $DATE$ | |||
| $DIPLOMAT$ | 顾问姓名 | ||
| $DYNASTY$ | 国家 | 显示 root 国家统治者的王朝 | Tudor |
| $EFFECTS$ | |||
| $EMPERORNAME$ | 显示中华帝国统治者的姓名 | ||
| $FIRST$ | 用于战争名称,显示 root 国家的名称 | ||
| $FORTIFICATION_EXPERT$ | |||
| $FROM$ | |||
| $FROMCOUNTRY$ | |||
| $FROM_COUNTRY$ | |||
| $GRAND_CAPTAIN$ | 顾问姓名 | ||
| $HEIR$ | Henry Tudor | ||
| $HEIR_ADJ$ | 继承人的所有格形容词 | his/her | |
| $HEIR_CAP_ADJ$ | 首字母大写的继承人所有格形容词 | His/Her | |
| $HEIR_DYNASTY | |||
| $HEIR_O_PRONOUN$ | 继承人的宾格代词 | him/her | |
| $HEIR_CAP_O_PRONOUN$ | 首字母大写的继承人宾格代词 | Him/Her | |
| $HEIR_S_PRONOUN$ | 继承人的主格代词 | he/she | |
| $HEIR_CAP_S_PRONOUN$ | 首字母大写的继承人主格代词 | He/She | |
| $INQUISITOR$ | 顾问姓名 | ||
| $KEY$ | |||
| $LIKELYREBELS$ | 省份 | ||
| $LOCATION$ | |||
| $LOYALNAMES$ | |||
| $MASTER_OF_MINT$ | 顾问姓名 | ||
| $MESSENGER$ | |||
| $MONARCH$ | 国家 | 显示 root 国家统治者的姓名 | Henry VIII |
| $MONARCHTITLE$ | 国家 | 显示 root 国家统治者的头衔 | King |
| $NAME$ | |||
| $NAVY_REFORMER$ | 顾问姓名 | ||
| $NATION$ | |||
| $NATURAL_SCIENTIST$ | 顾问姓名 | ||
| $NAVIGATOR$ | 顾问姓名 | ||
| $NCARDINALS$ | 枢机的整数数量 | ||
| $NUM$ | |||
| $ORDER$ | 用于战争名称,显示 1st、2nd、3rd 等序数 | 1st | |
| $OVERLORD$ | 国家 | 附属国的宗主之名 | |
| $OWNERNAME$ | |||
| $PERYEAR$ | 每年分离主义的减少量 | ||
| $PLAYER$ | |||
| $PRICE$ | |||
| $PROV$ | |||
| $PROVINCE$ | |||
| $PROVINCECAPITAL$ | 省份 | 显示 root 省份的首府城市 | Paris |
| $PROVINCENAME$ | |||
| $PROVINCECULTURE$ | 省份 | 显示 root 省份的文化 | |
| $QUARTERMASTER$ | 顾问姓名 | ||
| $RANDOM_OLD_MONARCH$ | |||
| $REBELNAME$ | |||
| $RELIGION$ | |||
| $RECRUITMASTER$ | 顾问姓名 | ||
| $RULER_ADJ$$ | |||
| $SECOND$ | 用于战争名称,显示目标国家的名称 | ||
| $SPYMASTER$ | 顾问姓名 | ||
| $STATESMAN$ | 顾问姓名 | ||
| $THEOLOGIAN$ | 顾问姓名 | ||
| $TRADER$ | 顾问姓名 | ||
| $TREASURER$ | 顾问姓名 | ||
| $TYPE$ | |||
| $UNIT$ | |||
| $UNTIL$ | 分离主义结束的年份 | ||
| $VAL$ | |||
| $WHO$ | |||
| $YEAR$ | 国家 | 显示当前年份 | 1444 |
替换本地化键
要替换原版本地化,请在 localisation 文件夹内创建一个名为 replace 的文件夹,并将包含你想替换的原版本地化键的本地化文件放入其中。你也可以像对待其他内容一样,通过 模组 来修改本地化。计算 校验和 时会忽略本地化。
文化省份名称
如果开启了“使用动态省份名称”,省份名称会根据当前所有者的文化,从 localisation 文件夹中的取值发生变化。这些名称列在 common/province_names 之下,每个标签、文化或文化组可以对应一个文件。每个文件包含一个列表,每一项由省份编号、等号以及 1 至 2 个带引号的名称构成。一个带引号的名称将替换省份名称;两个带引号的名称(以花括号括起)则以第一个作为省份名称,第二个作为省份首府名称。例如,来自 british.txt 的内容:
873 = "Astoria"
893 = { "New Orleans" "New Orleans" }
894 = "Ecore Fabre"
896 = "Grand River"
897 = { "Little Rock" "Little Rock" }
899 = { "Ozarks" "Springfield" }
908 = { "Minnesota" "St. Paul" }
910 = "Red Lake"
911 = { "Upper Peninsula" "Escanaba" }
将使用可用的最具体的名称。例如,编号为 282 的省份通常名为 Yedisan,1444 年由克里米亚拥有;如果被某个突厥国家拥有,它就叫 Hocabey;但如果被奥斯曼拥有,则叫 Özü,即使奥斯曼同样是突厥国家。
图标
图形图标通常通过用井号(£)包围文本键来插入,但也有一些例外(例如杜卡特图标)。
文本键指的是某个 .gfx 文件中定义的 spriteType 名称。
你应当可以使用任何 spriteType,但要注意你打算使用的图像尺寸应适合用于行内文本。
默认图标可在 interface/texticons.gfx 中找到
| 常用图标 | |||
|---|---|---|---|
| 类别 | 描述 | 键 | 图标 |
| 通用 | “是”指示符 | £yes£
|
|
| “否”指示符 | £no£
|
||
| 君主点数 | 行政点数 | £adm£
|
|
| 外交点数 | £dip£
|
||
| 军事点数 | £mil£
|
||
| 资源 | |||
| 杜卡特 | ¤
|
||
| 人力 | £icon_manpower£
|
||
| 水手 | £icon_sailors£
|
||
| 舰船 | 重型船只 | £big_ship_icon_small£
|
|
| 轻型船只 | £light_ship_icon_small£
|
||
| 桨帆船 | £galley_icon_small£
|
||
| 运输船 | £transport_icon_small£
|
||
| 陆军单位 | 步兵 | £infantry_icon_small£
|
|
| 骑兵 | £cavalry_icon_small£
|
||
| 炮兵 | £artillery_icon_small£
|
||
导入/导出文本以进行翻译
要导出,请创建游戏 exe 的快捷方式。右键点击并选择属性,然后在目标末尾输入
-export_loc
。这将在游戏文件夹中创建一个名为 "customizable_localization" 的文件夹。现在可以打开并翻译这些文件。请将你的译文放入对应的语言列中。如果没有你所用的语言,可以重命名其他列之一。
如果你使用 Steam,则无需创建快捷方式,而是在 Steam 中右键点击 EU4 并选择属性。在“常规”选项卡上,点击“设置启动选项...”并输入上述内容。请记得之后将其移除,因为游戏在使用此选项时并不会真正启动。
要导入,请在刚刚创建的文件夹旁新建一个名为 localization_translated 的文件夹,并将你的文件放入其中。文件名开头必须带有 l_language(语言名称),并通过以下这行导入:
-import_loc
随后,你会在文档文件夹中得到一批文件,位于一个新建的名为
localization_import
的文件夹中。需要将这些文件复制并粘贴到游戏的 localization 文件夹中。当导出和导入都完成后,结构大致如下:
总而言之,如果你是将例如我们的英文文本翻译成另一种语言,就不必太在意格式,只需模仿我们所写的即可。如果你是在为自己的模组添加文本,则可能需要对前两个标题多加留意。
| 文档 | 效果 • 触发条件 • 修正列表 • 作用域 • 变量 • 本地化 • 可自定义本地化 • 运行文件 • 事件图片列表 |
| 脚本 | 脚本函数 • 顾问 • 时代 • 开局设定 • 建筑 • 宣战理由 • 殖民区域 • 国家创建 • 文化 • 决议 • Defines • 外交行动 • 灾难 • 中华帝国 • 阶层 • 事件 • 派系 • 政府 • 政府互动 • 伟大工程 • 历史 • 神圣罗马帝国 • 理念组 • 思潮 • 佣兵 • 任务树 • 修正 • On Actions • 议会 • 和约 • 君主性格 • 政策 • 叛军类型 • 宗教 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位 |
| 地图 | 地图 • 地图修改速查 • 随机新世界 • 贸易节点 |
| 图形 | 3D模型 • 界面 • 贴图库 • 字体 • 单位模型 |
| 音频 | 音乐 • 音效 |
| 其他 | 控制台命令 • 校验和 • 模组结构 • 故障排查 • 运行文件 |
| 工具 | 克劳塞维茨开局编辑器 • EU4模组编辑工具 • JoroDox模组制作工具 • The Validator |
| 指南 | 省份 • 地图修改速查 • 存档编辑 • 脚本教程 |
