mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge pull request #2150 from evpeople/release
add a button to translate input message
This commit is contained in:
@@ -204,3 +204,7 @@ input.extension_missing[type="checkbox"] {
|
|||||||
#extensionsMenu>#translate_chat {
|
#extensionsMenu>#translate_chat {
|
||||||
order: 7;
|
order: 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#extensionsMenu>#translate_input_message {
|
||||||
|
order: 8;
|
||||||
|
}
|
||||||
|
@@ -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
|
// Prevents the chat from being translated in parallel
|
||||||
let translateChatExecuting = false;
|
let translateChatExecuting = false;
|
||||||
|
|
||||||
@@ -555,10 +573,16 @@ jQuery(() => {
|
|||||||
<div id="translate_chat" class="list-group-item flex-container flexGap5">
|
<div id="translate_chat" class="list-group-item flex-container flexGap5">
|
||||||
<div class="fa-solid fa-language extensionsMenuExtensionButton" /></div>
|
<div class="fa-solid fa-language extensionsMenuExtensionButton" /></div>
|
||||||
Translate Chat
|
Translate Chat
|
||||||
</div>`;
|
</div>
|
||||||
|
<div id="translate_input_message" class="list-group-item flex-container flexGap5">
|
||||||
|
<div class="fa-solid fa-keyboard extensionsMenuExtensionButton" /></div>
|
||||||
|
Translate Input
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
$('#extensionsMenu').append(buttonHtml);
|
$('#extensionsMenu').append(buttonHtml);
|
||||||
$('#extensions_settings2').append(html);
|
$('#extensions_settings2').append(html);
|
||||||
$('#translate_chat').on('click', onTranslateChatClick);
|
$('#translate_chat').on('click', onTranslateChatClick);
|
||||||
|
$('#translate_input_message').on('click', onTranslateInputMessageClick);
|
||||||
$('#translation_clear').on('click', onTranslationsClearClick);
|
$('#translation_clear').on('click', onTranslationsClearClick);
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(languageCodes)) {
|
for (const [key, value] of Object.entries(languageCodes)) {
|
||||||
|
Reference in New Issue
Block a user