LanguageManager 语言管理
Estimated reading time: 5 minutes基本介绍
LanguageManager 是框架内置的国际化/本地化管理系统。它为模组制作者提供翻译支持,支持多语言动态切换、自动翻译匹配和高性能查询。
LanguageManager 通过 maplebirch.lang 访问。翻译方法及 Language 属性同时暴露在 maplebirch 上,便于使用。
核心 API
t(key, space?)
通过翻译键获取对应语言的文本。
- @param
key(string): 翻译键名。 - @param
space(boolean): 仅在当前语言为英文时,是否在返回文本后添加一个空格。默认为false。 - @return (string): 目标语言的翻译文本,若未找到则返回
[key]格式的占位符。
auto(text)
自动检测传入的文本,并尝试返回其当前语言的翻译。
- @param
text(string): 需要被自动翻译的源文本。 - @return (string): 目标语言的翻译文本,若未找到对应翻译则返回原文本。
Language 属性
获取或设置当前系统语言。设置语言会触发 :language 事件并清空缓存。
配置方式
多语言功能通过 AddonPlugin 配置,在模组的 boot.json 中 addonPlugin 条目的 params.language 字段设置。支持三种配置模式:
模式 1:自动导入全部语言文件
自动扫描并导入模组 translations/ 目录下所有支持格式的语言文件。
- 配置值:
true - 查找规则:扫描
translations/目录,支持{language_code}.json、{language_code}.yml、{language_code}.yaml,语言代码如en、cn、ja(不区分大小写) - 优先级:同语言代码下
json > yml > yaml
文件结构示例:
模式 2:导入指定语言文件
只导入指定的几种语言,按配置顺序尝试查找文件。
- 配置值:字符串数组,如
["EN", "CN", "JA"] - 按数组顺序依次查找每个语言的文件,每个语言尝试
json、yml、yaml - 找不到对应文件时跳过该语言并记录警告
模式 3:自定义文件路径
完全自定义每个语言文件的路径,支持任意目录结构。
- 配置值:对象,键为语言代码,值为包含
file路径的对象
文件结构示例:
