diff --git a/src/lang/en.ts b/src/lang/en.ts index 452f46a0..9601d18c 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -809,4 +809,5 @@ export const languageEnglish = { summarizationPrompt: "Summarization Prompt", translatorPrompt: "Translation Prompt", translateBeforeHTMLFormatting: "Translate Before HTML Formatting", + retranslate: "Retranslate", } \ No newline at end of file diff --git a/src/lib/ChatScreens/Chat.svelte b/src/lib/ChatScreens/Chat.svelte index a4216761..6ed2da91 100644 --- a/src/lib/ChatScreens/Chat.svelte +++ b/src/lib/ChatScreens/Chat.svelte @@ -12,7 +12,7 @@ import { type Unsubscriber } from "svelte/store"; import { isEqual } from "lodash"; import { sayTTS } from "src/ts/process/tts"; - import { capitalize } from "src/ts/util"; + import { capitalize, sleep } from "src/ts/util"; import { longpress } from "src/ts/gui/longtouch"; import { ColorSchemeTypeStore } from "src/ts/gui/colorscheme"; import { ConnectionOpenStore } from "src/ts/sync/multiuser"; @@ -21,6 +21,7 @@ let translating = $state(false) let editMode = $state(false) let statusMessage:string = $state('') + let retranslate = false interface Props { message?: string; name?: string; @@ -148,9 +149,13 @@ } } if(translateText){ - if(DBState.db.translator === 'llm' && DBState.db.translateBeforeHTMLFormatting){ + let doRetranslate = retranslate + retranslate = false + console.log(`retranslating: ${doRetranslate}`) + if(DBState.db.translatorType === 'llm' && DBState.db.translateBeforeHTMLFormatting){ + await sleep(100) translating = true - data = await translateHTML(data, false, charArg, chatID) + data = await translateHTML(data, false, charArg, chatID, doRetranslate) translating = false const marked = await ParseMarkdown(data, charArg, mode, chatID, getCbsCondition()) lastParsedQueue = marked @@ -160,7 +165,7 @@ else if(!DBState.db.legacyTranslation){ const marked = await ParseMarkdown(data, charArg, 'pretranslate', chatID, getCbsCondition()) translating = true - const translated = await postTranslationParse(await translateHTML(marked, false, charArg, chatID)) + const translated = await postTranslationParse(await translateHTML(marked, false, charArg, chatID, doRetranslate)) translating = false lastParsedQueue = translated lastCharArg = charArg @@ -169,7 +174,7 @@ else{ const marked = await ParseMarkdown(data, charArg, mode, chatID, getCbsCondition()) translating = true - const translated = await translateHTML(marked, false, charArg, chatID) + const translated = await translateHTML(marked, false, charArg, chatID, doRetranslate) translating = false lastParsedQueue = translated lastCharArg = charArg @@ -228,24 +233,40 @@ {#snippet genInfo()} - {#if messageGenerationInfo && DBState.db.requestInfoInsideChat} -