IGLanguages it's a powerful and flexible language management plugin initially made for my server AfterLands. It's a easy way to translate your server dinamically to other languages using PlaceholderAPI for that. For support you can join our discord server.
Basically, if have PlaceholderAPI support, you can translate, 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 indentifies player's client language (if exists in your lang folders set as player lang)
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 for dinamically show translation to your player based in player's selected language.
If a translation key is missing, the default language key is used as fallback.
Commands & Permissions
iglanguages.admin - The main permission iglanguages.updatechecker - Check updates on join
/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 just look
IGLanguagesAPI.java for more details. We have some useful methods
(like getPlayerLang, getLangTranslation, getPlayerTranslation, etc). More informations on our GitHub page.
Make your server accessible to everyone. Try IGLanguages and leave your 5 star review! For support you can join our discord server (https://discord.gg/qGqRxx3V2J)