diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index 3d55bf1cc4c1..4dd037a53919 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -143,7 +143,7 @@ "goToDashboard": "前往仪表板", "checkSystemStatus": "查看系统状态", "selectModel": "选择模型", - "combos": "Combos", + "combos": "组合", "noModelsFound": "未找到 Model", "clear": "清除", "done": "完成", @@ -164,7 +164,7 @@ "minutesAgo": "分钟前", "a": "A", "liveAutoRefreshing": "实时自动刷新中", - "webSearch": "Web Search", + "webSearch": "网络搜索", "anthropicPrefixPlaceholder": "Anthropic 前缀", "addModelToCombo": "添加模型到组合", "failedToLoad": "加载失败", @@ -172,7 +172,7 @@ "enableCloud": "启用云端", "expirationBannerExpiringSoon": "过期横幅即将过期即将", "retry": "重试", - "embeddings": "Embeddings", + "embeddings": "向量嵌入", "errorCount": "错误数量", "backupReasonManual": "备份原因手动", "safeSearchModerate": "安全搜索中等", @@ -331,12 +331,12 @@ "enableCombo": "启用组合", "removeProviderOverrideAria": "移除提供商覆盖", "nodeVersion": "Node 版本", - "openai": "Openai", + "openai": "OpenAI", "exportFailedWithError": "导出失败:{error}", "proxyConfigured": "代理已配置", "concurrencyPerModel": "每个模型并发数", "protocolTasksLabel": "协议任务标签", - "oauthProviders": "Oauth Providers", + "oauthProviders": "OAuth 提供商", "lockedCount": "已锁定数量", "deleteChainConfirm": "删除此后备链?", "recentTranslations": "最近翻译", @@ -430,7 +430,7 @@ "globalProxyDesc": "全局代理说明", "latencyP99": "延迟P99", "connectingToCloud": "正在连接云端", - "responses": "Responses", + "responses": "响应", "errorDeleting": "错误删除", "openaiPrefixPlaceholder": "OpenAI 前缀", "enterPassword": "输入密码", @@ -456,13 +456,13 @@ "latencyP95": "延迟P95", "textToSpeech": "文本转语音", "searchType": "搜索类型", - "messages": "Messages", + "messages": "消息", "aggregatorsGateways": "聚合器与网关", "comboStrategyAria": "Combo 策略", "input": "输入", "testingConnection": "正在测试连接", "excludeDomains": "排除域名", - "webCookieProviders": "Web Cookie Providers", + "webCookieProviders": "网页 Cookie 提供商", "allTestsPassed": "全部测试通过", "openaiCompatibleName": "OpenAI 兼容名称", "warningCostOptimizedPartialPricing": "部分模型缺少定价,成本优化结果可能不完整。", @@ -641,11 +641,11 @@ "safeSearchOff": "Safe Search 关闭", "nameHint": "名称提示", "debugToggle": "调试开关", - "embedding": "Embedding", + "embedding": "向量嵌入", "issuesLabel": "问题标签", "optionAny": "任意选项", "maxNestingDepth": "最大嵌套深度", - "rerank": "Rerank", + "rerank": "重排序", "checking": "正在检查", "getStarted": "开始使用", "restoreSuccess": "恢复成功", @@ -812,123 +812,123 @@ "contextCaveman": "Caveman", "contextRtk": "RTK", "contextCombos": "引擎组合", - "routingSection": "Routing", - "protocolsSection": "Protocols", - "agentsAiSection": "Agents & AI", - "cacheContextSection": "Cache & Context", - "analyticsSection": "Analytics", - "costsSection": "Costs", - "monitoringSection": "Monitoring", - "auditSecuritySection": "Audit & Security", - "devtoolsSection": "Dev Tools", - "configurationSection": "Configuration", - "aiFeaturesSection": "AI Features", + "routingSection": "路由", + "protocolsSection": "协议", + "agentsAiSection": "代理与 AI", + "cacheContextSection": "缓存与上下文", + "analyticsSection": "分析", + "costsSection": "成本", + "monitoringSection": "监控", + "auditSecuritySection": "审计与安全", + "devtoolsSection": "开发工具", + "configurationSection": "配置", + "aiFeaturesSection": "AI 功能", "mcp": "MCP", "a2a": "A2A", - "apiEndpoints": "API Endpoints", - "batchFiles": "Files", - "analyticsEvals": "Evals", - "analyticsSearch": "Search", - "analyticsUtilization": "Utilization", - "analyticsComboHealth": "Combo Health", - "analyticsCompression": "Compression", - "costsBudget": "Budget", - "costsQuotaShare": "Quota Sharing", - "costsPricing": "Pricing", - "logsProxy": "Proxy Logs", - "logsConsole": "Console", - "logsActivity": "Activity", - "auditMcp": "MCP Audit", + "apiEndpoints": "API 端点", + "batchFiles": "文件", + "analyticsEvals": "评估", + "analyticsSearch": "搜索", + "analyticsUtilization": "资源利用率", + "analyticsComboHealth": "组合健康度", + "analyticsCompression": "压缩分析", + "costsBudget": "预算", + "costsQuotaShare": "配额共享", + "costsPricing": "定价", + "logsProxy": "代理日志", + "logsConsole": "控制台", + "logsActivity": "活动", + "auditMcp": "MCP 审计", "auditA2a": "A2A 审计", - "settingsGeneral": "General", - "settingsAppearance": "Appearance", - "settingsAi": "AI Settings", - "settingsSecurity": "Security", + "settingsGeneral": "通用", + "settingsAppearance": "外观", + "settingsAi": "AI 设置", + "settingsSecurity": "安全", "settingsFeatureFlags": "特性开关", "settingsAuthz": "授权", - "settingsRouting": "Routing", - "settingsResilience": "Resilience", - "settingsAdvanced": "Advanced", + "settingsRouting": "路由", + "settingsResilience": "弹性", + "settingsAdvanced": "高级", "omniProxySection": "OmniProxy", - "quotaTracker": "Provider Quota", - "providerQuota": "Provider Quota", - "runtime": "Runtime", - "consoleLogs": "Console Logs", - "globalRouting": "Global Routing", - "mitmProxy": "MITM Proxy", + "quotaTracker": "提供商配额", + "providerQuota": "提供商配额", + "runtime": "运行时", + "consoleLogs": "控制台日志", + "globalRouting": "全局路由", + "mitmProxy": "MITM 代理", "oneProxy": "1Proxy", - "agenticFeaturesSection": "Agentic Features", - "otherFeaturesSection": "Other Features", - "compressionContextGroup": "Compression Context", - "toolsGroup": "Tools", - "integrationsGroup": "Integrations", - "proxyGroup": "Proxy", - "costsParametersGroup": "Costs Parameters", - "auditGroup": "Audit", - "batchGroup": "Batch", - "homeSubtitle": "Dashboard overview", - "providersSubtitle": "Manage AI providers", - "quotaTrackerSubtitle": "Track usage limits", - "providerQuotaSubtitle": "Track provider usage limits", - "runtimeSubtitle": "Realtime resilience & sessions", - "contextCombosSubtitle": "Combine compression engines", - "cliToolsSubtitle": "Configure CLI runtimes", - "agentsSubtitle": "Manage local agents", - "cloudAgentsSubtitle": "Manage cloud-based agents", - "apiEndpointsSubtitle": "Expose custom endpoints", - "proxySubtitle": "HTTP proxy settings", - "mitmProxySubtitle": "MITM interception", - "oneProxySubtitle": "Public proxy gateway", + "agenticFeaturesSection": "智能体功能", + "otherFeaturesSection": "其他功能", + "compressionContextGroup": "压缩上下文", + "toolsGroup": "工具", + "integrationsGroup": "集成", + "proxyGroup": "代理", + "costsParametersGroup": "成本参数", + "auditGroup": "审计", + "batchGroup": "批处理", + "homeSubtitle": "仪表盘概览", + "providersSubtitle": "管理 AI 提供商", + "quotaTrackerSubtitle": "跟踪用量上限", + "providerQuotaSubtitle": "跟踪提供商用量上限", + "runtimeSubtitle": "实时弹性与会话", + "contextCombosSubtitle": "组合压缩引擎", + "cliToolsSubtitle": "配置 CLI 运行时", + "agentsSubtitle": "管理本地代理", + "cloudAgentsSubtitle": "管理云端代理", + "apiEndpointsSubtitle": "暴露自定义端点", + "proxySubtitle": "HTTP 代理设置", + "mitmProxySubtitle": "MITM 拦截", + "oneProxySubtitle": "公网代理网关", "leaderboard": "排行榜", "profile": "个人资料", "tokens": "Token 管理", "leaderboardSubtitle": "游戏化排名", "profileSubtitle": "用户成就", "tokensSubtitle": "管理 Token 余额", - "usageSubtitle": "Traffic and usage stats", - "analyticsComboHealthSubtitle": "Combo target reliability", - "analyticsUtilizationSubtitle": "Provider utilization", - "costsSubtitle": "Spend breakdown", - "cacheSubtitle": "Cache hit rates", - "analyticsCompressionSubtitle": "Token savings stats", - "analyticsSearchSubtitle": "Search tool analytics", - "analyticsEvalsSubtitle": "Eval suite results", - "logsSubtitle": "Application logs", - "logsProxySubtitle": "Proxy traffic logs", - "consoleLogsSubtitle": "Console output", - "logsActivitySubtitle": "User activity log", - "healthSubtitle": "System health check", - "costsPricingSubtitle": "Per-model pricing rules", - "costsBudgetSubtitle": "Budget limits", - "costsQuotaShareSubtitle": "Share provider quotas across keys", - "auditLogSubtitle": "Authorization audit", - "auditMcpSubtitle": "MCP server audit", - "auditA2aSubtitle": "A2A protocol audit", - "translatorSubtitle": "Format conversion", - "playgroundSubtitle": "Test prompts live", - "searchToolsSubtitle": "Search tool registry", - "memorySubtitle": "Persistent agent memory", - "omniSkillsSubtitle": "Sandbox skill registry", - "agentSkillsSubtitle": "A2A skill registry", - "mcpSubtitle": "MCP server controls", - "a2aSubtitle": "A2A protocol server", - "mediaSubtitle": "Cached media files", - "batchFilesSubtitle": "Batch input/output files", - "settingsSubtitle": "All settings", - "settingsGeneralSubtitle": "App basics", - "settingsAppearanceSubtitle": "Theme and layout", - "settingsAiSubtitle": "AI behavior defaults", - "globalRoutingSubtitle": "Global routing rules", - "settingsResilienceSubtitle": "Retries and breakers", - "settingsAdvancedSubtitle": "Power user options", - "settingsSecuritySubtitle": "Auth and encryption", + "usageSubtitle": "流量与用量统计", + "analyticsComboHealthSubtitle": "组合目标可靠性", + "analyticsUtilizationSubtitle": "提供商资源利用率", + "costsSubtitle": "支出明细", + "cacheSubtitle": "缓存命中率", + "analyticsCompressionSubtitle": "Token 节省统计", + "analyticsSearchSubtitle": "搜索工具分析", + "analyticsEvalsSubtitle": "评估套件结果", + "logsSubtitle": "应用日志", + "logsProxySubtitle": "代理流量日志", + "consoleLogsSubtitle": "控制台输出", + "logsActivitySubtitle": "用户活动日志", + "healthSubtitle": "系统健康检查", + "costsPricingSubtitle": "按模型计费规则", + "costsBudgetSubtitle": "预算上限", + "costsQuotaShareSubtitle": "在多个密钥间共享提供商配额", + "auditLogSubtitle": "授权审计", + "auditMcpSubtitle": "MCP 服务器审计", + "auditA2aSubtitle": "A2A 协议审计", + "translatorSubtitle": "格式转换", + "playgroundSubtitle": "实时测试提示词", + "searchToolsSubtitle": "搜索工具注册表", + "memorySubtitle": "持久代理记忆", + "omniSkillsSubtitle": "沙箱技能注册表", + "agentSkillsSubtitle": "A2A 技能注册表", + "mcpSubtitle": "MCP 服务器控制", + "a2aSubtitle": "A2A 协议服务器", + "mediaSubtitle": "已缓存的媒体文件", + "batchFilesSubtitle": "批处理输入/输出文件", + "settingsSubtitle": "全部设置", + "settingsGeneralSubtitle": "应用基础设置", + "settingsAppearanceSubtitle": "主题与布局", + "settingsAiSubtitle": "AI 行为默认值", + "globalRoutingSubtitle": "全局路由规则", + "settingsResilienceSubtitle": "重试与熔断器", + "settingsAdvancedSubtitle": "高级用户选项", + "settingsSecuritySubtitle": "认证与加密", "settingsFeatureFlagsSubtitle": "切换系统能力", "settingsAuthzSubtitle": "路由清单与绕过策略", - "docsSubtitle": "Documentation", - "issuesSubtitle": "Report a bug", - "changelogSubtitle": "Release notes", - "settingsSidebar": "Sidebar", - "settingsSidebarSubtitle": "Customize sidebar layout" + "docsSubtitle": "文档", + "issuesSubtitle": "反馈缺陷", + "changelogSubtitle": "发布说明", + "settingsSidebar": "侧边栏", + "settingsSidebarSubtitle": "自定义侧边栏布局" }, "webhooks": { "title": "Webhook", @@ -1011,7 +1011,7 @@ "viewDetails": "查看详情", "closeDetails": "关闭详情", "notAvailable": "—", - "system": "system", + "system": "系统", "previous": "上一页", "next": "下一页", "mcpAudit": "MCP 审计", @@ -1082,48 +1082,48 @@ "mediaDescription": "生成图像、视频和音乐", "themes": "主题", "themesDescription": "为整个仪表板选择颜色主题", - "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers", - "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.", - "limitsDescription": "Configure rate limits and quotas per API key and provider", - "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts", - "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance", - "batchDescription": "Process large volumes of requests asynchronously with batched API calls", - "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.", - "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.", - "contextCombosDescription": "Define how engines are combined for different routing scenarios.", - "changelogDescription": "Stay up to date with the latest platform features and announcements.", - "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents", - "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval", - "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing", - "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution", - "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration", - "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini", - "playgroundDescription": "Test prompts interactively with live provider responses and format inspection", - "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking", - "logsDescription": "Real-time request logs, error traces, and streaming event inspector", - "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events", - "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications", - "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database", - "proxyDescription": "Configure upstream proxy settings for outbound provider connections", - "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides", - "batchFilesDescription": "Browse and manage batch job output files and results", - "analyticsEvalsDescription": "Model evaluation results and performance benchmarks", - "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking", - "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning", - "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations", - "analyticsCompressionDescription": "Context compression analytics and token savings", - "costsBudgetDescription": "Budget limits and spending alerts per API key and provider", - "costsPricingDescription": "Custom pricing configuration for token cost calculations", - "logsProxyDescription": "Upstream proxy request logs and traffic inspection", - "logsConsoleDescription": "Application console output and debug logs", - "logsActivityDescription": "Audit trail of user actions and system events", - "auditMcpDescription": "MCP tool invocation audit trail and compliance records", + "costsDescription": "跟踪支出、分析趋势,统一管理你在所有提供商上的 AI 预算", + "cacheDescription": "监控提供商提示词缓存效率与本地语义响应复用情况。", + "limitsDescription": "为每个 API 密钥与提供商配置速率限制与配额", + "runtimeDescription": "实时运行时观测 —— 熔断器、冷却、模型锁定、会话与配额告警", + "apiManagerDescription": "为你的 OmniRoute 实例管理 API 密钥与访问控制", + "batchDescription": "通过批量 API 调用异步处理大批量请求", + "contextCavemanDescription": "基于规则的消息压缩、语言包、分析与输出模式控制。", + "contextRtkDescription": "面向工具输出、终端日志和构建结果的命令感知型压缩。", + "contextCombosDescription": "为不同的路由场景定义引擎组合方式。", + "changelogDescription": "了解平台最新功能与公告。", + "agentsDescription": "管理与配置 AI 代理工具:Codex、Devin、Jules 以及自定义代理", + "cloudAgentsDescription": "编排云端 AI 代理,实时跟踪任务状态并审批方案", + "memoryDescription": "持久会话记忆,支持语义检索与 FTS5 全文索引", + "skillsDescription": "安装与管理用于自动化提示词与工具执行的沙箱技能", + "agentSkillsDescription": "面向代理的技能目录,支持一键复制 URL 用于 AI 客户端集成", + "translatorDescription": "在不同 API 格式间翻译并测试提示词:OpenAI ↔ Claude ↔ Gemini", + "playgroundDescription": "交互式测试提示词,实时查看提供商响应并检视格式", + "searchToolsDescription": "搜索分析、提供商分布、缓存命中率与成本跟踪", + "logsDescription": "实时请求日志、错误追踪与流式事件检视器", + "auditDescription": "API 密钥使用、MCP 工具调用与策略事件的合规审计跟踪", + "webhooksDescription": "配置 Webhook 端点以接收实时事件通知", + "healthDescription": "系统健康概览:提供商、熔断器、速率限制与数据库", + "proxyDescription": "为外发的提供商连接配置上游代理设置", + "apiEndpointsDescription": "管理自定义 API 端点配置与路由覆盖", + "batchFilesDescription": "浏览与管理批处理任务的输出文件与结果", + "analyticsEvalsDescription": "模型评估结果与性能基准", + "analyticsSearchDescription": "搜索查询分析、缓存命中率与成本跟踪", + "analyticsUtilizationDescription": "提供商资源利用率指标与容量规划", + "analyticsComboHealthDescription": "组合路由配置的实时健康度与性能", + "analyticsCompressionDescription": "上下文压缩分析与 Token 节省情况", + "costsBudgetDescription": "按 API 密钥与提供商设置预算上限与支出告警", + "costsPricingDescription": "用于 Token 成本计算的自定义计费配置", + "logsProxyDescription": "上游代理请求日志与流量检视", + "logsConsoleDescription": "应用控制台输出与调试日志", + "logsActivityDescription": "用户操作与系统事件的审计跟踪", + "auditMcpDescription": "MCP 工具调用审计跟踪与合规记录", "auditA2a": "A2A 审计", "auditA2aDescription": "A2A 任务执行审计跟踪、状态变更与技能调用记录", - "settingsGeneralDescription": "Storage, database, and general instance configuration", - "settingsAppearanceDescription": "Theme, branding, and visual customization", - "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings", - "settingsSecurityDescription": "Authentication, authorization, and access control settings", + "settingsGeneralDescription": "存储、数据库与实例通用配置", + "settingsAppearanceDescription": "主题、品牌与视觉自定义", + "settingsAiDescription": "AI 行为、思考预算、视觉与记忆设置", + "settingsSecurityDescription": "认证、授权与访问控制设置", "featureFlags": "特性开关", "featureFlagsDescription": "控制系统能力与实验性功能", "featureFlagsActive": "{count} 个已启用", @@ -1147,11 +1147,11 @@ "featureFlagsNoResults": "没有匹配的特性开关", "featureFlagsSaved": "已更新特性开关", "featureFlagsError": "更新特性开关失败", - "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings", - "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration", - "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings", - "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging", - "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining" + "settingsRoutingDescription": "路由规则、模型别名、组合默认值与降级设置", + "settingsResilienceDescription": "熔断器、重试与回退配置", + "settingsAdvancedDescription": "高级 payload 规则、请求限制与代理 API 设置", + "mitmProxyDescription": "为流量检视与调试配置 MITM 代理", + "oneProxyDescription": "配置 1Proxy 以实现高级代理链路" }, "home": { "quickStart": "快速入门", @@ -1453,7 +1453,22 @@ "managementApiAccess": "管理 API 访问", "expirationDate": "过期日期", "managementAccess": "管理访问权限", - "allowedConnections": "允许的连接" + "allowedConnections": "允许的连接", + "searchPlaceholder": "按名称或 token 搜索...", + "activeOnly": "仅显示启用", + "filterStatus": "状态", + "filterType": "类型", + "filterAll": "全部", + "filterStatusActive": "启用", + "filterStatusDisabled": "已禁用", + "filterStatusBanned": "已封禁", + "filterStatusExpired": "已过期", + "filterTypeStandard": "标准", + "filterTypeManage": "管理", + "filterTypeRestricted": "受限", + "shownOf": "已显示 {shown} / {total}", + "emptyFilterTitle": "没有密钥匹配当前筛选条件", + "emptyFilterClear": "清除筛选" }, "auditLog": { "title": "审核日志", @@ -1490,7 +1505,24 @@ "result": "结果", "imageDescription": "使用 OpenAI、xAI、Together、Hyperbolic、SD WebUI、ComfyUI 等根据文本提示生成图像。", "videoDescription": "通过 ComfyUI 或 SD WebUI 使用 AnimateDiff、Stable Video Diffusion 创建视频。", - "musicDescription": "通过 ComfyUI 使用 Stable Audio Open 或 MusicGen 生成音乐。" + "musicDescription": "通过 ComfyUI 使用 Stable Audio Open 或 MusicGen 生成音乐。", + "kinds": { + "embedding": "向量嵌入", + "image": "图像", + "imageToText": "图像转文字", + "tts": "文字转语音", + "stt": "语音转文字", + "webSearch": "网络搜索", + "webFetch": "网页抓取", + "video": "视频", + "music": "音乐" + }, + "noProviders": "尚未为此类型配置任何提供商。", + "addConnection": "添加连接", + "backToProviders": "返回提供商列表", + "connections": "{count} 个连接", + "noConnections": "暂无连接 —— 请从提供商页面添加。", + "loading": "正在加载..." }, "search": { "searchQuery": "搜索词", @@ -2462,7 +2494,7 @@ "modelsAcrossEndpoints": "{endpoints} 个端点共提供 {models} 个模型", "loadingModels": "正在加载可用模型...", "chatDesc": "支持所有提供商的流式与非流式聊天", - "embeddings": "Embeddings", + "embeddings": "向量嵌入", "embeddingsDesc": "用于搜索和 RAG 流程的文本向量", "imageGeneration": "图像生成", "imageDesc": "根据文本提示生成图像", @@ -2574,7 +2606,7 @@ "a2aQuickStartStep3": "使用 `tasks/get` 与 `tasks/cancel` 跟踪和控制任务。", "completionsLegacy": "Completions(旧版)", "completionsLegacyDesc": "旧版 OpenAI 文本补全接口,同时接受 `prompt` 字符串和 `messages` 数组格式", - "messagesApi": "Messages", + "messagesApi": "消息", "messagesApiDesc": "面向 Claude 兼容提供商的原生 Anthropic Messages API 格式", "imageEdits": "图像编辑", "imageEditsDesc": "使用 AI 编辑和修改已有图像(局部修复、外延扩展、变体生成)", @@ -2609,7 +2641,7 @@ "tailscaleUrlNotice": "使用你的 Tailscale .ts.net 地址。首次使用时可能需要登录并批准 Funnel。", "tailscaleTitle": "Tailscale Funnel", "tailscaleNeedsLoginHint": "先使用 Tailscale 认证此机器,然后启用 Funnel。", - "tailscaleBinaryPath": "Binary: {path}", + "tailscaleBinaryPath": "二进制路径:{path}", "tailscaleLastError": "最近错误:{error}", "tailscaleInstallTitle": "安装 Tailscale", "tailscaleInstallIntro": "在此机器上安装 Tailscale,并准备让 OmniRoute 启用 Funnel。", @@ -3133,7 +3165,7 @@ "confirmClearActiveRequests": "清除所有活跃请求?", "model": "模型", "provider": "提供商", - "account": "Account", + "account": "账号", "elapsed": "已耗时", "count": "数量", "payloads": "Payload", @@ -3338,9 +3370,9 @@ "testKeyPlaceholder": "sk-...(仅用于验证)", "providerNotFound": "未找到提供商", "deleteConnectionConfirm": "删除这个连接吗?", - "batchDeleteSelected": "Delete Selected ({count})", - "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.", - "batchDeleteSuccess": "Deleted {count} connection(s)", + "batchDeleteSelected": "删除所选({count})", + "batchDeleteConfirm": "确定要删除 {count} 个连接?此操作不可撤销。", + "batchDeleteSuccess": "已删除 {count} 个连接", "failedSetAlias": "设置别名失败", "failedSaveConnection": "保存连接失败", "failedSaveConnectionRetry": "无法保存连接。请再试一次。", @@ -3350,7 +3382,7 @@ "openaiCompatibleDetails": "OpenAI 兼容详情", "messagesApi": "Messages API", "responsesApi": "Responses API", - "embeddings": "Embeddings", + "embeddings": "向量嵌入", "audioTranscriptions": "音频转写", "audioSpeech": "语音合成", "imagesGenerations": "图像生成", @@ -3765,7 +3797,7 @@ "expirationBannerExpiredDesc": "此 Provider 的凭据已过期,请更新后继续使用。", "expirationBannerExpiringSoon": "凭据即将过期", "expirationBannerExpiringSoonDesc": "此 Provider 的凭据即将过期,请提前更新。", - "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}", + "extraApiKeyMasked": "密钥 {index}:{prefix}••••{suffix}", "extraApiKeysHint": "为同一提供商添加额外 API 密钥,以便轮换和回退使用。", "extraApiKeysLabel": "额外 API 密钥", "apiKeyHealthLabel": "API 密钥健康状态", @@ -3787,7 +3819,7 @@ "antigravityClientProfileIde": "IDE", "antigravityClientProfileHarness": "Harness / CLI", "codexFastTierActiveChip": "Codex Fast 层级已启用", - "tierFast": "Fast", + "tierFast": "快速", "antigravityProjectIdLabel": "Google Cloud 项目 ID", "antigravityProjectIdPlaceholder": "my-gcp-project-id", "grokWebCookieHint": "从 Grok Web 会话复制 Cookie。", @@ -3838,7 +3870,7 @@ "snowflakeBaseUrlHint": "Snowflake Cortex 服务的 Base URL。", "supportedEndpointAudio": "音频", "supportedEndpointChat": "聊天", - "supportedEndpointEmbeddings": "Embeddings", + "supportedEndpointEmbeddings": "向量嵌入", "supportedEndpointImages": "图像", "supportedEndpointsLabel": "支持的端点", "tagGroupHint": "用于筛选和组织 Provider 的标签分组。", @@ -3884,7 +3916,25 @@ "providerDetailValidClaudeCredentialsFile": "有效的 Claude 凭据文件", "providerDetailPathAutoDetectedAllOs": "路径按操作系统自动检测(Linux/Mac/Windows)。", "providerDetailMyClaudeAccountPlaceholder": "我的 Claude 账号", - "providerDetailPathAutoDetected": "路径按操作系统自动识别(Linux / Mac)。" + "providerDetailPathAutoDetected": "路径按操作系统自动识别(Linux / Mac)。", + "hasFreeTooltip": "提供免费层", + "noAuthLabel": "免鉴权", + "noAuthProviders": "免鉴权提供商", + "upstreamProxyLabel": "上游代理", + "freeAggregated": "所有提供免费层的提供商(同时也会显示在各自的原生分类中)", + "riskNotice": { + "title": "继续之前", + "tooltip": "该提供商有使用注意事项 —— 点击查看详情", + "oauth": "此提供商使用你官方产品的会话 / OAuth,这并未被授权用于代理或路由用途。\n\n不建议进行高强度的自主代理使用(OpenCloud 风格、长链路多步流程、大批量请求)—— 上游可能因此限制甚至封禁账号。\n\n使用风险自负。", + "webCookie": "此提供商通过你的网页会话 Cookie 进行鉴权。上游服务可能随时让会话失效,届时你需要重新登录。不建议用于长时间无人值守的操作。\n\n使用风险自负。", + "deprecated": "此提供商已被上游下线,可能随时停止工作。已存在的连接可能在上游完全关闭访问前继续可用。建议考虑替代方案。", + "dontShowAgain": "对此提供商不再显示此提示", + "understand": "我已了解,继续", + "cancel": "取消" + }, + "webFetch": "网页抓取", + "webFetchTooltip": "从网页 URL 抽取内容的提供商(HTML → Markdown、抓取、截图)", + "webFetchProvidersHeading": "网页抓取提供商" }, "settings": { "title": "设置", @@ -4552,13 +4602,13 @@ "compressionMode": "压缩模式", "compressionModeOff": "关闭", "compressionModeOffDesc": "不应用压缩", - "compressionModeLite": "Lite", + "compressionModeLite": "轻量", "compressionModeLiteDesc": "减少空白字符和空行", "compressionModeStandard": "标准(Caveman)", "compressionModeStandardDesc": "基于规则的压缩,包含 30+ 个模式,并保留代码块和 URL", - "compressionModeAggressive": "Aggressive", + "compressionModeAggressive": "激进", "compressionModeAggressiveDesc": "摘要 + 工具结果压缩 + 渐进老化,以实现最大节省", - "compressionModeUltra": "Ultra", + "compressionModeUltra": "极致", "compressionModeUltraDesc": "使用包括语义去重在内的全部技术进行最大压缩", "compressionAggressiveConfig": "Aggressive 引擎配置", "compressionAggressiveConfigDesc": "微调摘要、工具压缩和老化阈值", @@ -5408,7 +5458,7 @@ "tierPro": "专业版", "tierPlus": "加号", "tierFree": "免费", - "tierLite": "Lite", + "tierLite": "轻量", "tierUnknown": "未知", "statTotal": "总计", "statCritical": "严重", @@ -5438,7 +5488,7 @@ "suiteImportInvalid": "无效的 eval 套件 JSON", "suiteBuilderCloneSuffix": "副本", "suiteBuilderImportedSuite": "已导入套件", - "scorecardTitle": "Scorecard", + "scorecardTitle": "评分卡", "evalApiKey": "API key", "scorecardPassRate": "通过率", "targetTypeModel": "模型", @@ -5473,7 +5523,7 @@ "targetSuiteDefaults": "Suite 默认值", "suiteBuilderDeleteConfirm": "确定要删除此套件吗?此操作无法撤销。", "suiteBuilderNameLabel": "Suite 名称", - "scorecardSuites": "Suites", + "scorecardSuites": "套件", "evalCompareTarget": "对比目标", "suiteBuilderCaseModelPlaceholder": "例如 gpt-4o-mini", "evalControlsHint": "配置评估目标和 API 密钥,然后运行套件以验证模型质量。", @@ -5514,7 +5564,7 @@ "suiteBuilderCaseExpectedLabel": "期望值", "historyLatency": "延迟", "suiteBuilderCaseTagsPlaceholder": "例如 coding, python", - "targetTypeCombo": "Combo", + "targetTypeCombo": "组合", "scorecardPassed": "已通过", "suiteBuilderCaseTagsLabel": "标签", "suiteBuilderNewSuite": "新建 Suite", @@ -6135,7 +6185,7 @@ "cliSkillsSubtitle": "{count} 个技能 — 通过 omniroute 终端可执行文件控制 OmniRoute", "howToUseStep1": "在你想让代理了解的技能上点击 {copyUrl}。", "howToUseStep2": "在你的 AI 代理(Claude、Cursor、Cline…)中输入:", - "howToUseStep2Code": "Use the skill at [pasted-url]", + "howToUseStep2Code": "在 [pasted-url] 处使用该技能", "howToUseStep3": "代理会获取 SKILL.md 并学习 OmniRoute 的 API 或 CLI — 无需手动文档。" }, "cloudAgents": { @@ -6599,12 +6649,12 @@ "chat": "聊天补全", "responses": "响应", "images": "图片生成", - "embeddings": "Embeddings", + "embeddings": "向量嵌入", "speech": "文本转语音", "transcription": "音频转录", "video": "视频生成", "music": "音乐生成", - "rerank": "Rerank", + "rerank": "重排序", "search": "网页搜索" }, "conversationalChat": "对话式聊天", @@ -6721,10 +6771,10 @@ "images": "图像", "chat": "聊天", "music": "音乐", - "responses": "Responses", - "rerank": "Rerank", + "responses": "响应", + "rerank": "重排序", "video": "视频", - "embeddings": "Embeddings", + "embeddings": "向量嵌入", "transcription": "转写" }, "toolDescriptions": { @@ -6736,121 +6786,158 @@ "kilo": "Kilo" }, "runtime": { - "title": "Runtime", - "description": "Realtime observability — 3-layer resilience + sessions + quota alerts", - "pause": "Pause", - "resume": "Resume", - "refreshNow": "Refresh now", - "kpiSessions": "Sessions", - "kpiCircuits": "Circuits", - "kpiCooldowns": "Cooldowns", - "kpiLockouts": "Lockouts", - "hintStickyBound": "{count} sticky-bound", - "hintRecovering": "{count} recovering", - "hintAllHealthy": "all healthy", - "hintOpen": "open", - "hintConnsCooling": "connections cooling", - "hintModelsBlocked": "models blocked", - "resilienceTitle": "3-Layer Resilience", - "resilienceSubtitle": "Mirrors the documented resilience model", - "providersHealthy": "{percent}% providers healthy", - "layer": "Layer {n}", - "layer1Title": "Provider Circuit Breakers", - "layer1Desc": "Stop traffic to providers failing at the upstream level", - "layer2Title": "Connection Cooldowns", - "layer2Desc": "Skip one bad account/key; other connections keep serving", - "layer3Title": "Model Lockouts", - "layer3Desc": "Per-model rate-limit locks; same connection still serves other models", - "badgeAffectedOf": "{affected} of {total} affected", - "badgeCooling": "{count} cooling", - "badgeLocked": "{count} locked", - "emptyCircuits": "No circuit breakers active yet", - "emptyCooldowns": "No connection cooldowns active", - "emptyLockouts": "No model lockouts", - "moreCooldowns": "+{count} more cooldowns", - "moreLockouts": "+{count} more lockouts", - "feedTitle": "Live Feed", - "feedSubtitle": "Last {count} events", - "feedFilterAll": "All", - "feedFilterCircuits": "Circuits", - "feedFilterCooldowns": "Cooldowns", - "feedFilterLockouts": "Lockouts", - "feedFilterSessions": "Sessions", - "feedFilterQuotas": "Quotas", - "feedClear": "Clear", - "feedEmptyWaiting": "Waiting for events... (polled every 5s)", - "feedEmptyFiltered": "No events match this filter", - "sessionsTitle": "Active Sessions", - "sessionsSubtitle": "Sticky-bound request fingerprints (live)", - "sessionsActive": "{count} active", - "sessionsEmptyTitle": "No active sessions", - "sessionsEmptyHint": "Sessions appear as requests flow through the proxy", - "tblSession": "Session", - "tblAge": "Age", - "tblIdle": "Idle", - "tblReqs": "Reqs", - "tblBoundTo": "Bound to", - "topApiKeys": "Top API keys", - "quotaMonitorsTitle": "Quota Monitors", - "quotaMonitorsSubtitle": "Live quota state per account window", - "openQuota": "Open Quota", - "allQuotasHealthy": "All quotas healthy", - "statusExhausted": "EXHAUSTED", - "statusAlerting": "ALERTING", - "statusError": "ERROR", - "moreSuffix": "+{count} more" + "title": "运行时", + "description": "实时观测 —— 三层弹性 + 会话 + 配额告警", + "pause": "暂停", + "resume": "继续", + "refreshNow": "立即刷新", + "kpiSessions": "会话", + "kpiCircuits": "熔断器", + "kpiCooldowns": "冷却", + "kpiLockouts": "锁定", + "hintStickyBound": "{count} 个会话粘连", + "hintRecovering": "{count} 个恢复中", + "hintAllHealthy": "全部健康", + "hintOpen": "已开启", + "hintConnsCooling": "个连接冷却中", + "hintModelsBlocked": "个模型被阻断", + "resilienceTitle": "三层弹性", + "resilienceSubtitle": "镜像文档化的弹性模型", + "providersHealthy": "{percent}% 提供商健康", + "layer": "第 {n} 层", + "layer1Title": "提供商熔断器", + "layer1Desc": "停止向上游层面持续失败的提供商发送流量", + "layer2Title": "连接冷却", + "layer2Desc": "跳过单个故障账号/密钥,其他连接继续服务", + "layer3Title": "模型锁定", + "layer3Desc": "按模型的限速锁定;同一连接仍可服务其他模型", + "badgeAffectedOf": "{affected} / {total} 受影响", + "badgeCooling": "{count} 个冷却中", + "badgeLocked": "{count} 个被锁定", + "emptyCircuits": "暂无激活的熔断器", + "emptyCooldowns": "暂无激活的连接冷却", + "emptyLockouts": "暂无模型锁定", + "moreCooldowns": "还有 {count} 个冷却", + "moreLockouts": "还有 {count} 个锁定", + "feedTitle": "实时事件流", + "feedSubtitle": "最近 {count} 条事件", + "feedFilterAll": "全部", + "feedFilterCircuits": "熔断器", + "feedFilterCooldowns": "冷却", + "feedFilterLockouts": "锁定", + "feedFilterSessions": "会话", + "feedFilterQuotas": "配额", + "feedClear": "清空", + "feedEmptyWaiting": "等待事件中…(每 5 秒轮询一次)", + "feedEmptyFiltered": "没有事件匹配此筛选", + "sessionsTitle": "活跃会话", + "sessionsSubtitle": "粘连绑定的请求指纹(实时)", + "sessionsActive": "{count} 个活跃", + "sessionsEmptyTitle": "暂无活跃会话", + "sessionsEmptyHint": "当请求经过代理时,会话会出现在这里", + "tblSession": "会话", + "tblAge": "存活时长", + "tblIdle": "空闲", + "tblReqs": "请求数", + "tblBoundTo": "绑定至", + "topApiKeys": "热门 API 密钥", + "quotaMonitorsTitle": "配额监控", + "quotaMonitorsSubtitle": "按账号窗口的实时配额状态", + "openQuota": "打开配额", + "allQuotasHealthy": "全部配额健康", + "statusExhausted": "已耗尽", + "statusAlerting": "告警中", + "statusError": "错误", + "moreSuffix": "还有 {count} 个" }, "quotaShare": { - "title": "Quota Sharing", - "description": "Share provider quotas across API keys with % limits", - "newPool": "New pool", - "betaTitle": "Beta — UI preview.", - "betaDescription": "Configuration is saved in localStorage (not yet persisted on the server). Per-request cap enforcement is not yet wired into the proxy pipeline. This screen lets you design and visualize the quota split; real enforcement will land in a future iteration with DB persistence and upstream call interception.", - "kpiActivePools": "Active pools", - "kpiKeysAllocated": "Keys allocated", - "kpiAvgUnallocated": "Avg unallocated", - "kpiProvidersWithQuota": "Providers w/ quota", - "emptyTitle": "No pools configured", - "emptyDescription": "Create a pool to assign API keys to share a provider's quota window with % allocations.", - "loading": "Loading…", - "removePool": "Remove pool", - "removeConfirm": "Remove this pool?", - "pool": "Pool", - "used": "used", - "allocationsCount": "Allocations ({count})", - "allocatedFree": "{allocated}% allocated · {free}% free", - "noAllocations": "No keys allocated yet", - "capLabel": "cap {value}", - "notTrackedYet": "(not tracked yet)", - "policy": "Policy", - "policyHard": "hard", - "policySoft": "soft", - "policyBurst": "burst", - "policyHardHint": "Block when key exhausts allocation", - "policySoftHint": "Allow overflow, alert only", - "policyBurstHint": "Allow burst into free pool", - "editAllocations": "Edit allocations", - "newPoolTitle": "New quota pool", - "providerConnection": "Provider connection (account)", - "selectConnection": "Select a connection…", - "noEligibleConnections": "No connections with quota data. Refresh from /dashboard/quota first.", - "quotaWindow": "Quota window", - "selectWindow": "Select a window…", - "alreadyUsedSuffix": "(already used)", - "windowReset": "Reset", - "duplicatePoolError": "A pool for this connection + window already exists", - "cancel": "Cancel", - "createPool": "Create pool", - "editTitle": "Edit allocations", - "noKeysAdded": "No keys allocated. Add one below.", - "totalLabel": "Total: {percent}%", - "totalExceeded": "⚠ exceeds 100%", - "addKey": "+ Add key…", - "equalSplit": "Equal split", - "save": "Save allocations", + "title": "配额共享", + "description": "通过百分比限额在多个 API 密钥间共享提供商配额", + "newPool": "新建池", + "betaTitle": "Beta —— 仅 UI 预览。", + "betaDescription": "配置当前保存在 localStorage(尚未持久化到服务端)。每请求的限额执行尚未接入代理流水线。本页面仅用于设计与可视化配额分配;实际执行将在后续版本中通过数据库持久化与上游调用拦截落地。", + "kpiActivePools": "活跃池数", + "kpiKeysAllocated": "已分配密钥", + "kpiAvgUnallocated": "平均未分配", + "kpiProvidersWithQuota": "有配额的提供商", + "emptyTitle": "尚未配置任何池", + "emptyDescription": "创建一个池,用百分比把多个 API 密钥分配到同一个提供商配额窗口上。", + "loading": "正在加载…", + "removePool": "移除池", + "removeConfirm": "确定要移除此池吗?", + "pool": "池", + "used": "已用", + "allocationsCount": "分配({count})", + "allocatedFree": "已分配 {allocated}% · 空闲 {free}%", + "noAllocations": "尚未分配任何密钥", + "capLabel": "上限 {value}", + "notTrackedYet": "(尚未跟踪)", + "policy": "策略", + "policyHard": "硬限制", + "policySoft": "软限制", + "policyBurst": "突发", + "policyHardHint": "密钥超出分配额度时直接拦截", + "policySoftHint": "允许超额,仅告警", + "policyBurstHint": "允许突发占用空闲池", + "editAllocations": "编辑分配", + "newPoolTitle": "新建配额池", + "providerConnection": "提供商连接(账号)", + "selectConnection": "选择一个连接…", + "noEligibleConnections": "没有携带配额数据的连接。请先在 /dashboard/quota 刷新一次。", + "quotaWindow": "配额窗口", + "selectWindow": "选择一个窗口…", + "alreadyUsedSuffix": "(已被使用)", + "windowReset": "重置时间", + "duplicatePoolError": "该连接 + 窗口的池已存在", + "cancel": "取消", + "createPool": "创建池", + "editTitle": "编辑分配", + "noKeysAdded": "尚未分配密钥。请在下方添加。", + "totalLabel": "合计:{percent}%", + "totalExceeded": "⚠ 已超过 100%", + "addKey": "+ 添加密钥…", + "equalSplit": "平均分配", + "save": "保存分配", "betaPreviewLabel": "Beta — UI 预览。", "betaConfigSavedPrefix": "配置已保存于", "betaConfigSavedSuffix": "(尚未在服务器持久化)。每个请求的配额上限尚未接入代理流水线。此页面用于设计和预览配额拆分;", "policyLabel": "策略:" + }, + "miniPlayground": { + "endpoint": "端点", + "apiKey": "API 密钥", + "model": "模型", + "voice": "声音", + "speed": "语速", + "input": "输入", + "url": "URL", + "format": "格式", + "depth": "深度", + "copyCurl": "复制 cURL", + "copied": "已复制!", + "run": "运行", + "running": "运行中...", + "response": "响应", + "tunnel": "隧道", + "send": "发送", + "selectKey": "选择密钥", + "testLabel": "测试", + "expandTest": "展开测试", + "collapseTest": "收起测试", + "revealKey": "显示密钥", + "hideKey": "隐藏密钥", + "download": "下载", + "play": "播放", + "query": "查询", + "numResults": "最大结果数", + "prompt": "提示词", + "size": "尺寸", + "duration": "时长", + "question": "问题", + "audioFile": "音频文件", + "noKeysFound": "未找到 API 密钥。请到 Keys 区域添加一个。", + "exampleLabel": "示例", + "latency": "{ms}ms", + "statsLine": "{ms}ms · {tokensIn} 输入 / {tokensOut} 输出 tokens" } }