From ae6d12ea29cb71fbdc5571299dd57bfabd337522 Mon Sep 17 00:00:00 2001
From: Bo26fhmC5M <88071760+Bo26fhmC5M@users.noreply.github.com>
Date: Thu, 28 Nov 2024 21:53:15 +0900
Subject: [PATCH] Add autoTranslateCachedOnly option to auto-translate only
previously translated text when enabled.
---
src/lang/en.ts | 2 ++
src/lib/ChatScreens/Chat.svelte | 12 ++++++++++--
src/lib/Setting/Pages/LanguageSettings.svelte | 6 ++++++
src/ts/storage/database.svelte.ts | 1 +
src/ts/translator/translator.ts | 4 ++++
5 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/lang/en.ts b/src/lang/en.ts
index 5dc39a0e..bc0d11a6 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -170,6 +170,7 @@ export const languageEnglish = {
summarizationPrompt: "The prompt that is used for summarization. if it is blank, it will use the default prompt. you can also use ChatML formating with {{slot}} for the chat data.",
translatorPrompt: "The prompt that is used for translation. if it is blank, it will use the default prompt. you can also use ChatML formating with {{slot}} for the dest language, {{solt::content}} for the content, and {{slot::tnote}} for the translator note.",
translateBeforeHTMLFormatting: "If enabled, it will translate the text before Regex scripts and HTML formatting. this could make the token lesser but could break the formatting.",
+ autoTranslateCachedOnly: "If enabled, it will automatically translate only the text that the user has translated previously.",
},
setup: {
chooseProvider: "Choose AI Provider",
@@ -811,4 +812,5 @@ export const languageEnglish = {
translateBeforeHTMLFormatting: "Translate Before HTML Formatting",
retranslate: "Retranslate",
loading: "Loading",
+ autoTranslateCachedOnly: "Auto Translate Cached Only",
}
\ No newline at end of file
diff --git a/src/lib/ChatScreens/Chat.svelte b/src/lib/ChatScreens/Chat.svelte
index 3a48eb7c..1f5995d1 100644
--- a/src/lib/ChatScreens/Chat.svelte
+++ b/src/lib/ChatScreens/Chat.svelte
@@ -7,7 +7,7 @@
import { type MessageGenerationInfo } from "../../ts/storage/database.svelte";
import { alertStore, DBState } from 'src/ts/stores.svelte';
import { HideIconStore, ReloadGUIPointer, selIdState } from "../../ts/stores.svelte";
- import { translateHTML } from "../../ts/translator/translator";
+ import { translateHTML, getLLMCache } from "../../ts/translator/translator";
import { risuChatParser } from "src/ts/process/scripts";
import { type Unsubscriber } from "svelte/store";
import { get, isEqual, startsWith } from "lodash";
@@ -140,7 +140,15 @@
translateText = false
try {
if(DBState.db.autoTranslate){
- translateText = true
+ if(DBState.db.autoTranslateCachedOnly && DBState.db.translatorType === "llm"){
+ const cache = await getLLMCache(data)
+ if(cache !== null){
+ translateText = true
+ }
+ }
+ else{
+ translateText = true
+ }
}
setTimeout(() => {
diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte
index 182afb6a..7f313af1 100644
--- a/src/lib/Setting/Pages/LanguageSettings.svelte
+++ b/src/lib/Setting/Pages/LanguageSettings.svelte
@@ -158,5 +158,11 @@