mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Display code blocks in translated messages
This commit is contained in:
@ -1104,6 +1104,14 @@ function getMessageFromTemplate({ mesId, characterName, isUser, avatarImg, bias,
|
||||
return mes;
|
||||
}
|
||||
|
||||
export function updateMessageBlock(messageId, message) {
|
||||
const messageElement = $(`#chat [mesid="${messageId}"]`);
|
||||
const text = message?.extra?.display_text ?? message.mes;
|
||||
messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user));
|
||||
addCopyToCodeBlocks(messageElement)
|
||||
appendImageToMessage(message, messageElement);
|
||||
}
|
||||
|
||||
export function appendImageToMessage(mes, messageElement) {
|
||||
if (mes.extra?.image) {
|
||||
const image = messageElement.find('.mes_img');
|
||||
@ -1117,7 +1125,7 @@ export function appendImageToMessage(mes, messageElement) {
|
||||
}
|
||||
}
|
||||
|
||||
function addCopyToCodeBlocks(messageElement) {
|
||||
export function addCopyToCodeBlocks(messageElement) {
|
||||
const codeBlocks = $(messageElement).find("pre code");
|
||||
for (let i = 0; i < codeBlocks.length; i++) {
|
||||
hljs.highlightElement(codeBlocks.get(i));
|
||||
|
@ -3,10 +3,10 @@ import {
|
||||
eventSource,
|
||||
event_types,
|
||||
getRequestHeaders,
|
||||
messageFormatting,
|
||||
reloadCurrentChat,
|
||||
saveSettingsDebounced,
|
||||
substituteParams,
|
||||
updateMessageBlock,
|
||||
} from "../../../script.js";
|
||||
import { extension_settings, getContext } from "../../extensions.js";
|
||||
|
||||
@ -168,7 +168,7 @@ async function translateIncomingMessage(messageId) {
|
||||
const translation = await translate(textToTranslate, extension_settings.translate.target_language);
|
||||
message.extra.display_text = translation;
|
||||
|
||||
$(`#chat .mes[mesid="${messageId}"] .mes_text`).html(messageFormatting(translation, message.name, message.is_system, message.is_user));
|
||||
updateMessageBlock(messageId, message);
|
||||
}
|
||||
|
||||
async function translateProviderGoogle(text, lang) {
|
||||
@ -211,8 +211,8 @@ async function translateOutgoingMessage(messageId) {
|
||||
|
||||
const originalText = message.mes;
|
||||
message.extra.display_text = originalText;
|
||||
$(`#chat .mes[mesid="${messageId}"] .mes_text`).html(messageFormatting(originalText, message.name, message.is_system, message.is_user));
|
||||
message.mes = await translate(originalText, extension_settings.translate.internal_language);
|
||||
updateMessageBlock(messageId, message);
|
||||
|
||||
console.log('translateOutgoingMessage', messageId);
|
||||
}
|
||||
@ -299,7 +299,7 @@ async function onMessageTranslateClick() {
|
||||
// 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));
|
||||
updateMessageBlock(messageId, message);
|
||||
}
|
||||
// If the message is not translated, translate it
|
||||
else {
|
||||
|
Reference in New Issue
Block a user