diff --git a/src/lang/cn.ts b/src/lang/cn.ts
index f018dd42..f0e237a7 100644
--- a/src/lang/cn.ts
+++ b/src/lang/cn.ts
@@ -391,6 +391,8 @@ export const languageChinese = {
"translatorType": "翻译类型",
"deeplKey": "deepl API密钥",
"deeplFreeKey": "deepl 免费 API密钥",
+ "deeplXUrl": "deepLX URL",
+ "deeplXToken": "deepLX Token",
"exportPersona": "导出角色",
"importPersona": "导入角色",
"export": "导出",
diff --git a/src/lang/de.ts b/src/lang/de.ts
index ffab1c6e..080b8e15 100644
--- a/src/lang/de.ts
+++ b/src/lang/de.ts
@@ -421,6 +421,8 @@ export const languageGerman = {
translatorType: "Übersetzer-Typ",
deeplKey: "DeepL API-Schlüssel",
deeplFreeKey: "DeepL Gratis API-Schlüssel",
+ deeplXUrl: "deepLX URL",
+ deeplXToken: "deepLX Token",
exportPersona: "Profil exportieren",
importPersona: "Profil importieren",
export: "Exportieren",
diff --git a/src/lang/en.ts b/src/lang/en.ts
index 76b07569..523b7c15 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -456,6 +456,8 @@ export const languageEnglish = {
translatorType: "Translator Type",
deeplKey: "deepL API Key",
deeplFreeKey: "deepL Free API Key",
+ deeplXUrl: "deepLX URL",
+ deeplXToken: "deepLX Token",
exportPersona: "Export Persona",
importPersona: "Import Persona",
export: "Export",
diff --git a/src/lang/ko.ts b/src/lang/ko.ts
index b3219bfb..c5bbf533 100644
--- a/src/lang/ko.ts
+++ b/src/lang/ko.ts
@@ -394,6 +394,8 @@ export const languageKorean = {
translatorType: "번역기 타입",
deeplKey: "deepL API 키",
deeplFreeKey: "deepL 무료 API 키",
+ deeplXUrl: "deepLX URL",
+ deeplXToken: "deepLX Token",
exportPersona: "페르소나 엑스포트",
importPersona: "페르소나 임포트",
export: "엑스포트",
diff --git a/src/lang/vi.ts b/src/lang/vi.ts
index c5446148..44fdf8b2 100644
--- a/src/lang/vi.ts
+++ b/src/lang/vi.ts
@@ -392,6 +392,8 @@ export const LanguageVietnamese = {
"translatorType": "Loại dịch giả",
"deeplKey": "Khóa API deepL",
"deeplFreeKey": "Khóa API miễn phí deepL",
+ "deeplXUrl": "deepLX URL",
+ "deeplXToken": "deepLX Token",
"exportPersona": "Xuất khẩu nhân vật",
"importPersona": "Nhập khẩu nhân vật",
"export": "Xuất khẩu",
diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte
index c123ed2b..04218c39 100644
--- a/src/lib/Setting/Pages/LanguageSettings.svelte
+++ b/src/lib/Setting/Pages/LanguageSettings.svelte
@@ -58,6 +58,7 @@
Google
DeepL
Ax. Model
+ DeepL X
{#if $DataBase.translatorType === 'deepl'}
@@ -71,6 +72,14 @@
{/if}
+
+ {#if $DataBase.translatorType === 'deeplX'}
+ {language.deeplXUrl}
+
+
+ {language.deeplXToken}
+
+ {/if}
{#if $DataBase.translatorType === 'llm'}
{language.translationPrompt}
diff --git a/src/ts/process/tts.ts b/src/ts/process/tts.ts
index 1d368db9..db3e32c2 100644
--- a/src/ts/process/tts.ts
+++ b/src/ts/process/tts.ts
@@ -56,7 +56,8 @@ export async function sayTTS(character:character,text:string) {
const audioContext = new AudioContext();
const da = await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${character.ttsSpeech}`, {
body: JSON.stringify({
- text: text
+ text: text,
+ model_id: "eleven_multilingual_v2"
}),
method: "POST",
headers: {
diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts
index 87ef9256..c578cc26 100644
--- a/src/ts/storage/database.ts
+++ b/src/ts/storage/database.ts
@@ -332,6 +332,10 @@ export function setDatabase(data:Database){
key:'',
freeApi: false
}
+ data.deeplXOptions ??= {
+ url:'',
+ token:''
+ }
data.NAIadventure ??= false
data.NAIappendName ??= true
data.NAIsettings.cfg_scale ??= 1
@@ -555,13 +559,17 @@ export interface Database{
mancerHeader:string
emotionProcesser:'submodel'|'embedding',
showMenuChatList?:boolean,
- translatorType:'google'|'deepl'|'none'|'llm',
+ translatorType:'google'|'deepl'|'none'|'llm'|'deeplX',
NAIadventure?:boolean,
NAIappendName?:boolean,
deeplOptions:{
key:string,
freeApi:boolean
}
+ deeplXOptions:{
+ url:string,
+ token:string
+ }
localStopStrings?:string[]
autofillRequestUrl:boolean
customProxyRequestModel:string
diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts
index 08ef0e03..576790f6 100644
--- a/src/ts/translator/translator.ts
+++ b/src/ts/translator/translator.ts
@@ -127,6 +127,29 @@ async function translateMain(text:string, arg:{from:string, to:string, host:stri
return f.data.translations[0].text
}
+ if(db.translatorType === 'deeplX'){
+ const body = {
+ text: [text],
+ target_lang: arg.to.toLocaleUpperCase(),
+ source_lang: arg.from.toLocaleUpperCase()
+ }
+ let url = db.deeplXOptions.url
+ const f = await globalFetch(url, {
+ headers: {
+ "Content-Type": "application/json",
+ "Authorization" : "Bearer " + db.deeplXOptions.token
+ },
+ body: body
+ })
+
+ if(!f.ok){
+ return 'ERR::DeepLX API Error' + (await f.data)
+ }
+ return f.data.translations[0].text
+
+ }
+
+
const url = `https://${arg.host}/translate_a/single?client=gtx&dt=t&sl=${arg.from}&tl=${arg.to}&q=` + encodeURIComponent(text)
@@ -171,7 +194,7 @@ async function jaTrans(text:string) {
export function isExpTranslator(){
const db = get(DataBase)
- return db.translatorType === 'llm' || db.translatorType === 'deepl'
+ return db.translatorType === 'llm' || db.translatorType === 'deepl' || db.translatorType === 'deeplX'
}
export async function translateHTML(html: string, reverse:boolean, charArg:simpleCharacterArgument|string = ''): Promise {