{ "navigation": { "chat": "对话", "model_group": "模型", "models": "模型", "credentials": "凭据", "agent_group": "智能体", "skills": "技能", "tools": "工具", "services": "服务", "channels_group": "频道", "show_more_channels": "更多", "show_less_channels": "收起", "config": "配置", "logs": "日志" }, "chat": { "welcome": "今天我能为您做些什么?", "welcomeDesc": "您可以询问我天气、设置或其他任何任务,我随时为您效劳。", "placeholder": "输入新消息...\n按 Enter 发送,Shift + Enter 换行", "newChat": "新建对话", "notConnected": "服务未运行,请先启动以进行对话。", "thinking": { "step1": "思考中...", "step2": "分析您的请求...", "step3": "准备回复...", "step4": "马上就好..." }, "history": "历史记录", "noHistory": "暂无对话历史", "historyLoadFailed": "加载历史记录失败", "historyOpenFailed": "打开该历史会话失败", "loadingMore": "加载更多...", "deleteSession": "删除会话", "messagesCount": "{{count}} 条消息", "noModel": "选择模型", "empty": { "noConfiguredModel": "尚未配置模型", "noConfiguredModelDescription": "请先配置至少一个带有 API Key 的 AI 模型,才能开始对话。", "goToModels": "去模型页配置", "noSelectedModel": "尚未设置模型", "noSelectedModelDescription": "您已配置模型,但尚未设置默认模型。请选择一个模型后开始对话", "notRunning": "服务尚未运行", "notRunningDescription": "请先启动网关服务后再开始对话,可点击顶部栏中的「启动服务」按钮。" }, "modelGroup": { "apikey": "API Key", "oauth": "OAuth", "local": "本地模型" } }, "header": { "gateway": { "stopDialog": { "title": "停止服务?", "description": "您确定要停止服务吗?这将断开您当前活动的聊天会话并停止推理。", "confirm": "停止服务" }, "action": { "start": "启动服务", "stop": "停止服务", "restart": "重启服务" }, "status": { "starting": "服务启动中...", "restarting": "服务重启中...", "stopping": "服务停止中..." }, "restartRequired": "切换默认模型后需要重启服务才能生效。" } }, "common": { "cancel": "取消", "save": "保存", "saving": "保存中...", "reset": "重置", "confirm": "确认" }, "labels": { "loading": "加载中..." }, "credentials": { "description": "管理已支持服务商的 OAuth 与 Token 凭据。", "loading": "正在加载凭据...", "providers": { "openai": { "description": "支持浏览器 OAuth、设备码和 Token 登录。" }, "anthropic": { "description": "使用 Token 登录 Claude。" }, "antigravity": { "description": "使用浏览器 OAuth 登录 Google Cloud Code Assist。" } }, "status": { "connected": "已连接", "needsRefresh": "即将过期", "expired": "已过期", "notLoggedIn": "未登录" }, "actions": { "browser": "浏览器 OAuth", "deviceCode": "设备码", "stopLoading": "停止加载", "saveToken": "保存", "logout": "退出登录" }, "logoutDialog": { "title": "确认退出登录?", "description": "这将删除 {{provider}} 的已保存凭据。" }, "fields": { "openaiToken": "OpenAI Token", "anthropicToken": "Anthropic Token" }, "labels": { "account": "账号", "email": "邮箱", "project": "项目" }, "errors": { "loadFailed": "加载凭据失败", "flowFailed": "查询授权流程失败", "loginFailed": "登录失败", "logoutFailed": "退出登录失败", "invalidBrowserResponse": "浏览器登录响应无效", "invalidDeviceResponse": "设备码响应无效", "popupBlocked": "无法打开新标签页,请允许弹窗后重试。" }, "flow": { "current": "当前授权状态", "pending": "等待授权中...", "success": "认证成功", "error": "认证失败", "expired": "授权会话已过期" }, "device": { "title": "OpenAI 设备码登录", "description": "请打开验证页面并输入下方代码,此页面会自动刷新授权状态。", "code": "用户代码", "url": "验证地址", "polling": "正在轮询登录状态...", "open": "打开验证页面" } }, "models": { "description": "为 AI 服务商配置 API Key。只有已配置的模型可用于对话。", "loadError": "加载模型列表失败", "noDefaultHintPrefix": "尚未设置默认模型,点击", "noDefaultHintSuffix": "设为默认。", "status": { "configured": "已配置", "unconfigured": "未配置" }, "badge": { "default": "默认" }, "action": { "edit": "编辑 API Key", "setDefault": "设为默认", "delete": "删除模型" }, "defaultOnSave": { "label": "默认模型", "description": "保存后自动将该模型设置为默认模型。" }, "add": { "button": "添加模型", "title": "添加自定义模型", "description": "添加兼容 OpenAI 或原生协议的模型端点。", "modelName": "模型别名", "modelNamePlaceholder": "例如 my-gpt4", "modelNameHint": "用于在对话中识别此模型的简短名称。", "modelId": "模型标识符", "modelIdPlaceholder": "例如 openai/gpt-4o", "modelIdHint": "格式:协议/模型ID。支持:openai、anthropic、gemini、groq 等。", "errorRequired": "此字段为必填项。", "errorDuplicateModelName": "模型别名已存在,请使用其他名称。", "saveError": "添加模型失败", "confirm": "添加模型" }, "delete": { "title": "确认删除模型?", "description": "「{{name}}」将从模型列表中永久移除,此操作不可撤销。", "confirm": "删除" }, "advanced": { "toggle": "高级选项" }, "field": { "apiBase": "API Base URL", "apiKey": "API Key", "apiKeyPlaceholder": "请输入 API Key", "apiKeyPlaceholderSet": "留空保持原有 Key 不变", "proxy": "HTTP 代理", "proxyHint": "可选。例如 http://127.0.0.1:7890", "authMethod": "认证方式", "authMethodHint": "认证方式:oauth、token。留空表示使用 API Key 认证。", "connectMode": "连接模式", "connectModeHint": "CLI 型服务商的连接模式:stdio 或 grpc。", "workspace": "工作目录", "workspaceHint": "CLI 型服务商的工作目录路径(如 GitHub Copilot)。", "requestTimeout": "请求超时(秒)", "requestTimeoutHint": "等待响应的最大秒数,0 表示使用默认值。", "rpm": "速率限制(RPM)", "rpmHint": "每分钟最大请求数,0 表示不限制。", "thinkingLevel": "思考级别", "thinkingLevelHint": "扩展思考预算:off、low、medium、high、xhigh、adaptive。", "maxTokensField": "Max Tokens 字段名", "maxTokensFieldHint": "覆盖请求中 max_tokens 的字段名,例如 max_completion_tokens。" }, "edit": { "title": "配置 {{name}}", "apiKeyHint": "已设置 API Key,留空表示不修改。", "oauthNote": "该服务商使用 OAuth 认证,无需 API Key。", "saveError": "保存失败" } }, "channels": { "loadError": "加载频道列表失败", "edit": "配置 {{name}}", "status": { "configured": "已配置" }, "name": { "telegram": "Telegram", "discord": "Discord", "slack": "Slack", "feishu": "飞书", "dingtalk": "钉钉", "line": "LINE", "qq": "QQ", "onebot": "OneBot", "wecom": "企业微信", "wecom_app": "企业微信应用", "wecom_aibot": "企业微信 AI 机器人", "whatsapp": "WhatsApp", "whatsapp_native": "WhatsApp Native", "pico": "Web", "maixcam": "MaixCam", "matrix": "Matrix", "irc": "IRC" }, "field": { "token": "Bot Token", "tokenPlaceholder": "输入 Bot Token", "botToken": "Bot Token", "appToken": "App Token", "appId": "App ID", "appSecret": "App Secret", "verificationToken": "Verification Token", "encryptKey": "Encrypt Key", "baseUrl": "API Base URL", "proxy": "HTTP 代理", "mentionOnly": "仅提及时响应", "typingEnabled": "输入中提示", "placeholderEnabled": "占位消息", "placeholderText": "占位文案", "groupTriggerMentionOnly": "群聊仅提及时响应", "groupTriggerPrefixes": "群聊触发前缀", "isLark": "Lark(国际版)", "allowFrom": "允许来源", "allowFromPlaceholder": "例如 123456, 789012", "allowOrigins": "允许来源域名", "allowOriginsPlaceholder": "例如 https://example.com, http://localhost:5173", "secretPlaceholder": "输入密钥", "secretHintSet": "已设置密钥,留空表示不修改。" }, "page": { "notFound": "不支持频道“{{name}}”。", "saveSuccess": "频道配置已保存。", "saveError": "保存频道配置失败", "enabled": "已启用", "docLink": "配置文档", "enableLabel": "启用频道" }, "form": { "desc": { "token": "机器人访问令牌,用于连接平台 API。", "botToken": "Bot Token,用于发送与接收消息。", "appToken": "App Token,用于 Socket 模式连接。", "appId": "应用唯一标识,用于平台鉴权。", "appSecret": "应用密钥,用于请求签名和鉴权。", "verificationToken": "事件回调验证令牌。", "encryptKey": "消息加密密钥,用于解密回调内容。", "baseUrl": "平台 API 地址,默认使用官方地址。", "proxy": "HTTP 代理地址,用于网络访问。", "mentionOnly": "在群聊中仅当明确提及时才响应。", "typingEnabled": "在生成回复时显示“正在输入”状态。", "placeholderEnabled": "在最终回复发送前,先发送临时占位消息。", "groupTriggerMentionOnly": "在群聊中仅当提及机器人时才响应。", "groupTriggerPrefixes": "群聊触发前缀,多个值用逗号分隔。", "isLark": "使用 Lark 国际版域名(open.larksuite.com)替代飞书域名(open.feishu.cn)。", "allowFrom": "允许访问的用户或群组 ID,多个值用逗号分隔。", "allowOrigins": "允许访问的来源域名,多个值用逗号分隔。", "wsUrl": "WebSocket 服务地址。", "reconnectInterval": "断线后的重连间隔(秒)。", "bridgeUrl": "桥接服务地址。", "sessionStorePath": "本地会话存储目录路径。", "useNative": "是否使用原生客户端模式连接。", "host": "服务监听主机地址。", "port": "服务监听端口。", "homeserver": "Matrix homeserver 地址。", "userId": "账号 ID。", "deviceId": "设备 ID。", "joinOnInvite": "收到邀请时是否自动加入房间。", "clientId": "应用客户端 ID,用于平台鉴权。", "corpId": "企业 ID。", "agentId": "企业应用 Agent ID。", "webhookUrl": "Webhook 完整地址。", "webhookHost": "Webhook 监听主机。", "webhookPort": "Webhook 监听端口。", "webhookPath": "Webhook 路径。", "replyTimeout": "回复超时时间(秒)。", "maxSteps": "最大步骤数。", "welcomeMessage": "新会话欢迎语内容。", "allowTokenQuery": "是否允许 URL Query 方式传递 Token。", "pingInterval": "连接心跳间隔(秒)。", "readTimeout": "读取超时时间(秒)。", "writeTimeout": "写入超时时间(秒)。", "maxConnections": "最大并发连接数。", "server": "IRC 服务器地址。", "tls": "是否启用 TLS 连接。", "nick": "机器人昵称。", "user": "IRC 用户名。", "realName": "显示名称。", "channels": "要加入的 IRC 频道列表。", "requestCaps": "连接时请求的 IRC 扩展能力列表。", "maxBase64FileSizeMiB": "本地文件转为 base64 上传的最大体积,单位 MiB;0 表示不限制,仅影响本地文件,不影响 URL 直传。", "genericField": "用于配置{{field}}。" } }, "validation": { "requiredField": "请填写该字段" } }, "pages": { "agent": { "load_error": "加载 Agent 支持信息失败。", "skills": { "description": "技能会从工作区、PicoClaw 全局目录和内置目录中加载。", "empty": "当前没有可用技能。", "import": "导入技能", "import_success": "技能导入成功。", "import_error": "导入技能失败。", "view": "查看", "delete": "删除", "delete_title": "删除技能?", "delete_description": "将从工作区技能中移除「{{name}}」。", "delete_confirm": "删除", "delete_success": "技能已删除。", "delete_error": "删除技能失败。", "viewer_title": "技能内容", "viewer_description": "这里展示当前生效的 SKILL.md 内容。", "loading_detail": "正在加载技能内容...", "load_detail_error": "加载技能内容失败。", "path": "技能路径", "no_description": "未提供描述。" }, "tools": { "description": "这里展示每个 Agent 工具当前是已启用、已禁用,还是被依赖条件阻塞。", "empty": "当前没有可用工具。", "enable": "启用", "disable": "禁用", "enable_success": "工具已启用。", "disable_success": "工具已禁用。", "toggle_error": "更新工具状态失败。", "config_key": "由 tools.{{key}} 控制", "status": { "enabled": "已启用", "disabled": "已禁用", "blocked": "被阻塞" }, "categories": { "automation": "自动化", "filesystem": "文件系统", "web": "网页", "communication": "通信", "skills": "技能", "agents": "Agent", "hardware": "硬件", "discovery": "发现" }, "reasons": { "requires_linux": "该工具仅在 Linux 主机上可用,并且需要暴露对应的设备文件。", "requires_skills": "需要先启用 `tools.skills`,该技能注册表工具才能使用。", "requires_subagent": "需要先启用 `tools.subagent`,`spawn` 才能委派任务。", "requires_mcp_discovery": "需要先启用 `tools.mcp.discovery`,MCP 发现工具才会可用。" } } }, "config": { "load_error": "加载配置失败,请刷新后重试。", "workspace": "工作目录", "workspace_hint": "智能体执行文件读写操作时使用的基础目录。", "restrict_workspace": "限制工作目录访问", "restrict_workspace_hint": "仅允许在工作目录内执行文件操作。", "exec_enabled": "允许命令执行", "exec_enabled_hint": "控制应用是否允许执行命令。关闭后,所有命令请求都不会执行。", "allow_remote": "允许远程命令执行", "allow_remote_hint": "开启后,来自远程会话或非本地上下文的请求也可以执行命令;关闭后,仅允许本地安全上下文执行命令。", "enable_deny_patterns": "启用黑名单", "enable_deny_patterns_hint": "开启后,应用会拦截匹配内置危险模式以及下方自定义命令黑名单的命令。", "exec_timeout_seconds": "命令超时(秒)", "exec_timeout_seconds_hint": "命令请求的最长运行时间。设置为 0 表示使用默认超时。", "custom_deny_patterns": "命令黑名单", "custom_deny_patterns_hint": "用于补充额外的命令拦截规则,每行一个正则表达式。命中任意一条规则的命令都会被阻止。", "custom_allow_patterns": "命令白名单", "custom_allow_patterns_hint": "用于补充额外的命令放行规则,每行一个正则表达式。命中任意一条规则的命令会跳过黑名单检查,但仍受其他安全限制约束。", "custom_patterns_placeholder": "^rm\\s+-rf\\b\n^git\\s+push\\b", "allow_shell_execution": "允许定时任务运行命令", "allow_shell_execution_hint": "开启后,定时任务默认允许运行命令。关闭后,必须显式传入 command_confirm=true 才能创建运行命令的定时任务。", "cron_exec_timeout": "定时命令超时(分钟)", "cron_exec_timeout_hint": "定时任务中命令的最长运行时间。设置为 0 表示不限制超时。", "max_tokens": "最大 Token 数", "max_tokens_hint": "单次模型响应允许的最大 Token 数。", "max_tool_iterations": "最大工具迭代次数", "max_tool_iterations_hint": "单个任务中允许的工具调用循环上限。", "summarize_threshold": "触发摘要的消息阈值", "summarize_threshold_hint": "消息数量达到该值后开始触发摘要。", "summarize_token_percent": "摘要目标 Token 百分比", "summarize_token_percent_hint": "在触发会话摘要时使用。", "session_scope": "会话隔离范围", "session_scope_hint": "定义不同用户/频道之间如何隔离会话上下文。", "session_scope_per_channel_peer": "按频道+用户隔离", "session_scope_per_channel_peer_desc": "同一频道内不同用户使用独立上下文。", "session_scope_per_channel": "按频道隔离", "session_scope_per_channel_desc": "同一频道内共享一个上下文。", "session_scope_per_peer": "按用户隔离", "session_scope_per_peer_desc": "同一用户跨频道共享一个上下文。", "session_scope_global": "全局共享", "session_scope_global_desc": "所有消息共用一个全局上下文。", "heartbeat_enabled": "心跳开关", "heartbeat_enabled_hint": "按间隔发送系统心跳。", "heartbeat_interval": "心跳间隔(分钟)", "heartbeat_interval_hint": "两次心跳发送之间的分钟间隔。", "devices_enabled": "启用设备功能", "devices_enabled_hint": "启用与本机硬件设备相关的能力。", "monitor_usb": "监听 USB", "monitor_usb_hint": "在启用设备功能时,监听 USB 插拔事件。", "autostart_label": "开机自启", "autostart_hint": "登录系统后自动启动 PicoClaw Web。", "autostart_unsupported": "当前平台不支持开机自启。", "autostart_load_error": "加载开机自启状态失败。", "server_port": "服务端口", "server_port_hint": "PicoClaw Web 的 HTTP 监听端口。", "lan_access": "启用局域网访问", "lan_access_hint": "允许局域网中的其他设备访问当前服务。", "allowed_cidrs": "允许访问网段", "allowed_cidrs_hint": "仅允许这些 CIDR 网段的客户端访问服务。可按行或逗号分隔;留空表示允许所有来源。", "allowed_cidrs_placeholder": "192.168.1.0/24\n10.0.0.0/8", "sections": { "agent": "智能体", "runtime": "运行时", "exec": "运行命令", "cron": "定时任务", "launcher": "服务参数", "devices": "设备" }, "open_raw": "原始配置", "back_to_visual": "可视化配置", "raw_json_title": "原始 JSON 配置", "json_placeholder": "请输入有效的 JSON 配置...", "save_success": "配置保存成功。", "save_error": "配置保存失败。", "reset_confirm_title": "重置更改", "reset_confirm_desc": "您确定要重置回上次保存的状态吗?", "reset_success": "更改已重置为上次保存的状态。", "invalid_json": "JSON 格式无效。", "format_success": "JSON 格式化成功。", "format_error": "JSON 格式无效。", "format": "格式化", "unsaved_changes": "您有未保存的更改。" }, "logs": { "clear": "清空日志", "empty": "等待日志中..." } } }