From 94e23543dd12d8934a2f0ff712917cb78021e531 Mon Sep 17 00:00:00 2001 From: Kwaroran Date: Thu, 20 Feb 2025 04:06:35 +0900 Subject: [PATCH] Add ExperimentalGoogleTranslator --- src/lib/Setting/Pages/AdvancedSettings.svelte | 7 +++++ src/ts/storage/database.svelte.ts | 2 ++ src/ts/translator/translator.ts | 26 ++++++++++++++++++- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/lib/Setting/Pages/AdvancedSettings.svelte b/src/lib/Setting/Pages/AdvancedSettings.svelte index 8ffd75ce..77d6e87e 100644 --- a/src/lib/Setting/Pages/AdvancedSettings.svelte +++ b/src/lib/Setting/Pages/AdvancedSettings.svelte @@ -200,6 +200,13 @@ +{#if DBState.db.useExperimental} +
+ + + +
+{/if} {#if DBState.db?.account?.useSync}
diff --git a/src/ts/storage/database.svelte.ts b/src/ts/storage/database.svelte.ts index 51bf4572..3983fd2e 100644 --- a/src/ts/storage/database.svelte.ts +++ b/src/ts/storage/database.svelte.ts @@ -484,6 +484,7 @@ export function setDatabase(data:Database){ doNotSummarizeUserMessage: data.hypaV3Settings?.doNotSummarizeUserMessage ?? false } data.returnCSSError ??= true + data.useExperimentalGoogleTranslator ??= false changeLanguage(data.language) setDatabaseLite(data) } @@ -905,6 +906,7 @@ export interface Database{ showTranslationLoading: boolean showDeprecatedTriggerV1:boolean returnCSSError:boolean + useExperimentalGoogleTranslator:boolean } interface SeparateParameters{ diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index 1194ac4b..aa2fb037 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -1,7 +1,7 @@ import { get } from "svelte/store" import { translatorPlugin } from "../plugins/plugins" import { getDatabase, type character, type customscript, type groupChat } from "../storage/database.svelte" -import { globalFetch, isTauri } from "../globalApi.svelte" +import { globalFetch, isNodeServer, isTauri } from "../globalApi.svelte" import { alertError } from "../alert" import { requestChatData } from "../process/request" import { doingChat, type OpenAIChat } from "../process/index.svelte" @@ -163,6 +163,30 @@ async function translateMain(text:string, arg:{from:string, to:string, host:stri return f.data.data; } + if(db.useExperimentalGoogleTranslator){ + + const hqAvailable = isTauri || isNodeServer || userScriptFetch + + if(hqAvailable){ + try { + const ua = navigator.userAgent + const d = await globalFetch(`https://translate.google.com/m?tl=${arg.to}&sl=${arg.from}&q=${encodeURIComponent(text)}`, { + headers: { + "User-Agent": ua, + "Accept": "*/*", + } + }) + const parser = new DOMParser() + const dom = parser.parseFromString(d.data, 'text/html') + const result = dom.querySelector('.result-container')?.textContent?.trim() + if(result){ + return result + } + } catch (error) { + + } + } + } const url = `https://${arg.host}/translate_a/single?client=gtx&dt=t&sl=${db.translatorInputLanguage}&tl=${arg.to}&q=` + encodeURIComponent(text)