From d9b8e68c300aaf2fca605424144a685f67555ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E7=94=B1=E7=9A=84=E4=B8=96=E7=95=8C=E4=BA=BA?= <3196812536@qq.com> Date: Sun, 22 Jun 2025 12:28:31 +0800 Subject: [PATCH] fix: update source language handling and persist user selection in TranslatePage component (#7243) --- .../src/pages/translate/TranslatePage.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index 1d8edd93d0..11db557bf9 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -229,7 +229,7 @@ const TranslatePage: FC = () => { const [bidirectionalPair, setBidirectionalPair] = useState<[string, string]>(['english', 'chinese']) const [settingsVisible, setSettingsVisible] = useState(false) const [detectedLanguage, setDetectedLanguage] = useState(null) - const [sourceLanguage, setSourceLanguage] = useState('auto') // 添加用户选择的源语言状态 + const [sourceLanguage, setSourceLanguage] = useState('auto') const contentContainerRef = useRef(null) const textAreaRef = useRef(null) const outputTextRef = useRef(null) @@ -307,8 +307,7 @@ const TranslatePage: FC = () => { let actualSourceLanguage: string if (sourceLanguage === 'auto') { actualSourceLanguage = await detectLanguage(text) - console.log('检测到的语言:', actualSourceLanguage) - setDetectedLanguage(actualSourceLanguage) // 更新检测到的语言 + setDetectedLanguage(actualSourceLanguage) } else { actualSourceLanguage = sourceLanguage } @@ -385,6 +384,9 @@ const TranslatePage: FC = () => { const targetLang = await db.settings.get({ id: 'translate:target:language' }) targetLang && setTargetLanguage(targetLang.value) + const sourceLang = await db.settings.get({ id: 'translate:source:language' }) + sourceLang && setSourceLanguage(sourceLang.value) + const bidirectionalPairSetting = await db.settings.get({ id: 'translate:bidirectional:pair' }) if (bidirectionalPairSetting) { const langPair = bidirectionalPairSetting.value @@ -526,12 +528,15 @@ const TranslatePage: FC = () => { value={sourceLanguage} style={{ width: 180 }} optionFilterProp="label" - onChange={(value) => setSourceLanguage(value)} + onChange={(value) => { + setSourceLanguage(value) + db.settings.put({ id: 'translate:source:language', value }) + }} options={[ { value: 'auto', label: detectedLanguage - ? `${t('translate.detected.language')}(${t(`languages.${detectedLanguage.toLowerCase()}`)})` + ? `${t('translate.detected.language')} (${t(`languages.${detectedLanguage.toLowerCase()}`)})` : t('translate.detected.language') }, ...translateLanguageOptions().map((lang) => ({