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