From a7b4752dafc10263faa0b5ef85c0bbb411c88775 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Mon, 13 Nov 2023 00:25:54 +0900 Subject: [PATCH] [fix] translation status --- src/lib/ChatScreens/Chat.svelte | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib/ChatScreens/Chat.svelte b/src/lib/ChatScreens/Chat.svelte index 8fe141d4..1c04917a 100644 --- a/src/lib/ChatScreens/Chat.svelte +++ b/src/lib/ChatScreens/Chat.svelte @@ -9,6 +9,7 @@ import { translate, translateHTML } from "../../ts/translator/translator"; import { risuChatParser } from "src/ts/process/scripts"; import { get } from "svelte/store"; + import { isEqual } from "lodash"; export let message = '' export let name = '' export let largePortrait = false @@ -67,19 +68,30 @@ } let lastParsed = '' + let lastCharArg:string|simpleCharacterArgument = null + let lastChatId = -10 - const markParsing = async (data: string, charArg?: string | groupChat | simpleCharacterArgument, mode?: "normal" | "back", chatID?: number, translateText?:boolean) => { + const markParsing = async (data: string, charArg?: string | simpleCharacterArgument, mode?: "normal" | "back", chatID?: number, translateText?:boolean) => { + if((!isEqual(lastCharArg, charArg)) || (chatID !== lastChatId)){ + lastParsed = '' + lastCharArg = charArg + lastChatId = chatID + translateText = false + translated = false + } if(translateText){ const marked = await ParseMarkdown(data, charArg, mode, chatID) translating = true const translated = await translateHTML(marked, false) translating = false lastParsed = translated + lastCharArg = charArg return translated } else{ const marked = await ParseMarkdown(data, charArg, mode, chatID) lastParsed = marked + lastCharArg = charArg return marked } }