## LocaleManager — 本地化加载(Autoload: Locale) ## 权威来源:architecture_design.md ADR-A1(tr("KEY") + .po + TranslationServer) ## 加载 translations/*.po 并注册到 TranslationServer,设默认语言。 ## 商业发行至少支持 简中 / 繁中 / 英 / 日 四语(P-S6-06)。 extends Node const LOCALES: Array = ["zh_CN", "zh_TW", "en", "ja"] const DEFAULT_LOCALE: String = "zh_CN" func _ready() -> void: for loc in LOCALES: var path: String = "res://translations/%s.po" % loc if ResourceLoader.exists(path): var t = load(path) if t is Translation: TranslationServer.add_translation(t) TranslationServer.set_locale(DEFAULT_LOCALE) func set_locale(loc: String) -> void: TranslationServer.set_locale(loc) func get_locale() -> String: return TranslationServer.get_locale() ## 调试 / 设置菜单用:循环切换语言 func cycle_locale() -> String: var cur: String = TranslationServer.get_locale() var idx: int = LOCALES.find(cur) if idx < 0: idx = 0 var nxt: String = LOCALES[(idx + 1) % LOCALES.size()] TranslationServer.set_locale(nxt) return nxt