Skip to content
JExcellence

JExcellence/JExTranslate

LibraryLive in production

YAML-driven internationalization for Bukkit / Spigot / Paper / Folia plugins. MiniMessage native, legacy & codes alongside, per-player locale resolution

AO18n is a Language System which provides a easy to use Message System in Minecraft history. Unlimited Languages Supported!

18 2 since joining 5JavaPush 21d agoListed 1mo agoNo license on GitHub

jexcellence.de/en

javaleightweightminecraftminecraft-pluginminecraft-server-pluginmultilanguage-supportpaperspigot
  • Java100.0%
View on GitHub

Report a problem

1 Review

JExTranslate provides a capable internationalization layer for Bukkit, Spigot, Paper, and Folia plugins. Its fluent MessageBuilder API keeps common tasks concise while supporting per-player locale resolution, fallback languages, prefixes, multiline messages, broadcasts, titles, item metadata, and plain-text output. The implementation goes beyond simple YAML lookup with hot reload, translation validation, exports, usage metrics, caching, legacy color conversion, and Bedrock formatting through reflected Floodgate and Geyser integration. The code is divided into clear packages for loading, validation, commands, configuration, formatting, and platform compatibility. Fifteen bundled translations and graceful feature detection support the project’s broad compatibility goals.

The documentation is detailed and includes practical examples, migration guidance, configuration options, and deployment choices. However, several claims need to match the current code more closely. The README says placeholder values are automatically MiniMessage-escaped, but MessageProvider.escapeMiniMessage() currently returns input unchanged. A player-controlled value such as a username containing MiniMessage tags could therefore change message formatting. Either safe escaping should become the default with an explicit trusted-component option, or the documentation should clearly place sanitization responsibility on consumers. The plural selector is also a hand-written implementation for a limited group of languages, not complete ICU CLDR support for arbitrary locales as the README suggests.

Testing exists, but it mainly covers configuration, color conversion, version detection, legacy builder behavior, and UTF-8 repair. Core promises such as plural rules, placeholder safety, locale fallback, hot reload, Bedrock conversion, exports, and compatibility across Minecraft versions need direct tests. The standalone repository has no CI workflow and depends on JExSuite convention plugins and version catalogs that are not included, so builds must come from the monorepo. Versioning is also confusing because the build declares 3.2.0 while installation examples and artifact paths use 3.0.0, and the available releases are older generic tags without assets. Most importantly, the repository has no license file, while TranslationContentRepair and its test contain a proprietary Antimatter Zone LLC notice. Resolving that ownership and licensing conflict is necessary before others can confidently use, modify, or distribute the library.