mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-27 04:31:27 +08:00
fix(Translate): update settings into db (#9305)
* fix(翻译): 修复设置没有储存到db的错误 * fix(translate): 修复自动检测方法设置更新失败的问题 添加错误处理逻辑,当更新自动检测方法设置失败时显示错误信息
This commit is contained in:
parent
25531ecd76
commit
11b130736c
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "QwenMT model cannot be used for language detection",
|
||||
"unknown": "Unknown language detected"
|
||||
"unknown": "Unknown language detected",
|
||||
"update_setting": "Setting failed"
|
||||
},
|
||||
"empty": "The translation result is empty content",
|
||||
"failed": "Translation failed",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "QwenMTモデルは言語検出に使用できません",
|
||||
"unknown": "検出された言語は不明です"
|
||||
"unknown": "検出された言語は不明です",
|
||||
"update_setting": "設定に失敗しました"
|
||||
},
|
||||
"empty": "翻訳結果が空の内容です",
|
||||
"failed": "翻訳に失敗しました",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "Модель QwenMT не может использоваться для определения языка",
|
||||
"unknown": "Обнаружен неизвестный язык"
|
||||
"unknown": "Обнаружен неизвестный язык",
|
||||
"update_setting": "Настройка не удалась"
|
||||
},
|
||||
"empty": "Результат перевода пуст",
|
||||
"failed": "Перевод не удалось",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "QwenMT模型不能用于语言检测",
|
||||
"unknown": "检测到未知语言"
|
||||
"unknown": "检测到未知语言",
|
||||
"update_setting": "设置失败"
|
||||
},
|
||||
"empty": "翻译结果为空内容",
|
||||
"failed": "翻译失败",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "QwenMT模型不能用於語言檢測",
|
||||
"unknown": "檢測到未知語言"
|
||||
"unknown": "檢測到未知語言",
|
||||
"update_setting": "設定失敗"
|
||||
},
|
||||
"empty": "翻译结果为空内容",
|
||||
"failed": "翻譯失敗",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "Το μοντέλο QwenMT δεν μπορεί να χρησιμοποιηθεί για εντοπισμό γλώσσας",
|
||||
"unknown": "Ανιχνεύθηκε άγνωστη γλώσσα"
|
||||
"unknown": "Ανιχνεύθηκε άγνωστη γλώσσα",
|
||||
"update_setting": "Η ρύθμιση απέτυχε"
|
||||
},
|
||||
"empty": "το αποτέλεσμα της μετάφρασης είναι κενό περιεχόμενο",
|
||||
"failed": "Η μετάφραση απέτυχε",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "El modelo QwenMT no se puede utilizar para la detección de idiomas",
|
||||
"unknown": "Se detectó un idioma desconocido"
|
||||
"unknown": "Se detectó un idioma desconocido",
|
||||
"update_setting": "Configuración fallida"
|
||||
},
|
||||
"empty": "El resultado de la traducción está vacío",
|
||||
"failed": "Fallo en la traducción",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "Le modèle QwenMT ne peut pas être utilisé pour la détection de langues",
|
||||
"unknown": "Langue inconnue détectée"
|
||||
"unknown": "Langue inconnue détectée",
|
||||
"update_setting": "Échec du paramétrage"
|
||||
},
|
||||
"empty": "Le résultat de la traduction est un contenu vide",
|
||||
"failed": "échec de la traduction",
|
||||
|
||||
@ -3702,7 +3702,8 @@
|
||||
"error": {
|
||||
"detect": {
|
||||
"qwen_mt": "O modelo QwenMT não pode ser usado para detecção de idioma",
|
||||
"unknown": "Idioma desconhecido detectado"
|
||||
"unknown": "Idioma desconhecido detectado",
|
||||
"update_setting": "Falha na configuração"
|
||||
},
|
||||
"empty": "Resultado da tradução está vazio",
|
||||
"failed": "Tradução falhou",
|
||||
|
||||
@ -18,6 +18,7 @@ import { setTranslating as setTranslatingAction } from '@renderer/store/runtime'
|
||||
import { setTranslatedContent as setTranslatedContentAction } from '@renderer/store/translate'
|
||||
import type { AutoDetectionMethod, Model, TranslateHistory, TranslateLanguage } from '@renderer/types'
|
||||
import { runAsyncFunction } from '@renderer/utils'
|
||||
import { formatErrorMessage } from '@renderer/utils/error'
|
||||
import {
|
||||
createInputScrollHandler,
|
||||
createOutputScrollHandler,
|
||||
@ -346,6 +347,17 @@ const TranslatePage: FC = () => {
|
||||
})
|
||||
}, [getLanguageByLangcode])
|
||||
|
||||
// 控制设置同步
|
||||
const updateAutoDetectionMethod = async (method: AutoDetectionMethod) => {
|
||||
try {
|
||||
await db.settings.put({ id: 'translate:detect:method', value: method })
|
||||
setAutoDetectionMethod(method)
|
||||
} catch (e) {
|
||||
logger.error('Failed to update auto detection method setting.', e as Error)
|
||||
window.message.error(t('translate.error.detect.update_setting') + formatErrorMessage(e))
|
||||
}
|
||||
}
|
||||
|
||||
// 控制Enter触发翻译
|
||||
const onKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||||
const isEnterPressed = e.key === 'Enter'
|
||||
@ -530,7 +542,7 @@ const TranslatePage: FC = () => {
|
||||
setBidirectionalPair={setBidirectionalPair}
|
||||
translateModel={translateModel}
|
||||
autoDetectionMethod={autoDetectionMethod}
|
||||
setAutoDetectionMethod={setAutoDetectionMethod}
|
||||
setAutoDetectionMethod={updateAutoDetectionMethod}
|
||||
/>
|
||||
</Container>
|
||||
)
|
||||
|
||||
@ -5,7 +5,7 @@ import useTranslate from '@renderer/hooks/useTranslate'
|
||||
import { AutoDetectionMethod, Model, TranslateLanguage } from '@renderer/types'
|
||||
import { Button, Flex, Modal, Radio, Space, Switch, Tooltip } from 'antd'
|
||||
import { HelpCircle } from 'lucide-react'
|
||||
import { Dispatch, FC, memo, SetStateAction, useEffect, useState } from 'react'
|
||||
import { FC, memo, useEffect, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import TranslateSettingsPopup from '../settings/TranslateSettingsPopup/TranslateSettingsPopup'
|
||||
@ -23,7 +23,7 @@ const TranslateSettings: FC<{
|
||||
setBidirectionalPair: (value: [TranslateLanguage, TranslateLanguage]) => void
|
||||
translateModel: Model | undefined
|
||||
autoDetectionMethod: AutoDetectionMethod
|
||||
setAutoDetectionMethod: Dispatch<SetStateAction<AutoDetectionMethod>>
|
||||
setAutoDetectionMethod: (method: AutoDetectionMethod) => void
|
||||
}> = ({
|
||||
visible,
|
||||
onClose,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user