关于 Languagy
Languagy 是一个面向插件开发者的 Spigot API,旨在简化插件对玩家个体语言的支持。它并非一个可直接安装在服务器上的插件,而是供其他插件集成使用的库。服务器管理员无需直接安装 Languagy,但使用基于 Languagy 开发的插件时,可以了解其工作原理。
工作原理与目的
Languagy 的核心功能是让插件能够根据玩家客户端设置的语言,自动提供对应的翻译文本。它本身不提供自动翻译,而是要求插件开发者自行准备翻译文件,Languagy 则作为一个高效的包装器来处理语言匹配和文本获取。
为何使用 Languagy?
- 当前服务器插件普遍缺乏多语言支持。
- 即使支持,也常通过复杂的 GUI 实现,影响用户体验。
- Languagy 使多语言支持变得简单、自动化且对用户无感,从而提升服务器质量。
- 它易于集成,代码简洁,并支持通过 Gradle/Maven 进行依赖管理。
支持的插件
以下插件已集成 Languagy
希望你的插件也出现在这里?请通过私信、讨论区留言或发表评论联系作者。
集成指南 (Shading)
Languagy 必须被着色(shaded)并重定位(relocate)到你的插件中。
Gradle (Kotlin DSL)
repositories {
maven("https://repo.convallyria.com/releases")
}
dependencies {
implementation("com.convallyria.languagy:api:3.0.2") {
exclude("com.convallyria.languagy.libs")
}
}
tasks {
shadowJar {
relocate("com.convallyria.languagy", "YOUR_PACKAGE.libs.languagy")
}
}Maven
请参考上述 Gradle 配置中需要排除和重定位的包路径,在 Maven 中完成相应配置。作者未提供 Maven 示例,需要自行查找方法。
<repositories>
<repository>
<url>https://repo.convallyria.com/releases</url>
</repository>
</repositories>
<dependency>
<groupId>net.islandearth.languagy</groupId>
<artifactId>api</artifactId>
<version>3.0.2</version>
</dependency>API 使用方法 (v3)
成功添加依赖后,需要进行以下设置以使 Languagy 正常工作。
初始化与关闭
在你的插件主类的 onEnable 方法中初始化 Translator,并在 onDisable 中关闭它。
private Translator translator;
public Translator getTranslator() {
return translator;
}
@Override
public void onEnable() {
this.translator = Translator.of(this);
}
@Override
public void onDisable() {
translator.close(); // 非常重要!见下方说明。
}- 初始化
Translator有多种方式,详情请查阅 JavaDocs。 - 重要:必须在
onDisable中调用Translator#close()方法,以确保文件监听系统正确关闭。忽略此步骤可能导致问题。
使用翻译
- 通过
Translator#getTranslationFor获取特定玩家的翻译。 - 使用
Translation#colour方法为翻译文本着色。 - 或者,直接使用
Translation#send方法,它会自动处理着色并通过Player#sendMessage发送给玩家。 - 如果玩家客户端的语言没有对应的翻译文件,系统将回退到默认语言(默认为英语)。
语言文件
你需要从插件 JAR 中提取语言文件。可以参考 ForcePack 插件中的示例类:
https://gitlab.com/SamB440/ForcePac...orcepack/spigot/translation/Translations.java
常见问题 (FAQ)
- 需要重启/重载服务器来更新消息吗?
不需要。文件保持实时更新,你可以在服务器运行时修改翻译文件,更改会立即生效。
- 性能影响如何?
影响极小。Languagy 已在拥有 70 多名玩家的大型服务器和小型服务器上运行测试。它会在可能的情况下异步处理任务。
编译说明
Languagy 基于 Java JDK 1.8 构建,并使用 Gradle 管理依赖。
通过 bash 编译
cd Languagy
./gradlew build编译输出的 JAR 文件位于 build/libs 目录中。
支持与反馈
- Bug 报告/问题支持:请在 GitLab 的 Issues 页面提交问题。提交前请先搜索是否已有类似问题。
- 所有 Bug 报告:必须提供包含问题日志的调试日志。
- 请勿在评论中报告问题!请加入我们的 Discord 或创建 Issue 来反馈。