diff --git a/src/lang/en.ts b/src/lang/en.ts index 17431ea9..f02fdb6c 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -1050,6 +1050,7 @@ export const languageEnglish = { emptySelectedFirstMessageLabel: "WARN: Selected first message is empty", }, bulkEnabling: "Lorebook Bulk Enabling", + showTranslationLoading: "Show Translation Loading", showDeprecatedTriggerV1: "Show Deprecated Trigger V1", triggerV1Warning: "Trigger V1 is deprecated. it might be removed in the future.", copy: "Copy", diff --git a/src/lang/ko.ts b/src/lang/ko.ts index 9e7b4bc8..93891ae5 100644 --- a/src/lang/ko.ts +++ b/src/lang/ko.ts @@ -972,6 +972,7 @@ export const languageKorean = { "emptySelectedFirstMessageLabel": "경고: 선택된 첫 메시지가 비어있습니다" }, "bulkEnabling": "한번에 로어북 활성화 버튼", + "showTranslationLoading": "번역 로딩 보이기", "showDeprecatedTriggerV1": "비권장 트리거 V1 보이기", "triggerV1Warning": "트리거 V1은 비권장입니다. 추후에 제거될 수 있습니다.", "copy": "복사", diff --git a/src/lib/ChatScreens/Chat.svelte b/src/lib/ChatScreens/Chat.svelte index 004e437d..07a8a74c 100644 --- a/src/lib/ChatScreens/Chat.svelte +++ b/src/lib/ChatScreens/Chat.svelte @@ -154,14 +154,26 @@ } } + const lastTranslated = translated + setTimeout(() => { translated = translateText }, 10) + + // State change of `translated` triggers markParsing again, + // causing redundant translation attempts + if (lastTranslated !== translateText) { + return; + } } catch (error) { console.error(error) } } if(translateText){ + if (!retranslate && DBState.db.showTranslationLoading) { + lastParsed = `