Class LanguageService

java.lang.Object
io.github.theword.queqiao.core.localize.LanguageService

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

该服务负责从本地文件系统加载 JSON 格式的翻译库,并为事件消息提供多语言转换支持。 翻译数据通过不可变快照发布,因此翻译调用不需要获取锁。

Since:
0.6.0
  • Constructor Summary

    Constructors
    Constructor
    Description
    LanguageService(boolean isModServer, org.slf4j.Logger logger)
    构造并初始化翻译服务。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    停用翻译服务。通过发布空状态完成清理,不修改任何已发布 Map。
    boolean
    获取翻译服务当前的内部启用状态。
    void
    重新读取当前翻译目录并发布新状态。
    translate(String key, Object[] args)
    对外翻译接口。 根据传入的翻译键映射对应文本,并使用 String.format 填充参数。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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()
      重新读取当前翻译目录并发布新状态。

      所有文件先加载到局部 Map,完成后再整体发布。读取线程只读取 volatile 状态, 不会观察到清空和填充之间的中间状态。并发 reload/disable 由实例锁串行化。

    • translate

      public String translate(String key, Object[] args)
      对外翻译接口。 根据传入的翻译键映射对应文本,并使用 String.format 填充参数。
      Parameters:
      key - 翻译键(例如 death.attack.player)
      args - 翻译参数数组,对应模板中的 %s 等占位符
      Returns:
      翻译并格式化后的文本,或原始 Key
    • disable

      public void disable()
      停用翻译服务。通过发布空状态完成清理,不修改任何已发布 Map。