Display code blocks in translated messages

This commit is contained in:
SillyLossy
2023-05-30 23:57:56 +03:00
parent 8fdfb272a4
commit ed74eedc5b
2 changed files with 13 additions and 5 deletions

View File

@ -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));

View File

@ -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 {