diff --git a/src/lang/en.ts b/src/lang/en.ts
index 69a97e52..57a20681 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -483,4 +483,5 @@ export const languageEnglish = {
template: "Template",
chatAsOriginalOnSystem: "Send as original role",
exportAsDataset: "Export Save as Dataset",
+ editTranslationDisplay: "Edit Translation Display",
}
\ No newline at end of file
diff --git a/src/lib/ChatScreens/Chat.svelte b/src/lib/ChatScreens/Chat.svelte
index 9d973bce..547294f7 100644
--- a/src/lib/ChatScreens/Chat.svelte
+++ b/src/lib/ChatScreens/Chat.svelte
@@ -92,7 +92,7 @@
if(translateText){
const marked = await ParseMarkdown(data, charArg, mode, chatID)
translating = true
- const translated = await translateHTML(marked, false)
+ const translated = await translateHTML(marked, false, charArg)
translating = false
lastParsed = translated
lastCharArg = charArg
diff --git a/src/lib/SideBars/Scripts/RegexData.svelte b/src/lib/SideBars/Scripts/RegexData.svelte
index a9ba689a..b70bf782 100644
--- a/src/lib/SideBars/Scripts/RegexData.svelte
+++ b/src/lib/SideBars/Scripts/RegexData.svelte
@@ -52,6 +52,7 @@
{language.editOutput}
{language.editProcess}
{language.editDisplay}
+ {language.editTranslationDisplay}
IN:
diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts
index 0304be8d..21b721c8 100644
--- a/src/ts/translator/translator.ts
+++ b/src/ts/translator/translator.ts
@@ -1,10 +1,12 @@
import { get } from "svelte/store"
import { translatorPlugin } from "../plugins/plugins"
-import { DataBase } from "../storage/database"
+import { DataBase, type customscript } from "../storage/database"
import { globalFetch } from "../storage/globalApi"
import { alertError } from "../alert"
import { requestChatData } from "../process/request"
import { doingChat } from "../process"
+import type { simpleCharacterArgument } from "../parser"
+import { selectedCharID } from "../stores"
let cache={
origin: [''],
@@ -171,7 +173,7 @@ export function isExpTranslator(){
return db.translatorType === 'llm' || db.translatorType === 'deepl'
}
-export async function translateHTML(html: string, reverse:boolean): Promise {
+export async function translateHTML(html: string, reverse:boolean, charArg:simpleCharacterArgument|string = ''): Promise {
let db = get(DataBase)
let DoingChat = get(doingChat)
if(DoingChat){
@@ -233,6 +235,28 @@ export async function translateHTML(html: string, reverse:boolean): Promise tags
translatedHTML = translatedHTML.replace(/^]*>|<\/body>$/g, '');
+ if(charArg !== ''){
+ let scripts:customscript[] = []
+ if(typeof(charArg) === 'string'){
+ const db = get(DataBase)
+ const charId = get(selectedCharID)
+ const char = db.characters[charId]
+ scripts = (db.globalscript ?? []).concat(char.customscript)
+ }
+ else{
+ scripts = (db.globalscript ?? []).concat(charArg.customscript)
+
+ }
+ for(const script of scripts){
+ if(script.type === 'edittrans'){
+ const reg = new RegExp(script.in, script.ableFlag ? script.flag : 'g')
+ let outScript = script.out.replaceAll("$n", "\n")
+ translatedHTML = translatedHTML.replace(reg, outScript)
+ }
+ }
+
+ }
+
// console.log(html)
// console.log(translatedHTML)
// Return the translated HTML, excluding the outer tags if needed