UI: i18n update

This commit is contained in:
qixinbo
2026-03-29 14:54:52 +08:00
parent 22e1891a57
commit 4d623f798d
5 changed files with 21 additions and 10 deletions
+3 -3
View File
@@ -927,7 +927,7 @@ function SidebarBody() {
}} }}
> >
<Database className="h-4 w-4 text-muted-foreground" /> <Database className="h-4 w-4 text-muted-foreground" />
{t('knowledgeBaseManagement', 'Knowledge Bases')} {t('knowledgeBases')}
</button> </button>
<button <button
@@ -949,7 +949,7 @@ function SidebarBody() {
}} }}
> >
<Mic className="h-4 w-4 text-muted-foreground" /> <Mic className="h-4 w-4 text-muted-foreground" />
{t('voiceSettings', '语音输入配置')} {t('voiceSettings')}
</button> </button>
{user?.is_admin && ( {user?.is_admin && (
@@ -973,7 +973,7 @@ function SidebarBody() {
}} }}
> >
<Brain className="h-4 w-4 text-muted-foreground" /> <Brain className="h-4 w-4 text-muted-foreground" />
{t('embeddingModelConfig', 'Embedding Models')} {t('embeddingModels')}
</button> </button>
<button <button
+5 -2
View File
@@ -173,7 +173,7 @@
"knowledgeBaseNamePlaceholder": "Enter knowledge base name", "knowledgeBaseNamePlaceholder": "Enter knowledge base name",
"knowledgeBaseDescriptionPlaceholder": "Enter knowledge base description (optional)", "knowledgeBaseDescriptionPlaceholder": "Enter knowledge base description (optional)",
"knowledgeBaseEmbeddingModel": "Embedding Model", "knowledgeBaseEmbeddingModel": "Embedding Model",
"knowledgeBaseEmbeddingModelPlaceholder": "e.g. text-embedding-3-large", "knowledgeBaseEmbeddingModelPlaceholder": "Select an embedding model",
"knowledgeBaseChunkSize": "Chunk Size", "knowledgeBaseChunkSize": "Chunk Size",
"knowledgeBaseChunkOverlap": "Chunk Overlap", "knowledgeBaseChunkOverlap": "Chunk Overlap",
"knowledgeBaseTopK": "Top K", "knowledgeBaseTopK": "Top K",
@@ -364,5 +364,8 @@
"selectModel": "Select a model", "selectModel": "Select a model",
"noSubagents": "No subagents configured", "noSubagents": "No subagents configured",
"confirmDeleteSubagent": "Are you sure you want to delete this subagent?", "confirmDeleteSubagent": "Are you sure you want to delete this subagent?",
"selectProjectToManageSubagents": "Please select a project to manage subagents" "selectProjectToManageSubagents": "Please select a project to manage subagents",
"knowledgeBases": "Knowledge Bases",
"voiceSettings": "Voice Input Settings",
"embeddingModels": "Embedding Models"
} }
+5 -2
View File
@@ -186,7 +186,7 @@
"knowledgeBaseNamePlaceholder": "请输入知识库名称", "knowledgeBaseNamePlaceholder": "请输入知识库名称",
"knowledgeBaseDescriptionPlaceholder": "请输入知识库描述(可选)", "knowledgeBaseDescriptionPlaceholder": "请输入知识库描述(可选)",
"knowledgeBaseEmbeddingModel": "Embedding 模型", "knowledgeBaseEmbeddingModel": "Embedding 模型",
"knowledgeBaseEmbeddingModelPlaceholder": "例如:text-embedding-3-large", "knowledgeBaseEmbeddingModelPlaceholder": "请选择一个嵌入模型",
"knowledgeBaseChunkSize": "Chunk Size", "knowledgeBaseChunkSize": "Chunk Size",
"knowledgeBaseChunkOverlap": "Chunk Overlap", "knowledgeBaseChunkOverlap": "Chunk Overlap",
"knowledgeBaseTopK": "Top K", "knowledgeBaseTopK": "Top K",
@@ -364,5 +364,8 @@
"systemInstructionsPlaceholder": "你是一个有用的 AI 助手...", "systemInstructionsPlaceholder": "你是一个有用的 AI 助手...",
"noSubagents": "暂无配置的子智能体", "noSubagents": "暂无配置的子智能体",
"confirmDeleteSubagent": "确定要删除这个子智能体吗?", "confirmDeleteSubagent": "确定要删除这个子智能体吗?",
"selectProjectToManageSubagents": "请先选择一个项目以管理其子智能体" "selectProjectToManageSubagents": "请先选择一个项目以管理其子智能体",
"knowledgeBases": "知识库管理",
"voiceSettings": "语音输入配置",
"embeddingModels": "Embedding 模型"
} }
+1 -1
View File
@@ -154,7 +154,7 @@ export function EmbeddingModels() {
<div className="flex-1 flex flex-col h-full bg-muted/50/30 overflow-hidden"> <div className="flex-1 flex flex-col h-full bg-muted/50/30 overflow-hidden">
<div className="h-14 px-6 flex items-center justify-between border-b border-border bg-background"> <div className="h-14 px-6 flex items-center justify-between border-b border-border bg-background">
<div className="flex items-center gap-2 text-foreground/80 font-medium"> <div className="flex items-center gap-2 text-foreground/80 font-medium">
<Brain className="h-5 w-5 text-indigo-500" />{t('embeddingModelConfig', 'Embedding Model Configuration')}</div> <Brain className="h-5 w-5 text-indigo-500" />{t('embeddingModels')}</div>
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<div className="relative"> <div className="relative">
<Search className="h-4 w-4 text-muted-foreground absolute left-3 top-1/2 -translate-y-1/2" /> <Search className="h-4 w-4 text-muted-foreground absolute left-3 top-1/2 -translate-y-1/2" />
+7 -2
View File
@@ -403,13 +403,14 @@ export function KnowledgeBases() {
}; };
const selectedKnowledgeBase = knowledgeBases.find((item) => item.id === selectedKnowledgeBaseId) || null; const selectedKnowledgeBase = knowledgeBases.find((item) => item.id === selectedKnowledgeBaseId) || null;
const selectedEmbeddingModel = embeddingModels.find(m => m.id === knowledgeBaseForm.embedding_model);
return ( return (
<div className="flex-1 flex flex-col h-full bg-muted/50/30 overflow-hidden"> <div className="flex-1 flex flex-col h-full bg-muted/50/30 overflow-hidden">
<div className="h-14 px-6 flex items-center justify-between border-b border-border bg-background"> <div className="h-14 px-6 flex items-center justify-between border-b border-border bg-background">
<div className="flex items-center gap-2 text-foreground/80 font-medium"> <div className="flex items-center gap-2 text-foreground/80 font-medium">
<Database className="h-5 w-5 text-indigo-500" /> <Database className="h-5 w-5 text-indigo-500" />
{t('knowledgeBaseManagement', 'Knowledge Base Management')} {t('knowledgeBases')}
</div> </div>
</div> </div>
@@ -464,7 +465,11 @@ export function KnowledgeBases() {
disabled={!currentProject} disabled={!currentProject}
> >
<SelectTrigger id="knowledge-base-embedding-model"> <SelectTrigger id="knowledge-base-embedding-model">
<SelectValue placeholder={t('knowledgeBaseEmbeddingModelPlaceholder', 'Select an embedding model')} /> <SelectValue placeholder={t('knowledgeBaseEmbeddingModelPlaceholder')}>
{selectedEmbeddingModel
? `${selectedEmbeddingModel.name || selectedEmbeddingModel.model} (${selectedEmbeddingModel.provider})`
: knowledgeBaseForm.embedding_model || undefined}
</SelectValue>
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
{embeddingModels.map((model) => ( {embeddingModels.map((model) => (