Skip to content

Localization Guide ​

This guide explains how to customize messages in MineAcademy plugins, such as "Wait (x) seconds before chatting again" in ChatControl.

Overview ​

All MineAcademy plugins store language keys in a JSON format. By default, these files are not exported to your server folder unless you specifically request them.

IMPORTANT

Some messages cannot be reloaded with a simple plugin reload. For major language changes, you may need to do a clean server restart.

Quick Translation Using AI

You can quickly translate your localization files by dumping the generated locale JSON into a language model such as Claude or Google Gemini (models with large context windows). Simply ask the AI to translate the JSON content into your desired language for free.

Customizing Localization ​

Follow these steps to customize messages for any MineAcademy plugin:

  1. Type /<plugin> dumplocale in the game (for example, /chc dumplocale for ChatControl, /boss dumplocale for Boss). This generates a lang/xx_YY.json file in your plugin folder (using whatever language you specified in the Locale key in settings.yml).

  2. Edit the file to your liking. To hide a message, you can set its value to "none" if an empty value does not work.

  3. If a new version of the plugin adds more language keys, simply re-run the command again to update your disk file. The plugin will default to the embedded language file in the plugin JAR for keys which are missing.

Tips and Tricks ​

Hiding Messages ​

Tip

To hide a message, set its value to "none" or "".

json
{
  "example-message": "none"
}

Using the Right Encoding ​

Make sure you save the language file in UTF-8 encoding to properly support special characters.

See Our Guide on Encoding

We have a dedicated guide on Using the Right File Encoding that explains how to ensure your files are saved with UTF-8 encoding.

Removing Prefixes ​

Many plugins use prefixes like [X] or [!] before messages. You can typically hide these by finding keys that start with "prefix-" and setting them to "none":

json
{
  "prefix-announcement": "none",
  "prefix-warning": "none"
}