feat: streamline language translation options in MessageMenubar

- Replaced hardcoded language translation options with a dynamic mapping from TranslateLanguageOptions.
- Improved maintainability and scalability of the translation feature by utilizing a centralized configuration for language options.
This commit is contained in:
kangfenmao 2025-01-22 10:18:19 +08:00
parent 3fa1e8c842
commit 462ac39897

View File

@ -13,6 +13,7 @@ import {
} from '@ant-design/icons' } from '@ant-design/icons'
import SelectModelPopup from '@renderer/components/Popups/SelectModelPopup' import SelectModelPopup from '@renderer/components/Popups/SelectModelPopup'
import TextEditPopup from '@renderer/components/Popups/TextEditPopup' import TextEditPopup from '@renderer/components/Popups/TextEditPopup'
import { TranslateLanguageOptions } from '@renderer/config/translate'
import { modelGenerating } from '@renderer/hooks/useRuntime' import { modelGenerating } from '@renderer/hooks/useRuntime'
import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService'
import { translateText } from '@renderer/services/TranslateService' import { translateText } from '@renderer/services/TranslateService'
@ -214,36 +215,11 @@ const MessageMenubar: FC<Props> = (props) => {
<Dropdown <Dropdown
menu={{ menu={{
items: [ items: [
{ ...TranslateLanguageOptions.map((item) => ({
label: '🇨🇳 ' + t('languages.chinese'), label: item.emoji + ' ' + item.label,
key: 'translate-chinese', key: item.value,
onClick: () => handleTranslate('chinese') onClick: () => handleTranslate(item.value)
}, })),
{
label: '🇭🇰 ' + t('languages.chinese-traditional'),
key: 'translate-chinese-traditional',
onClick: () => handleTranslate('chinese-traditional')
},
{
label: '🇬🇧 ' + t('languages.english'),
key: 'translate-english',
onClick: () => handleTranslate('english')
},
{
label: '🇯🇵 ' + t('languages.japanese'),
key: 'translate-japanese',
onClick: () => handleTranslate('japanese')
},
{
label: '🇰🇷 ' + t('languages.korean'),
key: 'translate-korean',
onClick: () => handleTranslate('korean')
},
{
label: '🇷🇺 ' + t('languages.russian'),
key: 'translate-russian',
onClick: () => handleTranslate('russian')
},
{ {
label: '✖ ' + t('translate.close'), label: '✖ ' + t('translate.close'),
key: 'translate-close', key: 'translate-close',