From 900b11bdf7597a0d46fe909ed989947740b82f6d Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Wed, 22 Jan 2025 14:37:15 +0800 Subject: [PATCH] feat: enhance translation functionality in MessageMenubar - Updated translateText function to accept an optional callback for handling translated text directly within the function. - Refactored MessageMenubar to utilize the new callback mechanism, improving the flow of translated content handling. - Enhanced error handling during translation to ensure better user feedback in case of failures. --- src/renderer/src/pages/home/Messages/MessageMenubar.tsx | 5 +++-- src/renderer/src/services/TranslateService.ts | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx index 820adfd4..e4260ceb 100644 --- a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx +++ b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx @@ -126,8 +126,9 @@ const MessageMenubar: FC = (props) => { setIsTranslating(true) try { - const translatedText = await translateText(message.content, language) - onEditMessage?.({ ...message, translatedContent: translatedText }) + await translateText(message.content, language, (text) => + onEditMessage?.({ ...message, translatedContent: text }) + ) } catch (error) { console.error('Translation failed:', error) window.message.error({ diff --git a/src/renderer/src/services/TranslateService.ts b/src/renderer/src/services/TranslateService.ts index bda31b68..2d6a2c4d 100644 --- a/src/renderer/src/services/TranslateService.ts +++ b/src/renderer/src/services/TranslateService.ts @@ -6,7 +6,7 @@ import { getDefaultTopic } from './AssistantService' import { getDefaultTranslateAssistant } from './AssistantService' import { getUserMessage } from './MessagesService' -export const translateText = async (text: string, targetLanguage: string) => { +export const translateText = async (text: string, targetLanguage: string, onResponse?: (text: string) => void) => { const translateModel = store.getState().llm.translateModel if (!translateModel) { @@ -25,7 +25,7 @@ export const translateText = async (text: string, targetLanguage: string) => { content: text }) - const translatedText = await fetchTranslate({ message, assistant }) + const translatedText = await fetchTranslate({ message, assistant, onResponse }) const trimmedText = translatedText.trim()