improve translation
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { ArrowLeft, ArrowRight, PencilIcon, LanguagesIcon, RefreshCcwIcon, TrashIcon, CopyIcon, Volume2Icon, BotIcon, ArrowLeftRightIcon, UserIcon } from "lucide-svelte";
|
||||
import { ParseMarkdown, type simpleCharacterArgument } from "../../ts/parser";
|
||||
import { ParseMarkdown, postTranslationParse, type simpleCharacterArgument } from "../../ts/parser";
|
||||
import AutoresizeArea from "../UI/GUI/TextAreaResizable.svelte";
|
||||
import { alertConfirm, alertError, alertRequestData } from "../../ts/alert";
|
||||
import { language } from "../../lang";
|
||||
@@ -102,13 +102,25 @@
|
||||
} catch (error) {}
|
||||
}
|
||||
if(translateText){
|
||||
const marked = await ParseMarkdown(data, charArg, mode, chatID)
|
||||
translating = true
|
||||
const translated = await translateHTML(marked, false, charArg, chatID)
|
||||
translating = false
|
||||
lastParsed = translated
|
||||
lastCharArg = charArg
|
||||
return translated
|
||||
if(!$DataBase.legacyTranslation){
|
||||
const marked = await ParseMarkdown(data, charArg, 'pretranslate', chatID)
|
||||
translating = true
|
||||
console.log(marked)
|
||||
const translated = postTranslationParse(await translateHTML(marked, false, charArg, chatID))
|
||||
translating = false
|
||||
lastParsed = translated
|
||||
lastCharArg = charArg
|
||||
return translated
|
||||
}
|
||||
else{
|
||||
const marked = await ParseMarkdown(data, charArg, mode, chatID)
|
||||
translating = true
|
||||
const translated = await translateHTML(marked, false, charArg, chatID)
|
||||
translating = false
|
||||
lastParsed = translated
|
||||
lastCharArg = charArg
|
||||
return translated
|
||||
}
|
||||
}
|
||||
else{
|
||||
const marked = await ParseMarkdown(data, charArg, mode, chatID)
|
||||
|
||||
@@ -117,6 +117,9 @@
|
||||
<Help key="removePunctuationHypa"/>
|
||||
</Check>
|
||||
</div>
|
||||
<div class="flex items-center mt-4">
|
||||
<Check bind:check={$DataBase.legacyTranslation} name="Legacy Translator" />
|
||||
</div>
|
||||
<div class="flex items-center mt-4">
|
||||
<Check bind:check={$DataBase.dynamicAssets} name={language.dynamicAssets}>
|
||||
<Help key="dynamicAssets"/>
|
||||
|
||||
@@ -169,25 +169,24 @@ export interface simpleCharacterArgument{
|
||||
}
|
||||
|
||||
|
||||
export async function ParseMarkdown(data:string, charArg:(character|simpleCharacterArgument | groupChat | string) = null, mode:'normal'|'back' = 'normal', chatID=-1) {
|
||||
export async function ParseMarkdown(data:string, charArg:(character|simpleCharacterArgument | groupChat | string) = null, mode:'normal'|'back'|'pretranslate' = 'normal', chatID=-1) {
|
||||
let firstParsed = ''
|
||||
const orgDat = data
|
||||
const db = get(DataBase)
|
||||
const additionalAssetMode = (mode === 'back') ? 'back' : 'normal'
|
||||
let char = (typeof(charArg) === 'string') ? (findCharacterbyId(charArg)) : (charArg)
|
||||
if(char && char.type !== 'group'){
|
||||
data = await parseAdditionalAssets(data, char, mode, 'pre')
|
||||
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'pre')
|
||||
firstParsed = data
|
||||
}
|
||||
if(char){
|
||||
data = (await processScriptFull(char, data, 'editdisplay', chatID)).data
|
||||
}
|
||||
if(firstParsed !== data && char && char.type !== 'group'){
|
||||
data = await parseAdditionalAssets(data, char, mode, 'post')
|
||||
data = await parseAdditionalAssets(data, char, additionalAssetMode, 'post')
|
||||
}
|
||||
data = await parseInlayImages(data)
|
||||
|
||||
data = encodeStyle(data)
|
||||
if(mode !== 'back'){
|
||||
if(mode === 'normal'){
|
||||
data = risuFormater(data)
|
||||
data = mconverted.parse(data)
|
||||
}
|
||||
@@ -197,6 +196,20 @@ export async function ParseMarkdown(data:string, charArg:(character|simpleCharac
|
||||
}))
|
||||
}
|
||||
|
||||
export function postTranslationParse(data:string){
|
||||
let lines = risuFormater(data).split('\n')
|
||||
|
||||
for(let i=0;i<lines.length;i++){
|
||||
const trimed = lines[i].trim()
|
||||
if(trimed.startsWith('<')){
|
||||
lines[i] = trimed
|
||||
}
|
||||
}
|
||||
|
||||
data = mconverted.parse(lines.join('\n'))
|
||||
return data
|
||||
}
|
||||
|
||||
export function parseMarkdownSafe(data:string) {
|
||||
return DOMPurify.sanitize(mconverted.parse(data), {
|
||||
FORBID_TAGS: ["a", "style"],
|
||||
|
||||
@@ -418,6 +418,7 @@ export function setDatabase(data:Database){
|
||||
data.lineHeight ??= 1.25
|
||||
data.stabilityModel ??= 'sd3-large'
|
||||
data.stabllityStyle ??= ''
|
||||
data.legacyTranslation ??= false
|
||||
changeLanguage(data.language)
|
||||
DataBase.set(data)
|
||||
}
|
||||
@@ -691,6 +692,7 @@ export interface Database{
|
||||
stabilityModel: string
|
||||
stabilityKey: string
|
||||
stabllityStyle: string
|
||||
legacyTranslation: boolean
|
||||
}
|
||||
|
||||
export interface customscript{
|
||||
|
||||
Reference in New Issue
Block a user