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)