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 => {