Language Settings
EasyMenu 7 includes multi-language support and lets you customize all user-facing messages.
Switching Languages
Set the language key in plugins/EasyMenu/config.yml:
# Options: en_us (English), ja_jp (Japanese), ru_ru (Russian)
language: "en_us"
Run /menu reload to apply language changes immediately.
Bundled Language Files
On startup, default language files are extracted into plugins/EasyMenu/lang/:
lang/en_us.yml(English)lang/ja_jp.yml(Japanese)lang/ru_ru.yml(Russian)
Customizing Messages
Edit the language files directly to use your own wording.
Language files use a nested format; each file in plugins/EasyMenu/lang/ has these keys:
plugin:
enabled: "EasyMenu has been enabled."
disabled: "EasyMenu has been disabled."
command:
player-only: "This command can only be used by a player."
no-permission: "You do not have permission to use this command."
submenu-error: "Failed to load menu '%s'."
reload:
start: "Reloading EasyMenu..."
success: "EasyMenu was reloaded successfully."
error: "Reload failed. Check the console for details."
menu-updated: "The menu was closed because EasyMenu was reloaded."
menu:
execution-error: "The menu action could not be completed."
open-denied: "You cannot open this menu."
element-disabled: "This option is not available right now."
render-failed: "The menu could not be displayed."
presentation-unavailable: "This menu cannot be displayed on this server version."
cooldown:
active: "Please wait %s more seconds."
action:
teleport-world-missing: "Teleport failed: world '%s' does not exist."
teleport-invalid-coordinates: "Teleport failed: the destination coordinates are invalid."
The input.* keys (prompts and validation errors) follow the same format. See the bundled lang/en_us.yml for the full list.
| Rule | Details |
|---|---|
| Key format | Keys are looked up by their nested path joined with ., such as reload.success. A flat key like reload-success: is not read. |
%s | %s is a format specifier replaced at runtime with a value (menu ID, remaining seconds, a minimum, ...). Keep the number and order of specifiers. Write %% for a literal %. |
| Color codes | Messages about menu interaction (menu.*, cooldown.active, command.submenu-error) convert color codes such as &a. Reload and input messages are sent with a color fixed by EasyMenu, so color codes in them have no effect. |
| Partial overrides | You may write only the keys you want to change. Missing keys fall back to the bundled English text, then to the bundled text of the selected language. |
| New languages | Create lang/<code>.yml and set language in config.yml to that code in lowercase. A language without a bundled file works as long as the file exists. If neither exists, a warning is logged and English is used. |
%s in a language file is a format specifier EasyMenu fills in at runtime. It is separate from the {player} and {remaining} variables used in menu YAML; language files do not expand {player}.
{remaining} works only inside an item's cooldown.message.