diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index a331c6185..7277dec23 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -2219,8 +2219,23 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement) MailDraft draft(reward->mailTemplate); if (!reward->mailTemplate) - draft = MailDraft(reward->subject, reward->text); - + { + std::string subject = reward->subject; + std::string text = reward->text; + + LocaleConstant localeConstant = GetPlayer()->GetSession()->GetSessionDbLocaleIndex(); + if (localeConstant != LOCALE_enUS) + { + if(AchievementRewardLocale const* loc = sAchievementMgr->GetAchievementRewardLocale(achievement)) + { + ObjectMgr::GetLocaleString(loc->Subject, localeConstant, subject); + ObjectMgr::GetLocaleString(loc->Text, localeConstant, text); + } + } + + draft = MailDraft(subject, text); + } + SQLTransaction trans = CharacterDatabase.BeginTransaction(); Item* item = reward->itemId ? Item::CreateItem(reward->itemId, 1, GetPlayer()) : NULL;