Internationalization (i18n) Guide

PvPIndex Factions supports locale bundles under src/main/resources/messages/.

Shipped Locales

  • en
  • es
  • de
  • fr
  • pt-BR
  • ja
  • zh
  • ru

How Locale Resolution Works

Message lookup order is:

  1. Player-selected locale (/f language <code>)
  2. Server default locale (factions.language.default in config.yml)
  3. English locale (en)
  4. Inline Java fallback text

Add a New Language

  1. Fork the repository.
  2. Create a new file: src/main/resources/messages/messages_<locale>.yml.
  3. Copy messages_en.yml as the base template.
  4. Translate every value, but do not change keys.
  5. Preserve placeholders exactly:
    • {name}, {faction}, {amount}, etc.
    • MiniMessage tags like <red>, <click:...>, <hover:...>.
  6. Keep YAML structure and indentation intact.
  7. Run tests:
    • mvn test
  8. Commit with a clear message:
    • feat(i18n): add <locale> locale bundle
  9. Open a pull request and list:
    • Locale code
    • Coverage notes (fully translated or known gaps)

Translation Rules

  • Do not rename, remove, or add placeholders.
  • Do not remove MiniMessage formatting tags unless intentionally changing style.
  • Keep clickable/hover text valid MiniMessage.
  • Prefer natural language for Minecraft players over literal machine translation.

Back to top

PvPIndex Factions documentation. Distributed under LGPL-3.0.

This site uses Just the Docs, a documentation theme for Jekyll.