message_queue: get user target language in direct message translation

This commit is contained in:
Syping 2026-03-25 23:57:54 +01:00
parent bb5adf587c
commit 6def63078c

View file

@ -106,9 +106,12 @@ void message_queue::run(bot::settings::settings *settings, submit_queue *submit_
auto translator = settings->get_translator(); auto translator = settings->get_translator();
if (const auto *direct_message = std::get_if<bot::direct_message>(&message)) { if (const auto *direct_message = std::get_if<bot::direct_message>(&message)) {
const std::lock_guard<bot::settings::settings> guard(*settings);
bot::settings::user *user = settings->get_user(direct_message->event.command.get_issuing_user().id);
std::string target = user ? user->target : "en";
translated_direct_message translated_message; translated_direct_message translated_message;
translated_message.event = direct_message->event; translated_message.event = direct_message->event;
translated_message.message = translator->translate(direct_message->message, {}, "en"); translated_message.message = translator->translate(direct_message->message, {}, target);
submit_queue->add(std::move(translated_message)); submit_queue->add(std::move(translated_message));
} }
else if (const auto *guild_message = std::get_if<bot::guild_message>(&message)) { else if (const auto *guild_message = std::get_if<bot::guild_message>(&message)) {