From 8e82f54c2b641da67402a44b3be07c59786f55a6 Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Thu, 21 Aug 2025 16:48:22 +0800 Subject: [PATCH] fix(translate): fix translating state management (#9387) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(translate): 修复翻译状态管理逻辑 调整翻译状态设置的位置,确保在翻译开始和结束时正确更新状态 * fix(translate): 添加缺失的setTranslating属性 * fix(translate): 去除检测语言结果中的空格 检测语言返回的结果可能包含多余空格,导致后续处理出现问题。通过trim()去除前后空格确保结果干净 --- src/renderer/src/pages/translate/TranslatePage.tsx | 9 +++++---- src/renderer/src/utils/translate.ts | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index 923aedaa22..f426616a5d 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -122,8 +122,6 @@ const TranslatePage: FC = () => { return } - setTranslating(true) - let translated: string try { translated = await translateText(text, actualTargetLanguage, throttle(setTranslatedContent, 100)) @@ -145,8 +143,6 @@ const TranslatePage: FC = () => { } catch (e) { logger.error('Failed to translate', e as Error) window.message.error(t('translate.error.unknown') + ': ' + (e as Error).message) - } finally { - setTranslating(false) } }, [setTranslatedContent, setTranslating, t, translating] @@ -163,6 +159,8 @@ const TranslatePage: FC = () => { return } + setTranslating(true) + try { // 确定源语言:如果用户选择了特定语言,使用用户选择的;如果选择'auto',则自动检测 let actualSourceLanguage: TranslateLanguage @@ -202,11 +200,14 @@ const TranslatePage: FC = () => { key: 'translate-message' }) return + } finally { + setTranslating(false) } }, [ bidirectionalPair, getLanguageByLangcode, isBidirectional, + setTranslating, sourceLanguage, t, targetLanguage, diff --git a/src/renderer/src/utils/translate.ts b/src/renderer/src/utils/translate.ts index 9d6f665ea6..28530c9d76 100644 --- a/src/renderer/src/utils/translate.ts +++ b/src/renderer/src/utils/translate.ts @@ -41,7 +41,7 @@ export const detectLanguage = async (inputText: string): Promise => {