feat(i18n): add user and system labels to multiple language files
This commit is contained in:
parent
b5ad77e70c
commit
3823912b3e
@ -1092,7 +1092,9 @@
|
|||||||
"registry": "Package Registry",
|
"registry": "Package Registry",
|
||||||
"registryTooltip": "Choose the registry for package installation to resolve network issues with the default registry.",
|
"registryTooltip": "Choose the registry for package installation to resolve network issues with the default registry.",
|
||||||
"registryDefault": "Default",
|
"registryDefault": "Default",
|
||||||
"not_support": "Model not supported"
|
"not_support": "Model not supported",
|
||||||
|
"user": "User",
|
||||||
|
"system": "System"
|
||||||
},
|
},
|
||||||
"messages.divider": "Show divider between messages",
|
"messages.divider": "Show divider between messages",
|
||||||
"messages.grid_columns": "Message grid display columns",
|
"messages.grid_columns": "Message grid display columns",
|
||||||
|
|||||||
@ -1091,7 +1091,9 @@
|
|||||||
"registry": "パッケージ管理レジストリ",
|
"registry": "パッケージ管理レジストリ",
|
||||||
"registryTooltip": "デフォルトのレジストリでネットワークの問題が発生した場合、パッケージインストールに使用するレジストリを選択してください。",
|
"registryTooltip": "デフォルトのレジストリでネットワークの問題が発生した場合、パッケージインストールに使用するレジストリを選択してください。",
|
||||||
"registryDefault": "デフォルト",
|
"registryDefault": "デフォルト",
|
||||||
"not_support": "モデルはサポートされていません"
|
"not_support": "モデルはサポートされていません",
|
||||||
|
"user": "ユーザー",
|
||||||
|
"system": "システム"
|
||||||
},
|
},
|
||||||
"messages.divider": "メッセージ間に区切り線を表示",
|
"messages.divider": "メッセージ間に区切り線を表示",
|
||||||
"messages.grid_columns": "メッセージグリッドの表示列数",
|
"messages.grid_columns": "メッセージグリッドの表示列数",
|
||||||
|
|||||||
@ -1091,7 +1091,9 @@
|
|||||||
"registry": "Реестр пакетов",
|
"registry": "Реестр пакетов",
|
||||||
"registryTooltip": "Выберите реестр для установки пакетов, если возникают проблемы с сетью при использовании реестра по умолчанию.",
|
"registryTooltip": "Выберите реестр для установки пакетов, если возникают проблемы с сетью при использовании реестра по умолчанию.",
|
||||||
"registryDefault": "По умолчанию",
|
"registryDefault": "По умолчанию",
|
||||||
"not_support": "Модель не поддерживается"
|
"not_support": "Модель не поддерживается",
|
||||||
|
"user": "Пользователь",
|
||||||
|
"system": "Система"
|
||||||
},
|
},
|
||||||
"messages.divider": "Показывать разделитель между сообщениями",
|
"messages.divider": "Показывать разделитель между сообщениями",
|
||||||
"messages.grid_columns": "Количество столбцов сетки сообщений",
|
"messages.grid_columns": "Количество столбцов сетки сообщений",
|
||||||
|
|||||||
@ -1092,7 +1092,9 @@
|
|||||||
"registry": "包管理源",
|
"registry": "包管理源",
|
||||||
"registryTooltip": "选择用于安装包的源,以解决默认源的网络问题。",
|
"registryTooltip": "选择用于安装包的源,以解决默认源的网络问题。",
|
||||||
"registryDefault": "默认",
|
"registryDefault": "默认",
|
||||||
"not_support": "模型不支持"
|
"not_support": "模型不支持",
|
||||||
|
"user": "用户",
|
||||||
|
"system": "系统"
|
||||||
},
|
},
|
||||||
"messages.divider": "消息分割线",
|
"messages.divider": "消息分割线",
|
||||||
"messages.grid_columns": "消息网格展示列数",
|
"messages.grid_columns": "消息网格展示列数",
|
||||||
|
|||||||
@ -1091,7 +1091,9 @@
|
|||||||
"registry": "套件管理源",
|
"registry": "套件管理源",
|
||||||
"registryTooltip": "選擇用於安裝套件的源,以解決預設源的網路問題。",
|
"registryTooltip": "選擇用於安裝套件的源,以解決預設源的網路問題。",
|
||||||
"registryDefault": "預設",
|
"registryDefault": "預設",
|
||||||
"not_support": "不支援此模型"
|
"not_support": "不支援此模型",
|
||||||
|
"user": "用戶",
|
||||||
|
"system": "系統"
|
||||||
},
|
},
|
||||||
"messages.divider": "訊息間顯示分隔線",
|
"messages.divider": "訊息間顯示分隔線",
|
||||||
"messages.grid_columns": "訊息網格展示列數",
|
"messages.grid_columns": "訊息網格展示列數",
|
||||||
|
|||||||
@ -116,7 +116,13 @@ const MCPToolsSection = ({ tools, server, onToggleTool }: MCPToolsSectionProps)
|
|||||||
</Typography.Text>
|
</Typography.Text>
|
||||||
)}
|
)}
|
||||||
</Flex>
|
</Flex>
|
||||||
<Switch checked={isToolEnabled(tool)} onChange={(checked) => handleToggle(tool, checked)} />
|
<Switch
|
||||||
|
checked={isToolEnabled(tool)}
|
||||||
|
onChange={(checked, event) => {
|
||||||
|
event?.stopPropagation()
|
||||||
|
handleToggle(tool, checked)
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</Flex>
|
</Flex>
|
||||||
}>
|
}>
|
||||||
<SelectableContent>{renderToolProperties(tool)}</SelectableContent>
|
<SelectableContent>{renderToolProperties(tool)}</SelectableContent>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { useMCPServers } from '@renderer/hooks/useMCPServers'
|
|||||||
import type { MCPServer } from '@renderer/types'
|
import type { MCPServer } from '@renderer/types'
|
||||||
import { Button, Card, Flex, Input, Space, Spin, Tag, Typography } from 'antd'
|
import { Button, Card, Flex, Input, Space, Spin, Tag, Typography } from 'antd'
|
||||||
import { npxFinder } from 'npx-scope-finder'
|
import { npxFinder } from 'npx-scope-finder'
|
||||||
import { type FC, useState } from 'react'
|
import { type FC, useEffect, useState } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import styled, { css } from 'styled-components'
|
import styled, { css } from 'styled-components'
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ interface SearchResult {
|
|||||||
fullName: string
|
fullName: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const npmScopes = ['@mcpmarket', '@modelcontextprotocol', '@gongrzhe']
|
const npmScopes = ['@modelcontextprotocol', '@gongrzhe', '@mcpmarket']
|
||||||
|
|
||||||
let _searchResults: SearchResult[] = []
|
let _searchResults: SearchResult[] = []
|
||||||
|
|
||||||
@ -91,6 +91,11 @@ const NpxSearch: FC = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
handleNpmSearch()
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SettingGroup theme={theme} css={SettingGroupCss}>
|
<SettingGroup theme={theme} css={SettingGroupCss}>
|
||||||
<div>
|
<div>
|
||||||
@ -138,7 +143,7 @@ const NpxSearch: FC = () => {
|
|||||||
size="small"
|
size="small"
|
||||||
key={record.npmLink}
|
key={record.npmLink}
|
||||||
title={
|
title={
|
||||||
<Typography.Title level={5} style={{ margin: 0 }}>
|
<Typography.Title level={5} style={{ margin: 0 }} className="selectable">
|
||||||
{record.name}
|
{record.name}
|
||||||
</Typography.Title>
|
</Typography.Title>
|
||||||
}
|
}
|
||||||
@ -167,8 +172,8 @@ const NpxSearch: FC = () => {
|
|||||||
</Flex>
|
</Flex>
|
||||||
}>
|
}>
|
||||||
<Space direction="vertical" size="small">
|
<Space direction="vertical" size="small">
|
||||||
<Text>{record.description}</Text>
|
<Text className="selectable">{record.description}</Text>
|
||||||
<Text type="secondary">
|
<Text type="secondary" className="selectable">
|
||||||
{t('settings.mcp.npx_list.usage')}: {record.usage}
|
{t('settings.mcp.npx_list.usage')}: {record.usage}
|
||||||
</Text>
|
</Text>
|
||||||
<Link href={record.npmLink} target="_blank" rel="noopener noreferrer">
|
<Link href={record.npmLink} target="_blank" rel="noopener noreferrer">
|
||||||
|
|||||||
@ -29,7 +29,7 @@ const MCPSettings: FC = () => {
|
|||||||
const [route, setRoute] = useState<'npx-search' | 'mcp-install' | null>(null)
|
const [route, setRoute] = useState<'npx-search' | 'mcp-install' | null>(null)
|
||||||
const { theme } = useTheme()
|
const { theme } = useTheme()
|
||||||
const dispatch = useDispatch()
|
const dispatch = useDispatch()
|
||||||
const [mcpListType, setMcpListType] = useState<'system' | 'user'>('system')
|
const [mcpListType, setMcpListType] = useState<'system' | 'user'>('user')
|
||||||
|
|
||||||
const systemServers = mcpServers.filter((server) => {
|
const systemServers = mcpServers.filter((server) => {
|
||||||
return server.type === 'inMemory'
|
return server.type === 'inMemory'
|
||||||
@ -141,8 +141,8 @@ const MCPSettings: FC = () => {
|
|||||||
shape="round"
|
shape="round"
|
||||||
value={mcpListType}
|
value={mcpListType}
|
||||||
options={[
|
options={[
|
||||||
{ value: 'user', label: '我的' },
|
{ value: 'user', label: t('settings.mcp.user') },
|
||||||
{ value: 'system', label: '系统' }
|
{ value: 'system', label: t('settings.mcp.system') }
|
||||||
]}
|
]}
|
||||||
onChange={(value) => setMcpListType(value as 'system' | 'user')}
|
onChange={(value) => setMcpListType(value as 'system' | 'user')}
|
||||||
/>
|
/>
|
||||||
@ -156,7 +156,7 @@ const MCPSettings: FC = () => {
|
|||||||
onClick={onAddMcpServer}
|
onClick={onAddMcpServer}
|
||||||
icon={<PlusOutlined />}
|
icon={<PlusOutlined />}
|
||||||
titleStyle={{ fontWeight: 500 }}
|
titleStyle={{ fontWeight: 500 }}
|
||||||
style={{ width: '100%' }}
|
style={{ width: '100%', marginTop: -2 }}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<DragableList list={servers} onUpdate={updateMcpServers}>
|
<DragableList list={servers} onUpdate={updateMcpServers}>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user