本地化

本頁面講述的內容長期有效

鋼鐵雄心4使用修改過的其他許多P社遊戲使用的YAML本地化localization)系統。

基礎

基本的格式如下:

l_<language>:
 <key>: "Text here"

空格可以省略。

一般來說你都會想使用l_englishkey指的是你要本地化的事物的腳本名稱。

進階的格式如下所示:

l_<language>:
 <key>:<number> "Text here"

這裡是一個裝備的本地化文件的實例:

l_english:
 infantry_equipment: "Infantry Equipment"
 infantry_equipment_short: "Inf. Eq."
 infantry_equipment_desc: "This is infantry equipment"

增加本地化語句時語法要準確,否則解析器會break而你得到的會是殘缺的本地化。

.yml格式的文件是一種簡單的文本文件,想要保存這種文件只需要選擇保存為任意格式,然後輸入.yml 後綴。

確保.yml文件使用UTF-8-BOM編碼。使用Notepad++或是其他類似的項目可以很簡單地查看和修改這一項。

特殊字符

引號

如果使用方式不正確,文本中的引號可能會導致文件的錯誤中斷。

l_english:
 example_key: "This is "my quote" within a string."

這個例子不能正確讀取,因為解析器會把第二個引號認為是字符串的結尾。

為了避免這種事情發生,引號需要與\符號配合使用。

l_english:
 example_key: "This is \"my quote\" within a string."

在遊戲中,\符號並不會顯示。

換行

你可能想要在顯示的時候強制換行。想要做到這一點,在想要換行的地方使用\n即可。

l_english:
 example_key: "This is line 1\nThis is line 2\nThis line 3."

格式符號

有許多特殊符號可以在文本中改變字符串在遊戲裡的外觀。

下列格式符號可以生效:

Code Effect
§% 把後面的值轉換成百分數
§* 把後面的值轉換成國際單位制
§= 如果後面的值為正,則添加+號;如果為負,添加-號
§0..9 控制小數點後顯示的位數
§W 使文本變為白色
§G 使文本變為綠色
§R 使文本變為紅色
§B 使文本變為藍色
§Y 使文本變為黃色
§b 使文本變為黑色
§C 使文本變為淺藍色(青色)
§g 使文本變為灰色
§T 使文本變為藍綠色
§l 使文本變為淡綠色
§H 使文本變為黃色(與§Y作用相同)
§O 使文本變為橙色
§+ 如果後面的值為正,則使數值變為綠色;若為0,變為黃色;若為負,變為紅色
§- 如果後面的值為正,則使數值變為紅色;若為0,變為黃色;若為負,變為綠色
§! 結束目前的格式規則

這是一個顏色格式的例子:

l_english:
 example_key: "This is my text, §Bthis text is blue§!, and §Rthis text is red§!"

格式化變量

當對變量而不是普通的字符串進行格式化時,格式符號應加在|符號後面,例如:

[?party_popularity@democracy|%G0]

這樣的本地化語句的效果是:它顯示當前作用域的民主主義支持度,格式為百分數(%),綠色(G),四捨五入到個位(0,即小數點後0位)。

文本圖標

使用£符號能顯示文本圖標

l_english:
 example_key: "£army_experience"

文本圖標默認在 texticons.gfx 文件內定義,當然也能創建新的gfx文件來定義

覆蓋字符串

有時候你不想創建新的本地化文件,而是想覆蓋原版的本地化文件。在本地化文件夾中創建文件可能不會導致每個字符都被覆蓋,因此您必須在本地化文件夾中創建名為「replace」的子文件夾(它必須命名為replace,其他子文件夾不會被讀取)。在這個子文件夾中,你可以把文件和你想要重寫的字符放在一起(例如,如果要重命名某個國家的黨派,則需要創建一個名為new_parties.yml的文件,並將其放在本地化文件夾內的replace文件夾中)

動態文本

在特定的文本,比如說事件中,可以使用動態文本。這個操作會以面向對象的方式在特定的作用域內使用特殊的功能。(其實就是通過動態文本來獲取遊戲內一些變化的文本)

l_english:
 example_key: "[Root.GetName]"

This would grab the name of the ROOT scope and display it as the string.

It is possible to string scopes together:

l_english:
 example_key: "[From.Owner.GetName]"

This would grab the name of the OWNER (country) scope of the FROM (province) scope for the current ROOT (country) scope, and display it as the string.

Another example would be getting the capital:

l_english:
 example_key: "[Root.Capital.GetName]"

你可以使用國家Tag:

l_english:
 example_key: "[HUN.GetRulingParty]"

你也可以使用Event targets:

l_english:
 example_key: "[was_attacked.GetName]"

可用的作用域有:

  • Owner
  • Capital
  • Root
  • From
  • Prev

功能

  • GetName
  • GetNameDef
  • GetAdjective
  • GetAdjectiveCap
  • GetLeader
  • GetRulingParty
  • GetRulingIdeology
  • GetRulingIdeologyNoun
  • GetPartySupport
  • GetLastElection
  • GetManpower
  • GetFactionName
  • GetFlag
  • GetNameWithFlag
  • GetCommunistParty
  • GetDemocraticParty
  • GetFascistParty
  • GetNeutralParty
  • GetDateText
  • GetDateString
  • GetDateStringShortMonth
  • GetDateStringNoHour
  • GetDateStringNoHourLong
  • GetYear
  • GetHerselfHimself
  • GetHerHis
  • GetSheHe
  • GetSheHeCap
  • GetRank
  • GetManchuriaPuppet
  • GetID
  • GetTag