Class LanguageService

java.lang.Object
com.github.theword.queqiao.tool.localize.LanguageService

public class LanguageService extends Object
语言翻译服务类。

该服务负责从本地文件系统加载 JSON 格式的翻译库,并为事件消息提供多语言转换支持。 采用影子加载机制,支持在不重启插件的情况下通过 reload 方法刷新翻译条目。 核心逻辑包括翻译键的映射、参数格式化以及缺失键的单次预警记录。

Since:
0.6.0
  • 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

      public String translate(String key, Object[] args)
      对外翻译接口。

      根据传入的翻译键映射对应的文本,并使用 String.format 填充参数。 若配置禁用、服务未初始化或 Key 不存在,将直接返回原始 Key。

      Parameters:
      key - 翻译键(例如 death.attack.player)
      args - 翻译参数数组,对应模板中的 %s 等占位符
      Returns:
      翻译并格式化后的文本,或原始 Key
    • disable

      public void disable()
      停用并清理翻译服务。 释放内存缓存并重置状态位,通常在插件关闭时调用。