Class LanguageService
java.lang.Object
com.github.theword.queqiao.tool.localize.LanguageService
语言翻译服务类。
该服务负责从本地文件系统加载 JSON 格式的翻译库,并为事件消息提供多语言转换支持。 采用影子加载机制,支持在不重启插件的情况下通过 reload 方法刷新翻译条目。 核心逻辑包括翻译键的映射、参数格式化以及缺失键的单次预警记录。
- Since:
- 0.6.0
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
LanguageService
public LanguageService(boolean isModServer, org.slf4j.Logger logger) 构造并初始化翻译服务。- Parameters:
isModServer- 是否为模组服务端环境logger- 外部传入的日志记录器
-
-
Method Details
-
isInternalEnable
public boolean isInternalEnable()获取翻译服务当前的内部启用状态。- Returns:
- true 表示服务已准备就绪且存在载入的翻译条目。
-
reload
public void reload()统一的加载/重载入口。逻辑步骤: 1. 检查全局配置,若关闭则释放缓存。 2. 扫描指定目录下的所有 JSON 文件。 3. 采用原子级方式更新内存映射,成功更新后重置缺失键记录。
-
translate
对外翻译接口。根据传入的翻译键映射对应的文本,并使用 String.format 填充参数。 若配置禁用、服务未初始化或 Key 不存在,将直接返回原始 Key。
- Parameters:
key- 翻译键(例如 death.attack.player)args- 翻译参数数组,对应模板中的 %s 等占位符- Returns:
- 翻译并格式化后的文本,或原始 Key
-
disable
public void disable()停用并清理翻译服务。 释放内存缓存并重置状态位,通常在插件关闭时调用。
-