diff --git a/public/css/extensions-panel.css b/public/css/extensions-panel.css index 726a79e36..3b22ddf23 100644 --- a/public/css/extensions-panel.css +++ b/public/css/extensions-panel.css @@ -204,3 +204,7 @@ input.extension_missing[type="checkbox"] { #extensionsMenu>#translate_chat { order: 7; } + +#extensionsMenu>#translate_input_message { + order: 8; +} diff --git a/public/scripts/extensions/translate/index.js b/public/scripts/extensions/translate/index.js index a9c7748e2..96b032752 100644 --- a/public/scripts/extensions/translate/index.js +++ b/public/scripts/extensions/translate/index.js @@ -424,6 +424,24 @@ function createEventHandler(translateFunction, shouldTranslateFunction) { }; } +async function onTranslateInputMessageClick() { + const textarea = document.getElementById('send_textarea'); + + if (!(textarea instanceof HTMLTextAreaElement)) { + return; + } + + if (!textarea.value) { + toastr.warning('Enter a message first'); + return; + } + + const toast = toastr.info('Input Message is translating', 'Please wait...'); + const translatedText = await translate(textarea.value, extension_settings.translate.internal_language); + textarea.value = translatedText; + toastr.clear(toast); +} + // Prevents the chat from being translated in parallel let translateChatExecuting = false; @@ -555,10 +573,16 @@ jQuery(() => {