fix(translate): fix translating state management (#9387)

* fix(translate): 修复翻译状态管理逻辑

调整翻译状态设置的位置,确保在翻译开始和结束时正确更新状态

* fix(translate): 添加缺失的setTranslating属性

* fix(translate): 去除检测语言结果中的空格

检测语言返回的结果可能包含多余空格,导致后续处理出现问题。通过trim()去除前后空格确保结果干净
This commit is contained in:
Phantom 2025-08-21 16:48:22 +08:00 committed by kangfenmao
parent ea797ac88a
commit 8e82f54c2b
2 changed files with 6 additions and 5 deletions

View File

@ -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,

View File

@ -41,7 +41,7 @@ export const detectLanguage = async (inputText: string): Promise<TranslateLangua
throw new Error('Invalid detection method.')
}
logger.info(`Detected Language: ${result}`)
return result
return result.trim()
}
const detectLanguageByLLM = async (inputText: string): Promise<TranslateLanguageCode> => {