Files
Memoh/apps/web/src/i18n/locales/zh.json
T
晨苒 627b673a5c refactor: multi-provider memory adapters with scan-based builtin (#227)
* refactor: restructure memory into multi-provider adapters, remove manifest.json dependency

- Rename internal/memory/provider to internal/memory/adapters with per-provider subdirectories (builtin, mem0, openviking)
- Replace manifest.json-based delete/update with scan-based index from daily files
- Add mem0 and openviking provider adapters with HTTP client, chat hooks, MCP tools, and CRUD
- Wire provider lifecycle into registry (auto-instantiate on create, evict on update/delete)
- Split docker-compose into base stack + optional overlays (qdrant, browser, mem0, openviking)
- Update admin UI to support dynamic provider config schema rendering

* chore(lint): fix all golangci-lint issues for clean CI

* refactor(docker): replace compose overlay files with profiles

* feat(memory): add built-in memory multi modes

* fix(ci): golangci lint

* feat(memory): edit built-in memory sparse design
2026-03-14 06:04:13 +08:00

959 lines
37 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"confirm": "确认",
"cancel": "取消",
"back": "返回",
"save": "保存",
"add": "添加",
"edit": "编辑",
"delete": "删除",
"search": "搜索",
"loading": "加载中...",
"operation": "操作",
"enable": "启用",
"optional": "可选",
"import": "导入",
"export": "导出",
"copy": "复制",
"copied": "已复制到剪贴板",
"tabAddSingle": "添加单个",
"tabImportJson": "导入 JSON",
"copyAsJson": "复制为 JSON",
"fillForm": "填入表单",
"batchSelected": "已选 {count} 项",
"batchDelete": "批量删除",
"batchDeleteConfirm": "确定删除选中的 {count} 项?",
"batchExport": "批量导出",
"cancelSelection": "取消选择",
"name": "名称",
"namePlaceholder": "输入名称",
"type": "类型",
"typePlaceholder": "选择类型",
"refresh": "刷新",
"status": "状态",
"loadFailed": "加载失败",
"saveFailed": "保存失败",
"createdAt": "创建时间",
"none": "无"
},
"auth": {
"welcome": "欢迎回来",
"username": "用户名",
"password": "密码",
"login": "登录",
"register": "注册",
"forgotPassword": "忘记密码?",
"logout": "退出登录",
"logoutConfirm": "确定要退出当前账号吗?",
"loginFailed": "登录失败",
"invalidCredentials": "用户名或密码不正确",
"retryHint": "请检查后重新输入"
},
"sidebar": {
"chat": "对话",
"bots": "Bots",
"models": "模型管理",
"searchProvider": "搜索提供方",
"memoryProvider": "记忆",
"ttsProvider": "语音合成",
"emailProvider": "邮件提供方",
"settings": "设置",
"home": "首页",
"mcp": "MCP",
"platform": "接入平台",
"usage": "用量统计",
"browserContexts": "浏览器"
},
"breadcrumb": {
"main": "主页"
},
"settings": {
"display": "通用",
"user": "用户",
"backToChat": "返回对话",
"userProfile": "用户资料",
"userID": "用户 ID",
"displayName": "显示名称",
"avatarUrl": "头像链接",
"saveProfile": "保存资料",
"profileUpdated": "用户资料已更新",
"profileUpdateFailed": "用户资料更新失败",
"changePassword": "修改密码",
"currentPassword": "当前密码",
"newPassword": "新密码",
"confirmPassword": "确认新密码",
"updatePassword": "更新密码",
"passwordRequired": "请填写当前密码和新密码",
"passwordNotMatch": "两次输入的新密码不一致",
"passwordUpdated": "密码已更新",
"passwordUpdateFailed": "密码更新失败",
"linkedChannels": "已绑定平台账号",
"noLinkedChannels": "暂无已绑定平台账号",
"bindCode": "Bind Code",
"platform": "平台",
"platformAny": "任意平台",
"bindCodeTTL": "有效期(秒)",
"generateBindCode": "生成 Bind Code",
"bindCodeGenerated": "Bind Code 已生成",
"bindCodeGenerateFailed": "Bind Code 生成失败",
"bindCodeValue": "Bind Code",
"bindCodeExpiresAt": "过期时间",
"copyBindCode": "复制",
"bindCodeCopied": "Bind Code 已复制",
"bindCodeCopyFailed": "复制失败",
"loadUserFailed": "用户信息加载失败",
"language": "语言",
"languagePlaceholder": "选择语言",
"theme": "主题",
"themePlaceholder": "选择主题",
"themeLight": "浅色",
"themeDark": "深色",
"langZh": "中文",
"langEn": "English"
},
"chat": {
"greeting": "你好!有什么我可以帮你的吗?",
"selectBot": "选择一个 Bot",
"selectBotHint": "从侧边栏选择一个 Bot 开始对话",
"thinking": "思考中…",
"thinkingInProgress": "思考中…",
"thinkingDone": "思考完成",
"currentBot": "当前 Bot",
"inputPlaceholder": "输入你的问题…",
"readonlyHint": "该聊天为只读",
"readonlyPlaceholder": "该聊天为只读,无法发送消息",
"send": "发送",
"startChat": "开始聊天",
"noBot": "暂无可用 Bot,请先创建 Bot",
"newChat": "开启新对话",
"history": "历史对话",
"historyParticipant": "对话",
"historyObserved": "参与过的聊天",
"readonly": "只读",
"toolDone": "已完成",
"toolRunning": "运行中",
"toolInput": "输入",
"toolResult": "结果",
"toolWriteContent": "内容",
"toolEditChanges": "变更",
"toolSearchResults": "{count} 条结果",
"toolSearchResultsLabel": "结果",
"toolExecOutput": "输出",
"toolExecExit": "退出: {code}",
"toolExecError": "错误",
"toolScheduleItems": "{count} 条",
"toolMemoryResults": "{count} 条记忆",
"toolInboxResults": "{count} 条消息",
"toolWebFetchPreview": "预览",
"toolContactsCount": "{count} 个联系人",
"toolEmailCount": "{count} 封邮件",
"toolEmailAccounts": "{count} 个账户",
"toolSubagentCount": "{count} 个子代理",
"unknownUser": "{platform}用户",
"files": "文件管理"
},
"models": {
"title": "模型",
"searchPlaceholder": "搜索服务商…",
"addModel": "添加模型",
"editModel": "编辑模型",
"deleteModelConfirm": "确定要删除这个模型吗?",
"searchModelPlaceholder": "搜索模型…",
"searchNoResults": "没有匹配的模型",
"emptyTitle": "暂无模型",
"emptyDescription": "点击上方按钮为当前服务商添加模型",
"clientType": "客户端类型",
"clientTypePlaceholder": "选择客户端类型",
"model": "模型 ID",
"modelPlaceholder": "例如 gpt-4o",
"displayName": "显示名称",
"displayNamePlaceholder": "自定义显示名称",
"dimensions": "向量维度",
"dimensionsPlaceholder": "例如 1536",
"multimodal": "支持多模态",
"inputModalities": "输入模态",
"supportsReasoning": "支持推理",
"modality": {
"text": "文本",
"image": "图片",
"audio": "音频",
"video": "视频",
"file": "文件"
},
"testModel": "测试模型",
"testOk": "正常",
"testAuthError": "认证失败",
"testError": "异常",
"testFailed": "测试失败",
"importModels": "导入模型",
"importSuccess": "成功导入 {created} 个模型,跳过 {skipped} 个",
"importFailed": "导入模型失败",
"importClientType": "模型客户端类型",
"importClientTypeHint": "为导入的模型设置默认客户端类型",
"showingCount": "显示 {count} / {total}",
"showMore": "加载更多"
},
"provider": {
"add": "添加服务商",
"addBtn": "添加",
"apiKey": "API 密钥",
"apiKeyPlaceholder": "输入 API 密钥",
"url": "接口地址",
"urlPlaceholder": "输入接口地址",
"deleteConfirm": "确定要删除这个服务商吗?",
"saveChanges": "保存修改",
"emptyTitle": "暂无服务商",
"emptyDescription": "请先添加模型服务商,才能配置模型",
"testConnection": "测试连接",
"reachable": "可连接",
"unreachable": "不可连接",
"testFailed": "测试失败",
"autoImport": "自动导入模型",
"autoImportHint": "创建后自动从服务商获取并导入模型"
},
"searchProvider": {
"title": "搜索提供方",
"add": "添加搜索提供方",
"empty": "暂无搜索提供方",
"provider": "提供方类型",
"selectHint": "请选择或新建一个搜索提供方",
"unsupportedProvider": "该提供方暂未实现配置面板",
"saveSuccess": "搜索提供方配置已保存",
"deleteSuccess": "搜索提供方配置已删除",
"deleteFailed": "删除搜索提供方配置失败",
"searchPlaceholder": "搜索提供方…",
"emptyTitle": "暂无搜索提供方",
"emptyDescription": "请先添加搜索提供方,才能配置搜索功能",
"deleteConfirm": "确定删除该搜索提供方?删除后无法恢复。",
"providerNames": {
"brave": "Brave",
"bing": "Bing",
"google": "Google",
"tavily": "Tavily",
"sogou": "搜狗",
"serper": "Serper",
"searxng": "SearXNG",
"jina": "Jina",
"exa": "Exa",
"bocha": "博查",
"duckduckgo": "DuckDuckGo",
"yandex": "Yandex"
}
},
"memoryProvider": {
"title": "记忆提供方",
"add": "添加记忆提供方",
"empty": "暂无记忆提供方",
"provider": "提供方类型",
"searchPlaceholder": "搜索提供方...",
"emptyTitle": "暂无记忆提供方",
"emptyDescription": "添加记忆提供方以启用 Bot 的长期记忆功能",
"saveSuccess": "记忆提供方已保存",
"deleteSuccess": "记忆提供方已删除",
"deleteFailed": "删除记忆提供方失败",
"deleteConfirm": "确定要删除该记忆提供方吗?使用它的 Bot 将失去记忆访问。",
"name": "名称",
"namePlaceholder": "输入提供方名称",
"builtinMode": "内置记忆模式",
"builtinModeDescription": "选择内置记忆提供方为 Bot 存储和检索记忆的方式。",
"sparseSectionTitle": "稀疏检索",
"denseSectionTitle": "稠密检索",
"sparseInstallHint": "Sparse 模式依赖可选的 sparse 服务。安装时请启用 sparse 选项,或在 Docker Compose 中启动 sparse profile。",
"denseBackend": "Dense 后端",
"denseBackendValue": "Embedding API + Qdrant",
"denseEmbeddingModel": "Dense 向量模型",
"denseEmbeddingModelDescription": "选择本地 rerank 之前使用的第三方 embedding 模型。",
"denseQdrantHint": "后端接通后,dense memory 会以 Qdrant 作为存储后端。",
"qdrantCollection": "Qdrant Collection",
"sparseQdrantCollectionDescription": "稀疏模式会写入对应的 Qdrant collection。当前/默认 collection{collection}。",
"denseQdrantCollectionDescription": "稠密模式会写入对应的 Qdrant collection。当前/默认 collection{collection}。",
"collectionPoints": "Collection 中的点数",
"collectionExists": "Collection 已存在",
"collectionMissing": "Collection 尚未创建",
"collectionHealthy": "正常",
"collectionUnavailable": "不可用",
"modeNames": {
"off": "关闭",
"sparse": "稀疏",
"dense": "稠密"
},
"modeDescriptions": {
"off": "保持当前基于文件的内置记忆行为,不启用 Qdrant 检索。",
"sparse": "使用本地 OpenSearch 稀疏模型,并通过 Qdrant 进行记忆索引与检索。",
"dense": "使用所选 embedding 模型 API 生成 dense 向量,并直接写入/检索 Qdrant。"
},
"providerNames": {
"builtin": "内置",
"mem0": "Mem0",
"openviking": "OpenViking"
}
},
"ttsProvider": {
"title": "语音合成",
"add": "添加语音合成提供方",
"providerType": "提供方类型",
"searchPlaceholder": "搜索语音合成...",
"emptyTitle": "暂无语音合成提供方",
"emptyDescription": "添加语音合成提供方以为 Bot 启用文字转语音功能",
"deleteConfirm": "确定要删除此语音合成提供方吗?此操作不可撤销。",
"models": "模型",
"importModels": "导入模型",
"importSuccess": "模型导入成功",
"importFailed": "模型导入失败",
"addModel": "新建模型",
"modelId": "模型 ID",
"modelIdPlaceholder": "输入模型标识符(如 custom-voice",
"noModels": "暂无模型,点击\"导入模型\"发现可用模型,或点击\"新建模型\"手动创建。",
"noCapabilities": "该模型暂无可用能力信息。",
"fields": {
"language": "语言",
"languagePlaceholder": "选择语言...",
"voice": "声音",
"voicePlaceholder": "选择声音...",
"format": "输出格式",
"formatPlaceholder": "选择格式...",
"speed": "语速",
"speedDescription": "播放速度(默认:{default}",
"pitch": "音调",
"pitchDescription": "语音音调调整,单位 Hz(默认:{default}"
},
"test": {
"title": "测试合成",
"placeholder": "输入要合成的文本...",
"generate": "生成",
"failed": "合成失败"
}
},
"emailProvider": {
"title": "邮件提供方",
"add": "添加邮件提供方",
"providerType": "提供方类型",
"searchPlaceholder": "搜索邮件提供方...",
"emptyTitle": "暂无邮件提供方",
"emptyDescription": "添加邮件提供方以为 Bot 启用邮件功能",
"deleteConfirm": "确定要删除此邮件提供方吗?此操作不可撤销。",
"fields": {
"username": "用户名",
"password": "密码",
"smtp_host": "SMTP 主机",
"smtp_port": "SMTP 端口",
"smtp_security": "SMTP 安全模式",
"imap_host": "IMAP 主机",
"imap_port": "IMAP 端口",
"imap_security": "IMAP 安全模式",
"poll_interval_seconds": "轮询间隔(秒)",
"domain": "域名",
"api_key": "API 密钥",
"region": "区域",
"inbound_mode": "入站模式",
"webhook_signing_key": "Webhook 签名密钥"
},
"oauth": {
"title": "OAuth2 授权",
"description": "授权此提供商以您的名义发送邮件,系统将跳转到提供商登录页面。",
"authorize": "授权",
"authorizeOpened": "授权页面已在新标签页打开",
"authorizeFailed": "启动授权失败",
"status": {
"checking": "正在检查授权状态...",
"authorized": "已授权账号 {email}",
"authorizedUnknown": "已授权",
"expired": "授权已过期,请重新授权。",
"missing": "尚未授权。完成授权后 Bot 才能访问 Gmail。",
"notConfigured": "缺少 Client ID,填写后才能发起授权。"
},
"logout": "注销授权",
"logoutSuccess": "授权已撤销",
"logoutFailed": "撤销授权失败"
}
},
"browserContext": {
"title": "浏览器上下文",
"add": "添加浏览器上下文",
"searchPlaceholder": "搜索浏览器上下文...",
"emptyTitle": "暂无浏览器上下文",
"emptyDescription": "添加浏览器上下文以启用 Bot 的浏览器自动化功能",
"deleteConfirm": "确定要删除此浏览器上下文吗?使用它的 Bot 将无法使用浏览器功能。",
"saveSuccess": "浏览器上下文已保存",
"deleteSuccess": "浏览器上下文已删除",
"name": "名称",
"namePlaceholder": "输入上下文名称",
"viewportWidth": "视口宽度",
"viewportHeight": "视口高度",
"userAgent": "User Agent",
"userAgentPlaceholder": "自定义 User Agent 字符串",
"deviceScaleFactor": "设备缩放比",
"isMobile": "移动设备",
"locale": "语言区域",
"localePlaceholder": "例如 zh-CN",
"timezoneId": "时区",
"timezonePlaceholder": "例如 Asia/Shanghai",
"ignoreHTTPSErrors": "忽略 HTTPS 错误",
"config": "配置"
},
"mcp": {
"addTitle": "添加 MCP",
"addDescription": "配置 MCP 服务器连接",
"searchPlaceholder": "搜索 MCP 服务器...",
"emptyTitle": "暂无 MCP 服务器",
"emptyDescription": "添加 MCP 服务器以扩展 Bot 的能力",
"command": "命令",
"commandPlaceholder": "输入启动命令",
"arguments": "参数",
"argumentsPlaceholder": "输入后按 Enter 添加",
"cwd": "工作目录",
"cwdPlaceholder": "输入工作目录路径",
"env": "环境变量",
"envPlaceholder": "格式:KEY:VALUE",
"active": "启用",
"types": {
"stdio": "本地命令 (Stdio)",
"remote": "远程服务 (HTTP/SSE)"
},
"table": {
"command": "命令",
"cwd": "工作目录",
"arguments": "参数",
"env": "环境变量"
},
"draft": "草稿",
"empty": "暂未配置 MCP 服务器。",
"deleteConfirm": "确定要删除这个 MCP 服务器吗?",
"loadFailed": "加载 MCP 服务器列表失败",
"saveFailed": "保存 MCP 服务器失败",
"createSuccess": "MCP 服务器已创建",
"updateSuccess": "MCP 服务器已更新",
"deleteSuccess": "MCP 服务器已删除",
"deleteFailed": "删除 MCP 服务器失败",
"importHint": "粘贴标准 mcpServers JSON 配置。同名的服务器会被更新配置。",
"importSuccess": "MCP 服务器已导入",
"importFailed": "导入 MCP 服务器失败",
"exportFailed": "导出 MCP 服务器失败",
"probe": "测试连接",
"probing": "测试中...",
"probeSuccess": "连接验证成功",
"probeFailed": "连接测试失败",
"probeRefresh": "刷新",
"tools": "工具",
"toolsEmpty": "未发现工具",
"toolsCount": "已发现 {count} 个工具",
"statusConnected": "已连接",
"statusError": "错误",
"statusUnknown": "未测试",
"lastProbed": "上次测试",
"authRequired": "需要授权",
"oauth": {
"title": "认证",
"status": "OAuth 状态",
"notConfigured": "未配置",
"authorized": "已授权",
"expired": "令牌已过期",
"discover": "检测 OAuth",
"discovering": "检测中...",
"authorize": "授权",
"authorizing": "授权中...",
"revoke": "撤销",
"revokeConfirm": "确定要撤销 OAuth 授权吗?",
"revokeSuccess": "OAuth 授权已撤销",
"revokeFailed": "撤销 OAuth 失败",
"discoverSuccess": "已检测到 OAuth 服务器",
"discoverFailed": "OAuth 检测失败",
"authSuccess": "授权成功",
"authFailed": "授权失败",
"scopes": "权限范围",
"authServer": "授权服务器",
"clientId": "Client ID",
"clientIdPlaceholder": "OAuth 应用的 Client ID",
"clientSecret": "Client Secret",
"clientSecretPlaceholder": "OAuth 应用的 Client Secret(如需要)",
"clientIdHint": "该授权服务器不支持自动注册,请创建 OAuth 应用并输入其 Client ID。",
"callbackUrl": "回调地址",
"callbackUrlHint": "请在 OAuth 应用设置中填入此回调地址。",
"callbackMissingParams": "缺少授权码或状态参数"
}
},
"home": {
"title": "首页"
},
"bots": {
"title": "Bots",
"searchPlaceholder": "搜索 Bot…",
"createBot": "新建 Bot",
"editBot": "编辑 Bot",
"deleteConfirm": "确定要删除这个 Bot 吗?",
"renameSuccess": "Bot 名称已更新",
"renameFailed": "更新 Bot 名称失败",
"deleteSuccess": "Bot 已删除",
"emptyTitle": "暂无 Bot",
"emptyDescription": "点击右上角按钮创建你的第一个 Bot",
"displayName": "名称",
"displayNamePlaceholder": "给你的 Bot 起个名字",
"avatarUrl": "头像链接",
"avatarUrlPlaceholder": "输入头像图片地址",
"editAvatar": "编辑头像",
"editAvatarDescription": "设置 Bot 头像图片的链接地址",
"avatarUpdateSuccess": "头像已更新",
"avatarUpdateFailed": "更新头像失败",
"typePlaceholder": "选择 Bot 类型",
"types": {
"personal": "个人",
"public": "公开"
},
"active": "运行中",
"inactive": "未启用",
"lifecycle": {
"creating": "创建中",
"deleting": "删除中",
"createFailed": "创建失败",
"deleteFailed": "删除失败"
},
"checks": {
"title": "运行时检查",
"subtitle": "查看当前健康状态与异常详情。",
"ok": "无异常",
"hasIssue": "存在异常",
"issueCount": "{count} 个异常",
"empty": "暂无检查项",
"loadFailed": "加载运行时检查失败",
"actions": {},
"titles": {
"containerInit": "容器初始化",
"containerRecord": "容器记录",
"containerTask": "容器任务",
"containerDataPath": "容器数据路径",
"botDelete": "Bot 删除",
"mcpConnection": "MCP 连接",
"channelConnection": "平台连接"
},
"keys": {
"containerInit": "容器初始化",
"containerRecord": "容器记录",
"containerTask": "容器任务",
"containerDataPath": "容器数据路径",
"botDelete": "Bot 删除"
},
"status": {
"ok": "正常",
"warn": "警告",
"error": "错误",
"unknown": "未知"
}
},
"tabs": {
"overview": "概览",
"memory": "记忆",
"channels": "平台",
"container": "容器",
"mcp": "MCP",
"subagents": "子智能体",
"heartbeat": "心跳",
"schedule": "定时任务",
"history": "对话历史",
"skills": "技能",
"email": "邮件",
"files": "文件",
"terminal": "终端",
"settings": "设置"
},
"terminal": {
"title": "终端",
"reconnect": "重新连接",
"newTab": "新建终端",
"closeTab": "关闭",
"defaultTabLabel": "终端",
"status": {
"idle": "空闲",
"connecting": "连接中...",
"connected": "已连接",
"disconnected": "已断开"
}
},
"files": {
"name": "名称",
"size": "大小",
"modified": "修改时间",
"empty": "此目录为空",
"upload": "上传",
"newFolder": "新建文件夹",
"download": "下载",
"rename": "重命名",
"delete": "删除",
"save": "保存",
"unsaved": "(未保存)",
"previewNotAvailable": "无法预览此文件类型",
"folderNamePlaceholder": "文件夹名称",
"newNamePlaceholder": "新名称",
"confirmDelete": "确认删除",
"confirmDeleteMessage": "确定要删除 \"{name}\" 吗?此操作不可撤销。",
"loadFailed": "加载目录失败",
"readFailed": "读取文件失败",
"saveSuccess": "文件已保存",
"saveFailed": "保存文件失败",
"uploadSuccess": "文件已上传",
"uploadFailed": "上传文件失败",
"mkdirSuccess": "文件夹已创建",
"mkdirFailed": "创建文件夹失败",
"renameSuccess": "重命名成功",
"renameFailed": "重命名失败",
"deleteSuccess": "删除成功",
"deleteFailed": "删除失败"
},
"email": {
"title": "邮件",
"subtitle": "管理邮件提供方绑定,查看收件箱和发件箱。",
"bindings": "绑定",
"addBinding": "添加绑定",
"inbox": "收件箱",
"outbox": "发件箱",
"emailAddress": "邮箱地址",
"emailPlaceholder": "user@example.com",
"noBindings": "尚未配置邮箱绑定",
"noEmails": "暂无邮件",
"canRead": "读取",
"canWrite": "发送",
"canDelete": "删除",
"unbind": "解绑",
"unbindConfirm": "确定要解除此邮箱绑定吗?",
"bindSuccess": "邮箱绑定成功",
"unbindSuccess": "邮箱已解绑",
"from": "发件人",
"to": "收件人",
"subject": "主题",
"status": "状态",
"receivedAt": "接收时间",
"sentAt": "发送时间"
},
"container": {
"title": "容器管理",
"subtitle": "管理当前 Bot 对应的运行容器。",
"botNotReady": "当前 Bot 正在生命周期变更中,暂时不可操作容器。",
"empty": "当前 Bot 尚未创建容器,创建后可启用运行环境能力。",
"createHint": "容器会基于当前镜像创建;如你显式开启恢复,则会在创建后尝试恢复已保留的数据。",
"createRestoreDataLabel": "创建后恢复已保留数据",
"createRestoreDataDescription": "如果存在之前导出的备份或旧版 bind mount 数据,将在容器创建后恢复到 `/data`。",
"deleteConfirm": "确定要彻底删除这个容器吗?未保留的数据将无法恢复。",
"deletePreserveConfirm": "确定要先导出 `/data` 再删除这个容器吗?",
"restoreConfirm": "确定要将已保留的数据恢复到当前容器的 `/data` 吗?",
"rollbackConfirm": "确定要回滚到这个快照版本吗?",
"taskRunning": "运行中",
"taskStopped": "已停止",
"taskCompleted": "已完成",
"statusCreated": "已创建",
"statusRunning": "运行中",
"statusStopped": "已停止",
"statusExited": "已退出",
"statusUnknown": "未知",
"loadFailed": "加载容器信息失败",
"actionFailed": "容器操作失败",
"createSuccess": "容器创建成功",
"createRestoreSuccess": "容器创建成功,已恢复数据",
"startSuccess": "容器启动成功",
"stopSuccess": "容器停止成功",
"deleteSuccess": "容器删除成功",
"deletePreserveSuccess": "容器已删除,数据已保留",
"snapshotSuccess": "快照创建成功",
"exportSuccess": "数据导出成功",
"importSuccess": "数据导入成功",
"restoreSuccess": "已恢复保留数据",
"rollbackSuccess": "快照回滚成功",
"snapshotEmpty": "暂无快照",
"snapshotLoadFailed": "加载快照失败",
"snapshotNamePlaceholder": "快照显示名称(可选)",
"snapshotNameHint": "这里只填写用户可见的显示名称,系统会自动生成内部快照名。",
"dataTitle": "数据操作",
"dataSubtitle": "独立管理容器 `/data` 目录的导入、导出与恢复。",
"deleteTitle": "删除容器",
"deleteSubtitle": "删除容器前请明确选择是否先保留 `/data`,避免误删用户数据。",
"preservedDataAvailable": "检测到可恢复的已保留数据,可直接恢复到当前容器。",
"preservedDataAvailableShort": "可恢复",
"preservedDataEmpty": "无",
"sourceManual": "手动创建",
"sourcePreExec": "执行前自动创建",
"sourceRollback": "回滚生成",
"fields": {
"id": "容器 ID",
"status": "容器状态",
"task": "任务状态",
"namespace": "命名空间",
"image": "镜像",
"hostPath": "主机路径",
"containerPath": "容器路径",
"preservedData": "保留数据",
"createdAt": "创建时间",
"updatedAt": "更新时间"
},
"snapshotColumns": {
"name": "名称",
"version": "版本",
"source": "来源",
"parent": "父级",
"createdAt": "创建时间",
"actions": "操作"
},
"actions": {
"create": "创建容器",
"start": "启动",
"stop": "停止",
"delete": "彻底删除",
"deletePreserve": "保留数据后删除",
"snapshot": "创建快照",
"exportData": "导出数据",
"importData": "导入数据",
"restoreData": "恢复保留数据",
"rollback": "回滚"
}
},
"settings": {
"chatModel": "对话模型",
"searchProvider": "搜索提供方",
"searchProviderPlaceholder": "选择搜索提供方",
"memoryProvider": "记忆提供方",
"memoryProviderPlaceholder": "选择记忆提供方(为空则禁用)",
"memoryModePreview": "当前内置模式:{mode}",
"sparseStatusTitle": "稀疏检索状态",
"sparseStatusHint": "Markdown 文件是唯一可信源;手动同步会把 /data/memory 下的条目重新写入 Qdrant。",
"denseStatusTitle": "稠密检索状态",
"denseStatusHint": "Markdown 文件是唯一可信源;手动同步会把 /data/memory 下的条目重新写入稠密 Qdrant 索引。",
"mem0StatusTitle": "Mem0 同步状态",
"mem0StatusHint": "Markdown 文件是唯一可信源;手动同步会把 /data/memory 下托管的记忆条目重新同步到 Mem0。",
"indexedMemoryStatusPendingSave": "请先保存当前记忆提供方选择,再查看索引状态或执行同步。",
"memorySyncAction": "手动同步",
"memorySyncSuccess": "同步完成:源条目 {fsCount} 条,修复 {restoredCount} 条,索引现有 {storageCount} 条。",
"memorySyncFailed": "手动同步失败",
"memorySourceDir": "记忆目录",
"memoryOverviewPath": "概览文件",
"memoryMarkdownFiles": "Markdown 文件数",
"memorySourceEntries": "源条目数",
"memoryIndexedEntries": "索引条目数",
"memoryQdrantCollection": "Qdrant Collection",
"memoryEncoderHealth": "Sparse Encoder",
"memoryDenseEmbeddingHealth": "Embedding 后端",
"memoryQdrantHealth": "Qdrant",
"memoryHealthOk": "正常",
"memoryHealthUnavailable": "暂不可用",
"ttsModel": "语音合成模型",
"ttsModelPlaceholder": "选择语音合成模型",
"maxContextLoadTime": "最大上下文加载时间",
"maxContextTokens": "最大上下文Token数",
"language": "语言",
"reasoningEnabled": "启用推理",
"reasoningEffort": "推理等级",
"reasoningEffortLow": "低",
"reasoningEffortMedium": "中",
"reasoningEffortHigh": "高",
"heartbeatEnabled": "启用心跳",
"heartbeatDescription": "定期触发 Agent 检查是否有需要关注的事项",
"heartbeatInterval": "心跳间隔(分钟)",
"heartbeatModel": "心跳模型",
"heartbeatModelDescription": "选择心跳检查使用的模型,未设置时默认使用聊天模型。",
"heartbeatModelPlaceholder": "使用聊天模型(默认)",
"browserContext": "浏览器上下文",
"browserContextPlaceholder": "选择浏览器上下文(未配置时不启用)",
"allowGuest": "允许游客访问",
"allowGuestPersonalHint": "个人 Bot 不支持游客访问,请使用公开 Bot。",
"loopDetectionTitle": "自动检测并阻止模型循环输出",
"searchModel": "搜索模型…",
"noModel": "暂无可选模型",
"saveSuccess": "设置已保存",
"save": "保存设置",
"dangerZone": "危险操作",
"deleteBotDescription": "删除此 Bot 后无法恢复,请谨慎操作。",
"deleteBot": "删除 Bot"
},
"channels": {
"title": "平台",
"addChannel": "添加平台",
"selectType": "选择平台类型",
"configured": "已配置",
"notConfigured": "未配置",
"emptyTitle": "暂无平台",
"emptyDescription": "点击下方按钮为 Bot 添加接入平台",
"credentials": "凭据配置",
"saveSuccess": "平台配置已保存",
"saveFailed": "平台配置保存失败",
"requiredField": "{field} 为必填项",
"save": "保存平台配置",
"statusActive": "启用",
"statusInactive": "停用",
"actionEnable": "启用",
"actionDisable": "停用",
"saveOnly": "仅保存",
"saveAndEnable": "立即启用",
"copyFailed": "复制失败",
"deleteConfirm": "确定要移除这个平台吗?",
"deleteSuccess": "平台已移除",
"deleteFailed": "移除平台失败",
"webhookCallback": "WebHook 回调地址",
"webhookCallbackHint": "将该地址配置到飞书/Lark 事件订阅的请求 URL。",
"webhookCallbackPending": "保存平台配置后会生成回调地址。",
"noAvailableTypes": "所有平台类型均已配置",
"types": {
"feishu": "飞书",
"discord": "Discord",
"qq": "QQ",
"telegram": "Telegram",
"web": "Web",
"local": "本地"
},
"typesShort": {
"feishu": "飞",
"discord": "DC",
"qq": "QQ",
"telegram": "TG",
"web": "Web",
"local": "CLI"
}
},
"memory": {
"title": "所忆皆在此间",
"files": "记忆文件",
"empty": "暂无记忆条目",
"searchPlaceholder": "搜索记忆...",
"newMemory": "新建记忆",
"compact": "压缩记忆",
"compactConfirm": "确定要压缩记忆吗?这会通过 AI 合并相似内容,可能会减少记忆条目数量。",
"compactRatio": "压缩率",
"compactRatioLight": "轻度 (0.8)",
"compactRatioMedium": "中度 (0.5)",
"compactRatioAggressive": "重度 (0.3)",
"compactRatioLightDesc": "保留大部分细节,主要是去重。",
"compactRatioMediumDesc": "合并相似事实,平衡压缩。",
"compactRatioAggressiveDesc": "深度整合,仅保留核心事实。",
"compactDecayDate": "以此日期之前的记忆会被优先压缩",
"compactSuccess": "记忆压缩成功",
"compactFailed": "记忆压缩失败",
"selectConversation": "选择对话",
"fromConversation": "从已有对话创建",
"noConversations": "暂无历史对话",
"idCopied": "ID 已复制",
"deleteConfirm": "确定要删除这条记忆吗?此操作无法撤销。"
},
"skills": {
"title": "技能",
"addSkill": "新建技能",
"emptyTitle": "暂无技能",
"emptyDescription": "点击上方按钮创建新技能",
"description": "描述",
"descriptionPlaceholder": "输入技能描述",
"content": "内容",
"contentPlaceholder": "输入技能内容/提示词",
"deleteConfirm": "确定要删除这个技能吗?",
"deleteSuccess": "技能已删除",
"deleteFailed": "删除技能失败",
"saveSuccess": "技能已保存",
"saveFailed": "保存技能失败",
"loadFailed": "加载技能失败"
},
"heartbeat": {
"title": "心跳日志",
"loadFailed": "加载心跳日志失败",
"empty": "暂无心跳日志",
"loadMore": "加载更多",
"clearLogs": "清空日志",
"clearConfirm": "确定要清空所有心跳日志吗?此操作不可撤销。",
"clearSuccess": "心跳日志已清空",
"clearFailed": "清空心跳日志失败",
"status": "状态",
"time": "时间",
"duration": "耗时",
"result": "结果",
"error": "错误",
"statusOk": "正常",
"statusAlert": "告警",
"statusError": "错误",
"filterAll": "全部",
"noResult": "—"
},
"schedule": {
"title": "定时任务",
"loadFailed": "加载定时任务失败",
"empty": "暂无定时任务",
"name": "名称",
"pattern": "表达式",
"enabled": "启用",
"calls": "调用次数",
"createdAt": "创建时间",
"updatedAt": "更新时间",
"statusEnabled": "已启用",
"statusDisabled": "已禁用",
"unlimited": "无限制"
},
"history": {
"title": "对话历史",
"loadFailed": "加载历史消息失败",
"empty": "暂无历史消息",
"loadMore": "加载更多",
"messageCount": "{count} 条消息",
"selectAll": "全选",
"deleteSelectedConfirm": "确定要删除选中的 {count} 条消息吗?此操作将清空所有历史记录,且无法撤销。",
"deleteSuccess": "消息已删除",
"deleteFailed": "删除消息失败",
"role": {
"user": "用户",
"assistant": "助手",
"tool": "工具",
"system": "系统"
},
"filter": "按角色筛选",
"filterAll": "全部",
"expandContent": "展开",
"collapseContent": "收起"
},
"subagents": {
"title": "子智能体",
"subtitle": "管理当前 Bot 的自治子智能体。",
"add": "创建子智能体",
"emptyTitle": "暂无子智能体",
"emptyDescription": "点击上方按钮创建子智能体",
"description": "描述",
"descriptionPlaceholder": "输入子智能体描述",
"deleteConfirm": "确定要删除这个子智能体吗?",
"deleteSuccess": "子智能体已删除",
"deleteFailed": "删除子智能体失败",
"saveSuccess": "子智能体已保存",
"saveFailed": "保存子智能体失败",
"loadFailed": "加载子智能体失败",
"viewContext": "查看上下文",
"contextTitle": "子智能体上下文",
"contextEmpty": "暂无上下文消息",
"messagesCount": "{count} 条消息",
"usage": "用量",
"skills": "技能"
}
},
"usage": {
"title": "Token 用量",
"selectBot": "选择 Bot",
"selectBotPlaceholder": "选择一个 Bot 查看用量",
"timeRange": "时间范围",
"last7Days": "最近 7 天",
"last30Days": "最近 30 天",
"last90Days": "最近 90 天",
"noData": "所选时间段内无用量数据",
"loadFailed": "加载 Token 用量失败",
"totalInputTokens": "总输入 Tokens",
"totalOutputTokens": "总输出 Tokens",
"avgCacheHitRate": "平均缓存命中率",
"totalReasoningTokens": "总推理 Tokens",
"dailyTokens": "每日 Token 用量",
"cacheBreakdown": "缓存分布",
"cacheHitRate": "缓存命中率",
"chatInput": "对话输入",
"chatOutput": "对话输出",
"heartbeatInput": "心跳输入",
"heartbeatOutput": "心跳输出",
"cacheRead": "缓存读取",
"cacheWrite": "缓存写入",
"noCache": "无缓存",
"tokens": "Tokens",
"date": "日期",
"modelDistribution": "模型用量分布",
"filterByModel": "按模型筛选",
"allModels": "全部模型",
"dateFrom": "开始日期",
"dateTo": "结束日期",
"chartPie": "饼图",
"chartBar": "柱状图"
}
}