mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
#407 Add two-state message translation button
This commit is contained in:
@ -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();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user