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

View File

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