From cbb1173a3db3d99072853be44f763884e27da20d Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Wed, 19 Mar 2025 15:42:00 +0800 Subject: [PATCH] feat: add advanced settings localization and improve existing translations - Added "advanced_settings" key to English, Japanese, Russian, Chinese, and Traditional Chinese localization files for better user experience. - Corrected translations for "chunk_size" and "chunk_overlap" in Chinese and Traditional Chinese localization files to enhance clarity. --- src/renderer/src/i18n/locales/en-us.json | 3 +- src/renderer/src/i18n/locales/ja-jp.json | 3 +- src/renderer/src/i18n/locales/ru-ru.json | 5 +- src/renderer/src/i18n/locales/zh-cn.json | 7 +- src/renderer/src/i18n/locales/zh-tw.json | 7 +- .../components/KnowledgeSettingsPopup.tsx | 188 +++++++++++------- 6 files changed, 126 insertions(+), 87 deletions(-) diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 9f7a8f5c..f24a1fdc 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -235,7 +235,8 @@ "you": "You", "copied": "Copied", "confirm": "Confirm", - "more": "More" + "more": "More", + "advanced_settings": "Advanced Settings" }, "docs": { "title": "Docs" diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 89739595..b4683f91 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -235,7 +235,8 @@ "you": "あなた", "copied": "コピーされました", "confirm": "確認", - "more": "もっと" + "more": "もっと", + "advanced_settings": "詳細設定" }, "docs": { "title": "ドキュメント" diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index 4f87ac1a..d073aa24 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -233,9 +233,10 @@ "topics": "Топики", "warning": "Предупреждение", "you": "Вы", - "confirm": "确认的翻译是: Подтверждение", + "confirm": "Подтверждение", "copied": "Скопировано", - "more": "Ещё" + "more": "Ещё", + "advanced_settings": "Дополнительные настройки" }, "docs": { "title": "Документация" diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 73a81851..541f4e90 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -235,7 +235,8 @@ "topics": "话题", "warning": "警告", "you": "用户", - "more": "更多" + "more": "更多", + "advanced_settings": "高级设置" }, "docs": { "title": "帮助文档" @@ -324,9 +325,9 @@ "delete_confirm": "确定要删除此知识库吗?", "directories": "目录", "directory_placeholder": "请输入目录路径", - "document_count": "请求文档分段数量", + "document_count": "请求文档片段数量", "document_count_default": "默认", - "document_count_help": "请求文档分段数量越多,附带的信息越多,但需要消耗的 Token 也越多", + "document_count_help": "请求文档片段数量越多,附带的信息越多,但需要消耗的 Token 也越多", "drag_file": "拖拽文件到这里", "edit_remark": "修改备注", "edit_remark_placeholder": "请输入备注内容", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index ca91ae9d..6c6c8e6d 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -235,7 +235,8 @@ "you": "您", "copied": "已複製", "confirm": "確認", - "more": "更多" + "more": "更多", + "advanced_settings": "進階設定" }, "docs": { "title": "說明文件" @@ -324,9 +325,9 @@ "delete_confirm": "確定要刪除此知識庫嗎?", "directories": "目錄", "directory_placeholder": "請輸入目錄路徑", - "document_count": "請求文件分段數量", + "document_count": "請求文件片段數量", "document_count_default": "預設", - "document_count_help": "請求文件分段數量越多,附帶的資訊越多,但需要消耗的 Token 也越多", + "document_count_help": "請求文件片段數量越多,附帶的資訊越多,但需要消耗的 Token 也越多", "drag_file": "拖拽檔案到這裡", "edit_remark": "修改備註", "edit_remark_placeholder": "請輸入備註內容", diff --git a/src/renderer/src/pages/knowledge/components/KnowledgeSettingsPopup.tsx b/src/renderer/src/pages/knowledge/components/KnowledgeSettingsPopup.tsx index b2e092b3..e1c1e8c1 100644 --- a/src/renderer/src/pages/knowledge/components/KnowledgeSettingsPopup.tsx +++ b/src/renderer/src/pages/knowledge/components/KnowledgeSettingsPopup.tsx @@ -1,4 +1,4 @@ -import { WarningOutlined } from '@ant-design/icons' +import { DownOutlined, WarningOutlined } from '@ant-design/icons' import { TopView } from '@renderer/components/TopView' import { DEFAULT_KNOWLEDGE_DOCUMENT_COUNT } from '@renderer/config/constant' import { getEmbeddingMaxContext } from '@renderer/config/embedings' @@ -11,6 +11,7 @@ import { Alert, Form, Input, InputNumber, Modal, Select, Slider } from 'antd' import { sortBy } from 'lodash' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' +import styled from 'styled-components' interface ShowParams { base: KnowledgeBase @@ -33,6 +34,7 @@ interface Props extends ShowParams { const PopupContainer: React.FC = ({ base: _base, resolve }) => { const [open, setOpen] = useState(true) + const [showAdvanced, setShowAdvanced] = useState(false) const [form] = Form.useForm() const { t } = useTranslation() const { providers } = useProviders() @@ -118,7 +120,7 @@ const PopupContainer: React.FC = ({ base: _base, resolve }) => { destroyOnClose maskClosable={false} centered> -
+ = ({ base: _base, resolve }) => { /> - maxContext) { - return Promise.reject(new Error(t('knowledge.chunk_size_too_large', { max_context: maxContext }))) - } - return Promise.resolve() - } - } - ]}> - setShowAdvanced(!showAdvanced)}> + - + {t('common.advanced_settings')} + - ({ - validator(_, value) { - if (!value || getFieldValue('chunkSize') > value) { +
+ maxContext) { + return Promise.reject(new Error(t('knowledge.chunk_size_too_large', { max_context: maxContext }))) + } return Promise.resolve() } - return Promise.reject(new Error(t('message.error.chunk_overlap_too_large'))) } - }) - ]} - dependencies={['chunkSize']}> - + + + ({ + validator(_, value) { + if (!value || getFieldValue('chunkSize') > value) { + return Promise.resolve() + } + return Promise.reject(new Error(t('message.error.chunk_overlap_too_large'))) + } + }) + ]} + dependencies={['chunkSize']}> + + + + 1 || value < 0)) { + return Promise.reject(new Error(t('knowledge.threshold_too_large_or_small'))) + } + return Promise.resolve() + } + } + ]}> + + + + 10)) { + return Promise.reject(new Error(t('knowledge.topN_too_large_or_small'))) + } + return Promise.resolve() + } + } + ]}> + + + } /> - - 1 || value < 0)) { - return Promise.reject(new Error(t('knowledge.threshold_too_large_or_small'))) - } - return Promise.resolve() - } - } - ]}> - - - 10)) { - return Promise.reject(new Error(t('knowledge.topN_too_large_or_small'))) - } - return Promise.resolve() - } - } - ]}> - - +
- } /> ) } const TopViewKey = 'KnowledgeSettingsPopup' +const AdvancedSettingsButton = styled.div` + cursor: pointer; + margin-bottom: 16px; + margin-top: -10px; + color: var(--color-primary); + display: flex; + align-items: center; +` + export default class KnowledgeSettingsPopup { static hide() { TopView.hide(TopViewKey)