Add ExperimentalGoogleTranslator
This commit is contained in:
@@ -200,6 +200,13 @@
|
|||||||
<Check bind:check={DBState.db.returnCSSError} name={language.returnCSSError}>
|
<Check bind:check={DBState.db.returnCSSError} name={language.returnCSSError}>
|
||||||
</Check>
|
</Check>
|
||||||
</div>
|
</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}
|
{#if DBState.db?.account?.useSync}
|
||||||
<div class="flex items-center mt-4">
|
<div class="flex items-center mt-4">
|
||||||
<Check bind:check={DBState.db.lightningRealmImport} name={"Lightning Realm Import"}>
|
<Check bind:check={DBState.db.lightningRealmImport} name={"Lightning Realm Import"}>
|
||||||
|
|||||||
@@ -484,6 +484,7 @@ export function setDatabase(data:Database){
|
|||||||
doNotSummarizeUserMessage: data.hypaV3Settings?.doNotSummarizeUserMessage ?? false
|
doNotSummarizeUserMessage: data.hypaV3Settings?.doNotSummarizeUserMessage ?? false
|
||||||
}
|
}
|
||||||
data.returnCSSError ??= true
|
data.returnCSSError ??= true
|
||||||
|
data.useExperimentalGoogleTranslator ??= false
|
||||||
changeLanguage(data.language)
|
changeLanguage(data.language)
|
||||||
setDatabaseLite(data)
|
setDatabaseLite(data)
|
||||||
}
|
}
|
||||||
@@ -905,6 +906,7 @@ export interface Database{
|
|||||||
showTranslationLoading: boolean
|
showTranslationLoading: boolean
|
||||||
showDeprecatedTriggerV1:boolean
|
showDeprecatedTriggerV1:boolean
|
||||||
returnCSSError:boolean
|
returnCSSError:boolean
|
||||||
|
useExperimentalGoogleTranslator:boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
interface SeparateParameters{
|
interface SeparateParameters{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { get } from "svelte/store"
|
import { get } from "svelte/store"
|
||||||
import { translatorPlugin } from "../plugins/plugins"
|
import { translatorPlugin } from "../plugins/plugins"
|
||||||
import { getDatabase, type character, type customscript, type groupChat } from "../storage/database.svelte"
|
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 { alertError } from "../alert"
|
||||||
import { requestChatData } from "../process/request"
|
import { requestChatData } from "../process/request"
|
||||||
import { doingChat, type OpenAIChat } from "../process/index.svelte"
|
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;
|
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)
|
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