Server I18n API 重生版

Server I18n API 重生版

26.1+ 服务器国际化API的端口

基础库

Server I18n API (重生版)

这是一个仅服务端的模组API,为纯服务端模组提供国际化支持。

发送消息给玩家时会自动检测语言。

上游: CodeOfArdonia/ServerI18nAPI

这是 Server I18n API 的分支,用于支持 26.1+ 版本。

开发者指南

你需要将语言 JSON 文件放入 data/<模组ID>/lang/<语言>.json,并填写键值对。assets 文件夹中的语言文件会被 ServerI18n 忽略。

API: ServerI18n.java 类。

示例:

// 1. 将键翻译为指定玩家的语言,包含位置参数
String msg = ServerI18n.translate(玩家, "chat.welcome", "Steve", 5);
// 玩家的语言(例如 "zh_cn")-> "欢迎回来, Steve! 你有5条新消息。"

// 2. 向指令源(玩家或控制台)发送翻译后的系统消息
ServerI18n.sendMessage(指令源, "foo.command.success", "backup.zip");
// 如果指令源是玩家,则使用其语言;否则回退为 en_us。

// 3. 获取原始翻译,不应用 String.format(例如用于自定义格式)
String raw = ServerI18n.translateRaw("fr_fr", "bar.gui.button.confirm");
// raw = "Confirmer"(如果存在),否则回退为 en_us 或键本身。

// 4. 通过服务器实例向所有在线玩家广播消息
ServerI18n.broadcast(服务器, "announcement.maintenance", "10:00", "12:00");
// 每个玩家都会以其母语收到消息。

// 5. 显式使用默认语言(en_us)用于控制台或回退
Component comp = ServerI18n.translateToLiteralDefault("baz.error.file_not_found", "config.yml");
// comp 是一个包含英文文本的文本组件:"File not found: config.yml"