Localization
Translate ProVouchers messages and serve each player their own language.
Every plugin-generated message (command feedback, redeem errors, condition defaults, staff alerts) lives in a language file, so you can translate ProVouchers or reword it to match your server's voice. Voucher names, lore, and reward text are not here: those are per-voucher and already yours to write (see Text).
How it works
ProVouchers ships seven languages, written to plugins/ProVouchers/lang/ on first
start: English (en), German (de), French (fr), Spanish (es), Polish (pl),
Danish (da), and Dutch (nl). English is the ground truth and the fallback.
Messages are MiniMessage with a {prefix} placeholder and message-specific
placeholders:
prefix: "<gradient:#FFD700:#FF8A00><b>ProVouchers</b></gradient> <dark_gray>»</dark_gray> "
redeem:
expired: "<red>This voucher has expired."
cooldown: "<red>You must wait {seconds}s before redeeming this again."Translating
For a language that is not bundled, copy lang/en.yml to lang/<code>.yml (a
Minecraft language code such as it or pt), translate the values, and keep the keys
and {placeholders} unchanged. The bundled translations can be edited the same way;
your edits are kept across updates. Then either set the active language or rely on
per-player detection:
locale:
default: en # the active/fallback language and the console language
per-player: true # serve each player their client language when a lang file existsper-player: true(default) serves each player the language of their Minecraft client when a matchinglang/<code>.ymlexists, otherwisedefault. Console always usesdefault.per-player: falseservesdefaultto everyone.
Any key you leave out of a translation falls back to English, so a partial translation
never shows a blank line. Editing or adding a lang/<code>.yml is picked up by
/voucher reload; changing the locale settings needs a restart.
Per-voucher messages
Some messages can also be set per voucher and override the language file, such as a
two-step confirmation prompt. These still
support {prefix} and their placeholders.
Tips
{prefix}is itself a key, so rebrand the prefix once and it applies everywhere it is used.- Run
/voucher doctorto see the active locale and which language files are loaded.