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:
parent
3fa1e8c842
commit
462ac39897
@ -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',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user