Languages
Add a language by dropping one file into a folder.
Only English ships with the plugin. Every other language is a file you write, and adding
one takes no code change, no configuration edit and no restart beyond /ah reload.
Adding a language
- Open
plugins/ZyAuctions/lang/. - Copy
en_US.reference.ymlto a new file named after the locale —de_DE.yml,fr_FR.yml,pt_BR.yml, or justde.ymlfor a language with no region. - Translate the values. Leave the keys alone.
- Run
/ah reload.
That is all of it.
Never edit en_US.reference.yml. It is rewritten from the jar on every startup, so your
changes will be silently lost. It exists to be copied from.
Changing the English wording
Same procedure: copy en_US.reference.yml to en_US.yml and edit that. Your file takes
precedence key by key over the bundled English, so you can override two lines and leave the
rest alone.
Partial translations are fine
Any key you leave out falls back to the bundled English. Nothing errors, nothing goes blank, and the console tells you what is missing:
[ZyAuctions] lang/de_DE.yml is missing 4 key(s); those fall back to English.
First few: zyauctions.tip.has_bids, zyauctions.reason.won, ...So you can ship a half-finished translation, use it, and fill in the rest later.
Which language a player sees
Controlled by language in config.yml:
language: autoauto— each player sees their own client language. The lookup order is: their exact locale (de_AT), then the language alone (de), then English.- Any locale name — everyone sees that language whatever their client is set to. Useful for a single-language community whose members play with English clients.
What the file looks like
zyauctions:
prefix: "<muted>[</muted><primary>Auktionen</primary><muted>]</muted> "
error:
no_permission: "<prefix><error>❌</error> <text>Dazu hast du keine Berechtigung.</text>"
buy:
success: "<prefix><success>✔</success> <text><emphasis><amount>x <item></emphasis> von <emphasis><seller></emphasis> für <emphasis><price></emphasis> gekauft.</text>"Three things to know:
Arguments are named. <price>, <seller>, <amount> are filled in by the plugin. They
are named rather than numbered specifically so you can reorder a sentence — German word
order is not English word order, and a translation should not be forced into it. Use each
one at most once, and it is fine to leave one out if your sentence does not need it.
Colours are tokens, never hex codes. <primary>, <error>, <muted> and the rest.
See Appearance for the full list. Writing <red> will render the
tag as literal text.
<prefix> is itself a key. It expands to whatever zyauctions.prefix says in the same
language, so translating the prefix once rebrands every chat message in that locale. Put
it only on chat lines — never on item lore, menu titles or button text.
Characters
Use whatever your language needs. Accented Latin, Greek, Cyrillic, Armenian, Georgian and Hebrew all render in Minecraft's normal font.
Japanese, Chinese, Korean, Thai and Devanagari fall back to a different, thinner font built into the game. That is a Minecraft limitation, not a plugin one, and there is nothing either of us can do about it — the text is perfectly readable, it just looks different from the surrounding interface.
The ✔ ❌ ⚠ ℹ markers at the start of messages are there so that success and failure are
distinguishable without relying on colour. Please keep them.
Startup output
[ZyAuctions] Loaded 3 locale(s): de_DE, en_US, fr_FRIf a file is missing from that list, check:
- the name is a locale (
de_DE.yml, notgerman.yml); - it ends in
.yml, not.yaml; - it is not named
something.reference.yml, which is deliberately skipped; - it contains at least one key under
zyauctions:.
Each of those cases logs its own line saying which one it was.