Skip to content
Psycofeu edited this page Mar 2, 2026 · 2 revisions

Wiki for HydraTranslation

First step:

Add libs into your plugin.

Second step:

Register your languages in your plugin.

HydraTranslation::getInstance()->register(plugin: $this, defaultLang: LangTypeEnum::EN, availlabledLangs: [LangTypeEnum::EN, LangTypeEnum::FR]);

This automatically creates a lang folder with .ini files for each language. The defaultLang is used if the player's language is not available (e.g., game in Chinese → displayed in English by default).

Third step:

Add your translations into the folder lang in each files you need translations.

Last step:

handle translation for player.

$player = HydraTranslation::getPlayerManager()->getOrCreate($sender->getName());
$player->sendTranslateMessage(key: "discord", params: ["{link}" => "discord.gg/exemple"]);

Retrieves the player and sends a message translated according to their language. The params replace the placeholders in the translation (e.g., {link} → discord.gg/exemple)."


BONUS:

Change player local:

Change the player local according to your server settings.

$player = HydraTranslation::getPlayerManager()->getOrCreate($sender->getName());
$player->lang = LangTypeEnum::DE->value;

Broadcast:

Broadcast to all online players an translated message.

HydraTranslation::getPlayerManager()->broadcastTranslatedMessage("welcome", ["{player}" => $newPlayer->getName()]);

Reload translations:

For reload langs while not restarting server, you can add your personal command with this line:

HydraTranslation::getLangManager()->loadAllLangs($this, [LangTypeEnum::EN, LangTypeEnum::FR]);