国际化模块为 Game Macro 系统提供多语言支持,实现本地化和语言切换功能。
| English Version | 中文版本 |
国际化模块提供:
i18n 系统设计用于灵活的语言支持:
主语言管理和翻译系统。
可配置的语言设置和行为。
LangConfig := {
DefaultLanguage: "en-US",
AvailableLanguages: ["en-US", "zh-CN", "ja-JP"],
FallbackLanguage: "en-US",
AutoDetect: true,
ResourcePath: "Languages"
}
结构化的语言资源文件。
LanguageResource := {
Language: "en-US",
Name: "English (United States)",
Strings: {
"ui.main.title": "Game Macro System",
"ui.main.start": "Start",
"ui.main.stop": "Stop",
"ui.settings.language": "Language",
"error.generic": "An error occurred",
"success.profile_saved": "Profile saved successfully"
},
Formats: {
"date.short": "MM/dd/yyyy",
"time.short": "HH:mm",
"number.decimal": "#,##0.00"
}
}
具有参数替换的灵活翻译。
TranslationRequest := {
Key: "ui.main.welcome",
Params: {
"username": "John",
"level": 5
},
Default: "Welcome {username}!"
}
初始化国际化系统。
参数:
config(Map):语言配置返回:布尔值指示成功
关闭国际化系统。
参数:无
返回:布尔值指示成功
获取当前活动语言。
参数:无
返回:当前语言代码
设置活动语言。
参数:
languageCode(字符串):语言代码(例如 “en-US”)返回:布尔值指示成功
翻译字符串键。
参数:
key(字符串):翻译键params(Map):翻译参数(可选)defaultValue(字符串):如果键未找到的默认值(可选)返回:翻译后的字符串
翻译并格式化字符串。
参数:
key(字符串):翻译键formatParams(Map):格式化参数translationParams(Map):翻译参数(可选)返回:格式化和翻译后的字符串
检查翻译键是否存在。
参数:
key(字符串):翻译键返回:布尔值指示键存在
获取所有可用语言。
参数:无
返回:可用语言信息数组
加载特定语言的语言资源。
参数:
languageCode(字符串):语言代码返回:布尔值指示成功
获取特定语言的信息。
参数:
languageCode(字符串):语言代码返回:语言信息映射
添加自定义翻译。
参数:
key(字符串):翻译键translation(字符串):翻译文本languageCode(字符串):语言代码返回:布尔值指示成功
移除自定义翻译。
参数:
key(字符串):翻译键languageCode(字符串):语言代码返回:布尔值指示成功
重新加载所有语言资源。
参数:无
返回:布尔值指示成功
根据语言特定格式格式化日期。
参数:
date(日期对象):要格式化的日期formatKey(字符串):格式键返回:格式化后的日期字符串
根据语言特定格式格式化时间。
参数:
time(时间对象):要格式化的时间formatKey(字符串):格式键返回:格式化后的时间字符串
根据语言特定格式格式化数字。
参数:
number(数字):要格式化的数字formatKey(字符串):格式键返回:格式化后的数字字符串
; 简单翻译
welcomeText := Lang_Translate("ui.main.welcome")
startButtonText := Lang_Translate("ui.main.start")
; 带参数的翻译
userWelcome := Lang_Translate("ui.user.welcome", {
"username": "John",
"level": 5
})
; 切换到中文
if (Lang_SetLanguage("zh-CN")) {
Logger_Info("i18n", "语言已切换到中文")
}
; 添加自定义翻译
Lang_AddTranslation("custom.message", "自定义消息", "zh-CN")
语言配置存储在配置文件数据中:
profile := App["ProfileData"]
profile["Language"] := "zh-CN"
profile["LanguageConfig"] := LangConfig
语言资源存储在单独的文件中:
Languages/
├── en-US.json
├── zh-CN.json
└── ja-JP.json
国际化模块包含全面的错误处理:
模块提供实时监控的调试接口:
; 启用翻译调试
Lang_EnableDebug()
; 获取调试信息
debugInfo := Lang_GetDebugInfo()
所有国际化活动都记录日志以便故障排除: