
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
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. ;)
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 permissioniglanguages.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.
Make your server accessible to everyone! 😎
For support, join our Discord server: https://discord.gg/qGqRxx3V2J