#407 Add two-state message translation button

This commit is contained in:
SillyLossy
2023-05-30 23:47:09 +03:00
parent b1927d454c
commit 8fdfb272a4

View File

@ -291,6 +291,24 @@ async function translateMessageEdit(messageId) {
} }
} }
async function onMessageTranslateClick() {
const context = getContext();
const messageId = $(this).closest('.mes').attr('mesid');
const message = context.chat[messageId];
// If the message is already translated, revert it back to the original text
if (message?.extra?.display_text) {
delete message.extra.display_text;
$(`#chat .mes[mesid="${messageId}"] .mes_text`).html(messageFormatting(message.mes, message.name, message.is_system, message.is_user));
}
// If the message is not translated, translate it
else {
await translateIncomingMessage(messageId);
}
await context.saveChat();
}
const handleIncomingMessage = createEventHandler(translateIncomingMessage, () => shouldTranslate(incomingTypes)); const handleIncomingMessage = createEventHandler(translateIncomingMessage, () => shouldTranslate(incomingTypes));
const handleOutgoingMessage = createEventHandler(translateOutgoingMessage, () => shouldTranslate(outgoingTypes)); const handleOutgoingMessage = createEventHandler(translateOutgoingMessage, () => shouldTranslate(outgoingTypes));
const handleImpersonateReady = createEventHandler(translateImpersonate, () => shouldTranslate(incomingTypes)); const handleImpersonateReady = createEventHandler(translateImpersonate, () => shouldTranslate(incomingTypes));
@ -352,12 +370,7 @@ jQuery(() => {
extension_settings.translate.target_language = event.target.value; extension_settings.translate.target_language = event.target.value;
saveSettingsDebounced(); saveSettingsDebounced();
}); });
$(document).on('click', '.mes_translate', function () { $(document).on('click', '.mes_translate', onMessageTranslateClick);
const context = getContext();
const messageId = $(this).closest('.mes').attr('mesid');
translateIncomingMessage(messageId);
context.saveChat();
});
loadSettings(); loadSettings();