国际化与剧情本地化
Konado 直接使用 Godot 的 TranslationServer 管理当前语言、UI 翻译、语言回退和变更通知,不维护第二套国际化状态。Konado 只为 Godot 不理解的 KonadoScript 剧情文件提供本地化覆盖与结构校验。
内置界面翻译使用 Godot 原生 .po 文件,支持简体中文、繁体中文、英语、日语和韩语。
切换语言
通过设置面板或下面的接口切换语言并保存用户选择:
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 导入生成的翻译资源。建议使用稳定、唯一的消息键:
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.ksKonado 按“完整语言码 → Godot 推导的语言与书写系统 → 基础语言 → 默认剧情”的顺序查找。例如 zh_CN 可以回退到 zh_Hans,最终回退到 chapter.ks。
本地化剧情可以修改文本以及演员、立绘、背景、镜头、音频和演出时长等表现参数。指令类型、控制流和稳定指令 ID 必须与基础剧情一致;编辑器会将演出差异显示为警告,而结构差异仍是错误。加载时会先校验完整覆盖,避免无效文件部分覆盖或破坏正在播放的剧情。
手动加载本地化剧情
通常无需手动加载。自定义工作流可以使用剧情本地化适配层;省略语言参数时会读取 TranslationServer:
gdscript
var shot: KonadoShot = KonadoStoryLocalization.load_localized_script(
"res://dialogues/chapter.ks"
)Konado.NET 项目使用 TranslationServer 切换语言,并通过 KonadoApi.StoryLocalizationApi 解析或加载本地化剧情。