Skip to content

国際化とストーリーのローカライズ

Konado は現在のロケール、UI 翻訳、フォールバック、変更通知を Godot の TranslationServer で一元管理します。独自の国際化状態は持たず、Godot が解釈できない KonadoScript に対してのみ、ローカライズ用オーバーレイと構造検証を追加します。

内蔵 UI は Godot ネイティブの .po ファイルで、簡体字中国語、繁体字中国語、英語、日本語、韓国語に対応しています。

言語を切り替える

プレイヤーの選択を保存する場合は設定 API を使用します:

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

現在のセッションだけを変更する場合は Godot を直接使用します:

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

独自ノードは Godot の通知で変更を受け取れます:

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

Konado のダイアログマネージャーも同じ通知を受け取り、現在のストーリーを安全に差し替えます。

UI 翻訳

プロジェクト設定 → ローカライズ → 翻訳.po.mo、または Godot がインポートした翻訳リソースを追加します。安定した一意のメッセージ ID を推奨します:

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_CNzh_Hans、最後に 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.