Skip to content

國際化與劇情本地化

Konado 直接使用 Godot 的 TranslationServer 管理目前語言、UI 翻譯、語言回退與變更通知,不維護第二套國際化狀態。Konado 僅為 Godot 不理解的 KonadoScript 劇情檔案提供本地化覆蓋與結構驗證。

內建介面翻譯使用 Godot 原生 .po 檔案,支援簡體中文、繁體中文、英語、日語與韓語。

切換語言

透過設定面板或以下介面切換語言並儲存使用者選擇:

gdscript
KonadoSettings.set_setting("display", "language", "zh_Hant")

僅切換目前工作階段時,直接使用 Godot:

gdscript
TranslationServer.set_locale("zh_Hant")
print(TranslationServer.get_locale())

自訂節點可使用 Godot 原生通知回應語言變更:

gdscript
func _notification(what: int) -> void:
	if what == NOTIFICATION_TRANSLATION_CHANGED:
		_refresh_text()

Konado 對話管理器會回應相同通知,並安全替換目前劇情的本地化內容。

UI 翻譯

專案設定 → 本地化 → 翻譯 中加入 .po.mo 或 Godot 匯入產生的翻譯資源。建議使用穩定且唯一的訊息鍵:

gdscript
title_label.text = tr("MY_GAME_SETTINGS_TITLE")

執行時也可直接透過 Godot API 註冊暫時翻譯:

gdscript
var translation := Translation.new()
translation.locale = "fr_CA"
translation.add_message("MY_GAME_SETTINGS_TITLE", "Paramètres")
TranslationServer.add_translation(translation)

劇情檔案命名

基礎劇情檔案:

text
res://dialogues/chapter.ks

對應語言檔案:

text
res://dialogues/chapter.zh_Hans.ks
res://dialogues/chapter.zh_Hant.ks
res://dialogues/chapter.en.ks
res://dialogues/chapter.ja.ks

Konado 依序尋找完整語言碼、Godot 推導的語言與書寫系統、基礎語言,最後回退到預設劇情。例如 zh_TW 可回退到 zh_Hant,最終回退到 chapter.ks

本地化劇情可以修改文字,以及演員、立繪、背景、鏡頭、音訊與演出時長等呈現參數。指令類型、控制流程與穩定指令 ID 必須和基礎劇情一致;編輯器會把演出差異顯示為警告,結構差異仍是錯誤。Konado 會在套用前驗證完整覆蓋,避免無效檔案局部取代或破壞播放狀態。

手動載入本地化劇情

一般播放流程會自動完成。自訂工作流程可使用劇情適配層;省略語言參數時會讀取 TranslationServer

gdscript
var shot: KonadoShot = KonadoStoryLocalization.load_localized_script(
	"res://dialogues/chapter.ks"
)

Konado.NET 專案使用 TranslationServer 切換語言,並透過 KonadoApi.StoryLocalizationApi 解析或載入本地化劇情。

Released under BSD3-Clause License.