Add ExperimentalGoogleTranslator
This commit is contained in:
@@ -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"}>
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user