Add ExperimentalGoogleTranslator

This commit is contained in:
Kwaroran
2025-02-20 04:06:35 +09:00
parent 0a2e4fd04c
commit 94e23543dd
3 changed files with 34 additions and 1 deletions

View File

@@ -200,6 +200,13 @@
<Check bind:check={DBState.db.returnCSSError} name={language.returnCSSError}>
</Check>
</div>
{#if DBState.db.useExperimental}
<div class="flex items-center mt-4">
<Check bind:check={DBState.db.useExperimentalGoogleTranslator} name={"New Google Translate Experimental"}>
<Help key="unrecommended" unrecommended/>
</Check>
</div>
{/if}
{#if DBState.db?.account?.useSync}
<div class="flex items-center mt-4">
<Check bind:check={DBState.db.lightningRealmImport} name={"Lightning Realm Import"}>

View File

@@ -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{

View File

@@ -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)