diff --git a/src/lang/cn.ts b/src/lang/cn.ts
index 86a62b8c..e13df4a8 100644
--- a/src/lang/cn.ts
+++ b/src/lang/cn.ts
@@ -303,4 +303,6 @@ export const languageChinese = {
tags: "标签",
copied: "已复制",
useChatCopy: "使用聊天复制",
+ autoTranslateInput: "使用自动翻译输入",
+ enterMessageForTranslateToEnglish: "输入要翻译为英语的消息",
}
\ No newline at end of file
diff --git a/src/lang/en.ts b/src/lang/en.ts
index ecd47d60..dbf8d866 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -307,4 +307,6 @@ export const languageEnglish = {
backgroundHTML: "Background Embedding",
copied: "Copied",
useChatCopy: "Use Chat Message Copy",
+ autoTranslateInput: "Auto Translate Input",
+ enterMessageForTranslateToEnglish: "Enter Message for Translate to English",
}
\ No newline at end of file
diff --git a/src/lang/ko.ts b/src/lang/ko.ts
index c8a0a245..dd6aa543 100644
--- a/src/lang/ko.ts
+++ b/src/lang/ko.ts
@@ -279,4 +279,6 @@ export const languageKorean = {
backgroundHTML: "백그라운드 임베딩",
copied: "복사됨",
useChatCopy: "채팅 메시지 복사 사용",
+ autoTranslateInput: "입력 자동 번역",
+ enterMessageForTranslateToEnglish: "영어로 번역할 메시지를 입력해주세요",
}
\ No newline at end of file
diff --git a/src/lib/ChatScreens/DefaultChatScreen.svelte b/src/lib/ChatScreens/DefaultChatScreen.svelte
index 8b3da038..403f7ba8 100644
--- a/src/lib/ChatScreens/DefaultChatScreen.svelte
+++ b/src/lib/ChatScreens/DefaultChatScreen.svelte
@@ -16,8 +16,10 @@
import CreatorQuote from "./CreatorQuote.svelte";
import { stopTTS } from "src/ts/process/tts";
import MainMenu from '../UI/MainMenu.svelte';
+ import Help from '../Others/Help.svelte';
- let messageInput = ''
+ let messageInput:string = ''
+ let messageInputTranslate:string = ''
let openMenu = false
export let openChatList = false
let loadPages = 30
@@ -26,6 +28,7 @@
let rerollid = -1
let lastCharId = -1
let doingChatInputTranslate = false
+
async function send() {
let selectedChar = $selectedCharID
console.log('send')
@@ -67,10 +70,11 @@
}
}
messageInput = ''
+ messageInputTranslate = ''
$DataBase.characters[selectedChar].chats[$DataBase.characters[selectedChar].chatPage].message = cha
rerolls = []
await sleep(10)
- updateInputSize()
+ updateInputSizeAll()
await sendChatMain()
}
@@ -170,7 +174,21 @@
export let customStyle = ''
let inputHeight = "44px"
let inputEle:HTMLTextAreaElement
+ let inputTranslateHeight = "44px"
+ let inputTranslateEle:HTMLTextAreaElement
+ function updateInputSizeAll() {
+ updateInputSize()
+ updateInputTranslateSize()
+ }
+
+ function updateInputTranslateSize() {
+ if(inputTranslateEle) {
+ inputTranslateEle.style.height = "0";
+ inputTranslateHeight = (inputTranslateEle.scrollHeight) + "px";
+ inputTranslateEle.style.height = inputTranslateHeight
+ }
+ }
function updateInputSize() {
if(inputEle){
inputEle.style.height = "0";
@@ -179,7 +197,26 @@
}
}
- $: updateInputSize()
+ $: updateInputSizeAll()
+
+ function updateInputTransateMessage(reverse: boolean) {
+ if(reverse && messageInputTranslate === '') {
+ messageInput = ''
+ return
+ }
+ if(!reverse && messageInput === '') {
+ messageInputTranslate = ''
+ return
+ }
+ translate(reverse ? messageInputTranslate : messageInput, reverse).then((translatedMessage) => {
+ if(translatedMessage){
+ if(reverse)
+ messageInput = translatedMessage
+ else
+ messageInputTranslate = translatedMessage
+ }
+ })
+ }
{
@@ -211,7 +248,7 @@
e.preventDefault()
}
}}
- on:input={updateInputSize}
+ on:input={()=>{updateInputSizeAll();updateInputTransateMessage(false)}}
style:height={inputHeight}
/>
@@ -234,6 +271,33 @@
class="mr-2 bg-gray-500 flex justify-center items-center text-white w-12 h-12 rounded-md hover:bg-green-500 transition-colors">
+ {#if $DataBase.useAutoTranslateInput && $DataBase.useExperimental}
+
+
+
+ {/if}
+
{#if $DataBase.useAutoSuggestions}
messageInput=msg} {send}/>
{/if}
@@ -362,7 +426,18 @@
{language.translateInput}
+ {#if $DataBase.useExperimental}
+ {
+ $DataBase.useAutoTranslateInput = !$DataBase.useAutoTranslateInput
+ }}>
+
+ {language.autoTranslateInput}
+
+
+ {/if}
+
{/if}
+
{
$DataBase.useAutoSuggestions = !$DataBase.useAutoSuggestions
}}>
diff --git a/src/lib/ChatScreens/Suggestion.svelte b/src/lib/ChatScreens/Suggestion.svelte
index 9ae4309f..2cd0c447 100644
--- a/src/lib/ChatScreens/Suggestion.svelte
+++ b/src/lib/ChatScreens/Suggestion.svelte
@@ -11,6 +11,7 @@
import { onDestroy } from 'svelte';
import { processScript } from "src/ts/process/scripts";
import { get } from "svelte/store";
+ import { ParseMarkdown } from "src/ts/parser";
export let send: () => any;
export let messageInput:(string:string) => any;
@@ -68,10 +69,9 @@
role:'system',
content: replacePlaceholders($DataBase.autoSuggestPrompt, currentChar.name)
}
- ,
- {
+ ,{
role: 'user',
- content: lastMessages.map(b=>(b.role==='char'? 'assistant' : 'user')+":"+b.data).reduce((a,b)=>a+','+b)
+ content: lastMessages.map(b=>(b.role==='char'? currentChar.name : $DataBase.username)+":"+b.data).reduce((a,b)=>a+','+b)
}
]
@@ -118,16 +118,18 @@
{language.creatingSuggestions}
{:else if !$doingChat}
-
-
-
+ {#if $DataBase.translator !== ''}
+
+
+
+ {/if}
+
+ {#if $DataBase.useExperimental}
+
+
+ {language.autoTranslateInput}
+
+
+ {/if}
{/if}
\ No newline at end of file
diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts
index b55e788a..a5913fa4 100644
--- a/src/ts/storage/database.ts
+++ b/src/ts/storage/database.ts
@@ -502,8 +502,9 @@ export interface Database{
useAutoSuggestions:boolean
autoSuggestPrompt:string,
claudeAPIKey:string,
- novellistAPI:string
useChatCopy:boolean,
+ novellistAPI:string,
+ useAutoTranslateInput:boolean
}
interface hordeConfig{