Skip to main content

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:

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:

plugins/EasyMenu/lang/en_us.yml
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.

RuleDetails
Key formatKeys 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 codesMessages 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 overridesYou 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 languagesCreate 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.
Placeholder Safety

%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.