Skip to content

国际化

MzLib 提供了 I18n 类用于处理多语言

加载语言文件

语言文件的格式为Java的 Properties 或者 Json

使用 I18n 中的静态方法 load(File folder, float priority) 来加载所有语言文件

  • folder 文件夹, 其内部包含多个语言文件,如 en-us.lang zh-ch.lang...
  • priority 优先级, 代表该 I18n 集合的检索顺序
java
// 假设 langs 文件夹存在并且有语言文件
I18n i18n = I18n.load(new File("langs"),1.0);

然后我们使用 RegistrarI18n 类将加载好的 I18n 集合注册进去以便使用

java
// 第一个形参可以填写注册该I18n的模块, 这里用 null 替代
RegistrarI18n.register(null,i18n);

注销使用 unregister, 使用方法同理

使用

将您需要进行国际化处理的文本部分用 I18ngetTranslation(String language,String key) 方法替换

  • language 语言代号, 如 zh-ch en-us
  • key 统一代号, 如 command.help (详见语言文件内代号对应的语言信息)

这里用 sendMessage 举例

java
player.sendMessage(I18n.getTranslation("zh-cn","command.help"));