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;
|
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) {
|
export function appendImageToMessage(mes, messageElement) {
|
||||||
if (mes.extra?.image) {
|
if (mes.extra?.image) {
|
||||||
const image = messageElement.find('.mes_img');
|
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");
|
const codeBlocks = $(messageElement).find("pre code");
|
||||||
for (let i = 0; i < codeBlocks.length; i++) {
|
for (let i = 0; i < codeBlocks.length; i++) {
|
||||||
hljs.highlightElement(codeBlocks.get(i));
|
hljs.highlightElement(codeBlocks.get(i));
|
||||||
|
@ -3,10 +3,10 @@ import {
|
|||||||
eventSource,
|
eventSource,
|
||||||
event_types,
|
event_types,
|
||||||
getRequestHeaders,
|
getRequestHeaders,
|
||||||
messageFormatting,
|
|
||||||
reloadCurrentChat,
|
reloadCurrentChat,
|
||||||
saveSettingsDebounced,
|
saveSettingsDebounced,
|
||||||
substituteParams,
|
substituteParams,
|
||||||
|
updateMessageBlock,
|
||||||
} from "../../../script.js";
|
} from "../../../script.js";
|
||||||
import { extension_settings, getContext } from "../../extensions.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);
|
const translation = await translate(textToTranslate, extension_settings.translate.target_language);
|
||||||
message.extra.display_text = translation;
|
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) {
|
async function translateProviderGoogle(text, lang) {
|
||||||
@ -211,8 +211,8 @@ async function translateOutgoingMessage(messageId) {
|
|||||||
|
|
||||||
const originalText = message.mes;
|
const originalText = message.mes;
|
||||||
message.extra.display_text = originalText;
|
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);
|
message.mes = await translate(originalText, extension_settings.translate.internal_language);
|
||||||
|
updateMessageBlock(messageId, message);
|
||||||
|
|
||||||
console.log('translateOutgoingMessage', messageId);
|
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 the message is already translated, revert it back to the original text
|
||||||
if (message?.extra?.display_text) {
|
if (message?.extra?.display_text) {
|
||||||
delete 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
|
// If the message is not translated, translate it
|
||||||
else {
|
else {
|
||||||
|
Reference in New Issue
Block a user