IGLanguages
PluginMIT

IGLanguages

IGLanguages it's a easy way to translate your server dinamically to other languages using PlaceholderAPI and API.

3
Downloads
0
Followers
2 months ago
Updated
📦
1
Versions

📖About IGLanguages

IGLanguages

The Multi-Language Plugin

DISCORD | WIKI

IGLanguages is a powerful and flexible language management plugin initially made for my server AfterLands. It's an easy way to translate your server dynamically to other languages using PlaceholderAPI.

Basically, if it has PlaceholderAPI support, you can translate it. Simple. ;)

gif


Features

  • Multi-language support with easy folder-based structure (supports subfolders!)
  • Compatible and tested with Spigot/Paper 1.8–1.21+ (Java 11+ required)
  • Automatically identifies player's client language (if exists in your lang folders)
  • Per-player language selection and storage (YAML, SQLite, or MySQL)
  • Cross-Server Sync with Redis support for BungeeCord/Velocity networks
  • Automatic fallback translation to default language
  • Custom actions on first join and when changing language (messages, sounds, commands, etc.)
  • PlaceholderAPI integration for dynamic translations
  • High Performance with Caffeine Cache and asynchronous storage
  • API for developers to integrate with other plugins and systems

How it Works

  • Each language is a folder which can have infinite translation files and subfolders.
  • Uses PlaceholderAPI to dynamically show translations based on the player's selected language.
  • If a translation key is missing, the default language key is used as a fallback.

Commands & Permissions

  • iglanguages.admin - The main permission
  • iglanguages.updatechecker - Check updates on join
Command Description
/languages help Shows help message
/languages set <player> <lang> Set a player's language
/languages get <player> Show a player's language
/languages auto <player> Auto detect player's language
/languages list List available languages
/languages reload Reload config and translations

Placeholders

PlaceholderAPI placeholders:

  • %lang_(key)% - Shows translation for the key in the player's language (root files).
  • %lang_(folder).(file)_(key)% - Shows translation for files in subfolders (e.g. %lang_menus.main_shop_title% for menus/main.yml).
  • %lang_player% - Shows the player's current language.
  • %lang_player_(nick)% - Shows the specified player's language.

Performance

  • Uses Caffeine Cache (high-performance, thread-safe) to assist with heavy loads.
  • All translations are loaded into memory at startup.
  • Database access is minimal and highly optimized (HikariCP for SQL).
  • Debounced YAML saving to reduce disk I/O.

API

For developers, check IGLanguagesAPI.java for more details. We have several useful methods (like getPlayerLang, getLangTranslation, getPlayerTranslation, etc.). More information is available on our GitHub page.

bstats

Make your server accessible to everyone! 😎

For support, join our Discord server: https://discord.gg/qGqRxx3V2J