pack.description=附加包教程示例-本地化
pack.name=附加包教程示例
Minecraft 作為全世界銷量第一的遊戲,在世界範圍內有着廣大的玩家羣體,這一定程度上得益於其對於世界各國語言的良好支援。而對於一個優秀的附加包作品來説,如果想要其傳播的更為廣泛,適配其他國家的語言也是一道必不可少的工序,我們通常將這個過程稱為「在地化」。
Mojang 為附加包提供了一種非常簡便的在地化方案,即透過語言檔案(Lang File)來適配。
我們接着來為我們之前建立的行為包加入內容,在前面的學習中,我們建立了一個沒有任何內容的簡單行為包並為其進行了基礎資訊的組態,現在我們以在清單檔案中實現在地化為例,對語言檔案的使用進行一個初步的介紹。
語言檔案通常放在資源包的texts
資料夾中,後綴為.lang
。語言檔案也可以放在行為包中,但它只可以變更包的名稱和描述。
語言文字是以鍵值對的形式存在的,其中 =
前的內容為鍵名,對於鍵名,只有清單檔案中包名稱與包描述的在地化文字有着固定的鍵名,即pack.name
與pack.description
,而其他在地化文字的鍵名則可以自行設定,當然相應的,應用時您也需要使用您自己設定的鍵名;=
後的內容為值,=
前後不能有空格,否則會導致語言檔案載入失敗。
可以用兩個井號( ##
)加入行註釋或行內註釋,井號後面的所有文字都都將被忽略,直到下一行。
語言文字可以包含有序替代( %1
、 %2
)或無序替代( %s
)。原版翻譯文字中的替代將由遊戲填充,而玩家可以使用類似於/tellraw
的命令手動填充替換。
在行為包、資源包的根目錄下各自新建一個名為 texts
的資料夾,並在其中新建兩個檔案,名稱分別為: zh_CN.lang
、en_US.lang
,它們將分別用於儲存簡體中文及美式英文的文字數據。
現在,該包的目錄如下所示:
接着我們開啟這兩個語言檔案,並向其中分別寫入如下內容:
pack.description=附加包教程示例-本地化
pack.name=附加包教程示例
pack.description=Addon Tutorial Example - Localization
pack.name=Addon Tutorial Example
如上文所述,pack.name
與pack.description
為鍵名,而附加包教程示例-本地化
是鍵值,=
前後不能有空格。
接着我們開啟清單檔案,對其進行如下修改:
將"header"
中的"description"
的值修改為"pack.description"
"description": "pack.description",
將"header"
中"name"
的值修改為"pack.name"
"name": "pack.name",
其餘部分保持不變。
為了使遊戲能夠在附加包不載入的情況下在附加包資訊界面顯示剛才對清單檔案在地化的內容,我們需要讓遊戲預讀取語言檔案。現在我們新建一個檔案,將其命名為languages.json
,並在其中寫入剛剛加入的兩個語言檔案的語言代號:
[
"en_US",
"zh_CN"
]
現在進入遊戲,在附加包資訊界面您可看到該包的名字及描述發生了變化,切換語言至美式英語後即可看到您設定的美式英語文字。
開啟資源包的texts
資料夾,找到之前製作的zh_CN.lang
、en_US.lang
,它們將用來在地化物品、方塊名。
在兩個檔案中加入如下內容:
item.<物品赋命名空间标识符>=物品本地化名称
tile.<方块赋命名空间标识符>.name=方块本地化名称
item.<物品赋命名空间标识符>=物品本地化名称
tile.<方块赋命名空间标识符>.name=方块本地化名称
進入遊戲,自訂物品、方塊就有了在地化名稱。