{
  "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": "无",
    "yes": "是",
    "no": "否"
  },
  "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": "头像链接",
    "timezone": "时区",
    "timezonePlaceholder": "例如 Asia/Tokyo",
    "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} 条记忆",
    "toolWebFetchPreview": "预览",
    "toolContactsCount": "{count} 个联系人",
    "toolEmailCount": "{count} 封邮件",
    "toolEmailAccounts": "{count} 个账户",
    "toolSpawnCount": "{count} 个任务",
    "unknownUser": "{platform}用户",
    "files": "文件管理",
    "sessions": "会话",
    "newSession": "新建会话",
    "deleteSession": "删除会话",
    "deleteSessionConfirm": "确定要删除此会话吗？",
    "renameSession": "重命名会话",
    "sessionTitle": "会话",
    "untitledSession": "未命名会话",
    "noSessions": "暂无会话",
    "sessionTypeHeartbeat": "心跳",
    "sessionTypeSchedule": "定时任务",
    "sessionTypeSubagent": "子智能体"
  },
  "models": {
    "title": "模型",
    "searchPlaceholder": "搜索服务商…",
    "addModel": "添加模型",
    "editModel": "编辑模型",
    "deleteModelConfirm": "确定要删除这个模型吗？",
    "searchModelPlaceholder": "搜索模型…",
    "searchNoResults": "没有匹配的模型",
    "emptyTitle": "暂无模型",
    "emptyDescription": "点击上方按钮为当前服务商添加模型",
    "clientType": "客户端类型",
    "clientTypePlaceholder": "选择客户端类型",
    "model": "模型 ID",
    "modelPlaceholder": "例如 gpt-4o",
    "displayName": "显示名称",
    "displayNamePlaceholder": "自定义显示名称",
    "dimensions": "向量维度",
    "dimensionsPlaceholder": "例如 1536",
    "compatibilities": "兼容性",
    "compatibility": {
      "vision": "视觉",
      "tool-call": "工具调用",
      "image-output": "图片生成",
      "reasoning": "推理"
    },
    "contextWindow": "上下文窗口",
    "contextWindowPlaceholder": "例如 128000",
    "testModel": "测试模型",
    "testOk": "正常",
    "testAuthError": "认证失败",
    "testError": "异常",
    "testFailed": "测试失败",
    "importModels": "导入模型",
    "importSuccess": "成功导入 {created} 个模型，跳过 {skipped} 个",
    "importFailed": "导入模型失败",
    "importConfirmHint": "将从该服务商的 API 导入模型，默认兼容性为视觉、工具调用和推理。",
    "showingCount": "显示 {count} / {total}",
    "showMore": "加载更多"
  },
  "provider": {
    "add": "添加服务商",
    "addBtn": "添加",
    "apiKey": "API 密钥",
    "apiKeyPlaceholder": "输入 API 密钥",
    "url": "接口地址",
    "urlPlaceholder": "输入接口地址",
    "deleteConfirm": "确定要删除这个服务商吗？",
    "saveChanges": "保存修改",
    "emptyTitle": "暂无服务商",
    "emptyDescription": "请先添加模型服务商，才能配置模型",
    "testConnection": "测试连接",
    "reachable": "可连接",
    "unreachable": "不可连接",
    "testFailed": "测试失败",
    "autoImport": "自动导入模型",
    "autoImportHint": "创建后自动从服务商获取并导入模型",
    "clientType": "客户端类型",
    "icon": "图标",
    "iconPlaceholder": "图标 URL 或标识（可选）",
    "enable": "启用",
    "enableHint": "只有启用的供应商的模型才会出现在可用模型列表中",
    "oauth": {
      "title": "OpenAI OAuth",
      "description": "使用你的 ChatGPT 账号为该提供商授权，以启用 Codex 兼容的 OpenAI 访问。",
      "createHint": "请先保存提供商，再到详情面板完成授权。",
      "authorize": "授权",
      "authorizeFailed": "启动授权失败",
      "authorizeSuccess": "授权成功",
      "revoke": "撤销授权",
      "revokeFailed": "撤销授权失败",
      "revokeSuccess": "授权已撤销",
      "callback": "回调地址",
      "statusFailed": "加载 OAuth 状态失败",
      "status": {
        "checking": "正在检查授权状态...",
        "authorized": "已授权",
        "expired": "授权已过期，请重新授权。",
        "missing": "尚未授权。",
        "notConfigured": "当前提供商未正确配置 OAuth。"
      }
    }
  },
  "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/Tokyo",
    "ignoreHTTPSErrors": "忽略 HTTPS 错误",
    "core": "浏览器内核",
    "chromium": "Chromium",
    "firefox": "Firefox",
    "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",
    "createBotWaitHint": "首次创建时可能需要拉取基础镜像，提交后请耐心等待片刻。",
    "editBot": "编辑 Bot",
    "deleteConfirm": "确定要删除这个 Bot 吗？",
    "renameSuccess": "Bot 名称已更新",
    "renameFailed": "更新 Bot 名称失败",
    "deleteSuccess": "Bot 已删除",
    "emptyTitle": "暂无 Bot",
    "emptyDescription": "点击右上角按钮创建你的第一个 Bot",
    "displayName": "名称",
    "displayNamePlaceholder": "给你的 Bot 起个名字",
    "avatarUrl": "头像链接",
    "avatarUrlPlaceholder": "输入头像图片地址",
    "timezone": "时区",
    "timezonePlaceholder": "例如 Asia/Shanghai",
    "timezoneInherited": "继承用户或系统时区",
    "timezoneInheritedHint": "留空则继承用户时区，若用户未设置则回退到系统时区。",
    "editAvatar": "编辑头像",
    "editAvatarDescription": "设置 Bot 头像图片的链接地址",
    "editTimezone": "编辑时区",
    "editTimezoneDescription": "为这个 Bot 设置独立时区。",
    "avatarUpdateSuccess": "头像已更新",
    "avatarUpdateFailed": "更新头像失败",
    "timezoneUpdateSuccess": "时区已更新",
    "timezoneUpdateFailed": "更新时区失败",
    "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",
      "heartbeat": "心跳",
      "compaction": "上下文压缩",
      "schedule": "定时任务",
      "history": "对话历史",
      "skills": "技能",
      "email": "邮件",
      "files": "文件",
      "access": "访问控制",
      "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 尚未创建容器，创建后可启用运行环境能力。",
      "legacyWarning": "当前容器使用旧版架构，需要重建以获得完整兼容性。重建时数据会自动保留。",
      "legacyRecreate": "重建容器",
      "legacyRecreateSuccess": "容器重建成功",
      "createHint": "容器会基于当前镜像创建；如你显式开启恢复，则会在创建后尝试恢复已保留的数据。",
      "createRestoreDataLabel": "创建后恢复已保留数据",
      "createRestoreDataDescription": "如果存在之前导出的备份或旧版 bind mount 数据，将在容器创建后恢复到 `/data`。",
      "createImageLabel": "基础镜像",
      "createImageDescription": "作为容器基础环境的 Docker 镜像（如 debian:bookworm-slim、alpine:latest、ubuntu:24.04）。留空则使用默认镜像。",
      "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": "快照回滚成功",
      "pullingImage": "正在拉取镜像...",
      "creatingContainer": "正在创建容器...",
      "preservingData": "正在备份数据，数据量较大时可能需要一段时间...",
      "restoringData": "正在迁移数据，数据量较大时可能需要一段时间...",
      "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": "对话模型",
      "titleModel": "标题模型",
      "titleModelDescription": "选择一个小模型来自动生成会话标题。留空则禁用自动标题生成。",
      "titleModelPlaceholder": "未启用（不自动生成标题）",
      "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": "推理等级",
      "reasoningEffortNone": "无",
      "reasoningEffortLow": "低",
      "reasoningEffortMedium": "中",
      "reasoningEffortHigh": "高",
      "reasoningEffortXHigh": "超高",
      "heartbeatEnabled": "启用心跳",
      "heartbeatDescription": "定期触发 Agent 检查是否有需要关注的事项",
      "heartbeatInterval": "心跳间隔（分钟）",
      "heartbeatModel": "心跳模型",
      "heartbeatModelDescription": "选择心跳检查使用的模型，未设置时默认使用聊天模型。",
      "heartbeatModelPlaceholder": "使用聊天模型（默认）",
      "compactionEnabled": "启用上下文压缩",
      "compactionDescription": "上下文过大时自动摘要旧消息以节省 token",
      "compactionThreshold": "压缩阈值（输入 token 数）",
      "compactionModel": "压缩模型",
      "compactionModelDescription": "选择用于摘要的模型，未设置时默认使用聊天模型。",
      "compactionModelPlaceholder": "使用聊天模型（默认）",
      "browserContext": "浏览器上下文",
      "browserContextPlaceholder": "选择浏览器上下文（未配置时不启用）",
      "allowGuest": "ACL 默认行为",
      "allowGuestPersonalHint": "ACL 规则适用于所有类型的 Bot。",
      "loopDetectionTitle": "自动检测并阻止模型循环输出",
      "searchModel": "搜索模型…",
      "noModel": "暂无可选模型",
      "saveSuccess": "设置已保存",
      "save": "保存设置",
      "dangerZone": "危险操作",
      "deleteBotDescription": "删除此 Bot 后无法恢复，请谨慎操作。",
      "deleteBot": "删除 Bot"
    },
    "access": {
      "title": "访问控制",
      "subtitle": "按优先级排序的规则控制谁可以触发此 Bot 的聊天。首条匹配规则生效；无规则匹配时采用默认行为。",
      "defaultEffectTitle": "默认行为",
      "defaultEffectDescription": "当没有规则匹配入站消息时应用此策略。",
      "defaultEffectSaved": "默认行为已更新",
      "effectAllow": "允许",
      "effectDeny": "拒绝",
      "rulesTitle": "规则",
      "rulesDescription": "拖动左侧手柄调整顺序。数字越小越先评估，首条匹配规则的行为生效。",
      "addRule": "添加规则",
      "editRule": "编辑规则",
      "rulesEmpty": "暂无规则",
      "rulesEmptyDescription": "添加规则以在默认行为之外控制访问。",
      "priority": "优先级",
      "priorityPlaceholder": "例如 100",
      "dragToReorder": "拖动排序",
      "rulesReordered": "规则顺序已更新",
      "reorderFailed": "更新规则顺序失败",
      "enabled": "启用",
      "effect": "行为",
      "subjectKind": "主体",
      "subjectAll": "所有人",
      "subjectChannelType": "平台类型",
      "subjectChannelIdentity": "身份",
      "subjectAllLabel": "所有人",
      "subjectChannelTypeLabel": "{channel} 平台用户",
      "channelType": "平台类型",
      "channelTypePlaceholder": "输入平台类型（如 telegram）",
      "identitySelector": "平台身份",
      "selectIdentity": "搜索并选择平台身份",
      "searchIdentity": "搜索平台身份",
      "noIdentityCandidates": "暂无可选平台身份",
      "description": "描述",
      "descriptionPlaceholder": "可选备注",
      "deleteConfirmTitle": "删除规则",
      "deleteConfirmDescription": "确定要删除此规则吗？",
      "ruleSaved": "规则已保存",
      "saveFailed": "保存失败",
      "deleteSuccess": "规则已删除",
      "deleteFailed": "删除规则失败",
      "sourceScopeTitle": "来源范围",
      "sourceScopeDescription": "可选地将规则限制到某个平台、会话类型或指定会话/线程。",
      "sourceChannel": "来源平台",
      "anyChannel": "任意平台",
      "conversationType": "会话类型",
      "anyConversationType": "任意会话类型",
      "privateConversationType": "私聊",
      "groupConversationType": "群聊",
      "threadConversationType": "线程",
      "conversationSource": "会话",
      "conversationSourceDescription": "按名称、平台或会话 ID 搜索。列表为本 Bot 曾出现过的群聊/线程路由：选「平台身份」时按该身份筛选；选「平台类型」时按该平台上的全部会话。",
      "selectConversationSource": "搜索或选择会话",
      "searchConversationSource": "搜索会话",
      "noObservedConversations": "暂无符合的历史会话。可手动填写 ID，或确认该 Bot 在对应会话中已有消息（含私聊）。",
      "manualConversationIds": "手动填写会话 ID",
      "manualConversationIdsHint": "若列表中没有目标会话，请从平台复制原始会话 ID、线程 ID。",
      "pickIdentityForConversationSearch": "请先在上方选择平台身份，才能按历史记录搜索会话。",
      "pickChannelTypeForConversationSearch": "请先在上方填写或选择平台类型，才能按该平台上的历史会话搜索。",
      "conversationIdManualHint": "当前仅能手动填写。搜索会话需先选择平台身份。",
      "conversationId": "会话 ID",
      "conversationIdPlaceholder": "输入会话 ID",
      "threadId": "线程 ID",
      "threadIdPlaceholder": "输入线程 ID",
      "clearScope": "清空范围",
      "lastObserved": "最近出现"
    },
    "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": "保存平台配置后会生成回调地址。",
      "showSecretField": "显示{field}",
      "hideSecretField": "隐藏{field}",
      "feishuWebhookSecurityHint": "出于安全考虑，Webhook 模式必须配置 Encrypt Key 或 Verification Token 之一；未受保护的回调地址不应直接暴露在公网上。",
      "feishuWebhookSecretRequired": "出于安全考虑，请至少配置 Encrypt Key 或 Verification Token 之一。",
      "noAvailableTypes": "所有平台类型均已配置",
      "weixinQr": {
        "title": "扫码登录",
        "description": "使用微信扫描二维码以连接微信账号。",
        "startScan": "获取二维码",
        "waitingScan": "打开微信扫描此二维码",
        "scanned": "已扫码 — 请在手机上确认",
        "expired": "二维码已过期",
        "refresh": "刷新二维码",
        "success": "微信连接成功！",
        "retry": "重试"
      },
      "types": {
        "feishu": "飞书",
        "discord": "Discord",
        "qq": "QQ",
        "matrix": "Matrix",
        "telegram": "Telegram",
        "weixin": "微信",
        "web": "Web",
        "local": "本地"
      },
      "typesShort": {
        "feishu": "飞",
        "discord": "DC",
        "qq": "QQ",
        "matrix": "MX",
        "telegram": "TG",
        "weixin": "WX",
        "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": "加载技能失败"
    },
    "compaction": {
      "title": "压缩记录",
      "loadFailed": "加载压缩记录失败",
      "empty": "暂无压缩记录",
      "loadMore": "加载更多",
      "clearLogs": "清空记录",
      "clearConfirm": "确定要清空所有压缩记录吗？此操作不可撤销。",
      "clearSuccess": "压缩记录已清空",
      "clearFailed": "清空压缩记录失败",
      "status": "状态",
      "time": "时间",
      "duration": "耗时",
      "error": "错误",
      "statusOk": "成功",
      "statusPending": "进行中",
      "statusError": "错误",
      "filterAll": "全部"
    },
    "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": "收起"
    }
  },
  "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": "心跳输出",
    "scheduleInput": "定时任务输入",
    "scheduleOutput": "定时任务输出",
    "totalInput": "总输入",
    "totalOutput": "总输出",
    "cacheRead": "缓存读取",
    "cacheWrite": "缓存写入",
    "noCache": "无缓存",
    "tokens": "Tokens",
    "date": "日期",
    "modelDistribution": "模型用量分布",
    "filterByModel": "按模型筛选",
    "allModels": "全部模型",
    "sessionType": "会话类型",
    "allTypes": "全部类型",
    "chat": "对话",
    "heartbeat": "心跳",
    "schedule": "定时任务",
    "inputTokens": "输入 Tokens",
    "outputTokens": "输出 Tokens",
    "dateFrom": "开始日期",
    "dateTo": "结束日期",
    "chartPie": "饼图",
    "chartBar": "柱状图"
  }
}
