Files
picoclaw/web/frontend/src/i18n/locales/zh.json
T
uiyzzi be6bf9f6c6 Add virtual model support for multi-key expansion
Virtual models generated from multi-key expansion are now marked and
filtered during config persistence. Virtual models display with a badge
in the UI and cannot be set as default.
2026-03-25 00:00:36 +08:00

508 lines
22 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.
{
"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": "默认",
"virtual": "虚拟"
},
"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": "企业微信",
"whatsapp": "WhatsApp",
"whatsapp_native": "WhatsApp Native",
"pico": "Web",
"maixcam": "MaixCam",
"matrix": "Matrix",
"irc": "IRC",
"weixin": "微信"
},
"weixin": {
"warningTitle": "测试阶段,请谨慎使用",
"warningDesc": "微信 Channel 当前仍处于测试阶段,存在封号风险。请仅在充分了解风险的前提下使用。",
"bindEnableSuccess": "微信已连接,频道已自动启用。",
"bindTitle": "微信账号绑定",
"bindDesc": "使用微信扫描二维码以绑定您的个人微信账号。",
"bind": "绑定微信",
"rebind": "重新绑定",
"bound": "微信已绑定",
"notBound": "尚未绑定微信账号。",
"generating": "正在生成二维码...",
"scanHint": "打开微信,扫描二维码",
"scanned": "已扫码 — 请在微信中确认",
"expired": "二维码已过期",
"retry": "重试",
"refresh": "刷新二维码",
"errorGeneric": "发生错误,请重试。"
},
"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": "启用频道",
"restartRequiredTitle": "需要重启服务",
"restartRequiredDesc": "{{name}} 的最新配置已保存。重启服务后才能正式生效。"
},
"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": "仅允许在工作目录内执行文件操作。",
"tool_feedback_enabled": "工具反馈",
"tool_feedback_enabled_hint": "在每次执行工具前,先向当前会话发送一条简短的工具调用预览。",
"tool_feedback_max_args_length": "工具反馈参数预览长度",
"tool_feedback_max_args_length_hint": "每条工具反馈消息中展示的参数字符上限。设为 0 时使用默认值。",
"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 数。",
"context_window": "上下文窗口",
"context_window_hint": "模型输入上下文容量(Token 数)。留空使用默认值(最大 Token 数的 4 倍)。",
"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": "等待日志中..."
}
}
}