diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index e6cd0d6ca5..7df46e9a68 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -140,515 +140,515 @@ "http": "HTTP", "goToDashboard": "前往仪表板", "checkSystemStatus": "查看系统状态", - "selectModel": "Select Model", + "selectModel": "选择模型", "combos": "Combos", - "noModelsFound": "No models found", - "clear": "Clear", - "done": "Done", - "errorOccurred": "Error Occurred", - "comboDeleted": "Combo Deleted", - "hide": "Hide", - "creating": "Creating", - "comboCreated": "Combo Created", - "swapFormats": "Swap Formats", - "daysAgo": "Days Ago", - "retries": "Retries", - "errorDuringRestore": "Error During Restore", - "eventsAppearHint": "Events Appear Hint", - "noLockouts": "No Lockouts", - "webSearchDesc": "Web Search Desc", - "audioProvidersHeading": "Audio Providers Heading", - "minutesAgo": "Minutes Ago", + "noModelsFound": "未找到 Model", + "clear": "清除", + "done": "完成", + "errorOccurred": "错误发生", + "comboDeleted": "Combo 已删除", + "hide": "隐藏", + "creating": "正在创建", + "comboCreated": "Combo 已创建", + "swapFormats": "交换格式", + "daysAgo": "天前", + "retries": "重试次数", + "errorDuringRestore": "错误期间恢复", + "eventsAppearHint": "事件显示提示", + "noLockouts": "无锁定", + "webSearchDesc": "Web Search 功能说明", + "audioProvidersHeading": "音频 Provider", + "minutesAgo": "分钟前", "a": "A", - "liveAutoRefreshing": "Live Auto Refreshing", + "liveAutoRefreshing": "实时自动刷新中", "webSearch": "Web Search", - "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder", - "addModelToCombo": "Add Model To Combo", - "failedToLoad": "Failed To Load", - "categoryMedia": "Category Media", - "enableCloud": "Enable Cloud", - "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon", - "retry": "Retry", + "anthropicPrefixPlaceholder": "Anthropic 前缀", + "addModelToCombo": "添加模型到组合", + "failedToLoad": "加载失败", + "categoryMedia": "类别媒体", + "enableCloud": "启用云端", + "expirationBannerExpiringSoon": "过期横幅即将过期即将", + "retry": "重试", "embeddings": "Embeddings", - "errorCount": "Error Count", - "backupReasonManual": "Backup Reason Manual", - "safeSearchModerate": "Safe Search Moderate", - "activeLimiters": "Active Limiters", - "a2aCardTitle": "A2A Card Title", - "cloudWorkerUnreachable": "Cloud Worker Unreachable", - "testFailed": "Test Failed", - "compatibleBaseUrlHint": "Compatible Base Url Hint", - "usageTracking": "Usage Tracking", - "disableCloudTitle": "Disable Cloud Title", - "noConnections": "No Connections", - "providerHealth": "Provider Health", - "confirmDbImport": "Confirm Db Import", - "notAvailableSymbol": "Not Available Symbol", - "backupsAvailable": "Backups Available", - "providerAuto": "Provider Auto", - "newProviderNamePlaceholder": "New Provider Name Placeholder", - "a2aQuickStartStep2": "A2A Quick Start Step2", - "ok": "Ok", - "available": "Available", - "noBackupYet": "No Backup Yet", - "more": "More", - "noCompatibleYet": "No Compatible Yet", - "multiProvider": "Multi Provider", - "repairEnvHint": "Repair Env Hint", - "disablingCloud": "Disabling Cloud", - "testBench": "Test Bench", - "valid": "Valid", - "cloudBenefitShare": "Cloud Benefit Share", - "mcpCardTitle": "Mcp Card Title", - "disableConfirm": "Disable Confirm", - "filters": "Filters", - "expirationBannerExpiredDesc": "Expiration Banner Expired Desc", - "saveComboDefaults": "Save Combo Defaults", - "cloudConnectedVerified": "Cloud Connected Verified", - "uptime": "Uptime", - "compatibleProdPlaceholder": "Compatible Prod Placeholder", - "fallbackChainsTitle": "Fallback Chains Title", - "oauthLabel": "Oauth Label", - "a2aCardDescription": "A2A Card Description", - "okShort": "Ok Short", - "maintenance": "Maintenance", - "formatConverter": "Format Converter", - "zedImportNetworkError": "Zed Import Network Error", - "apiKeyLabel": "Api Key Label", - "noModelsForProvider": "No Models For Provider", - "mcpCardDescription": "Mcp Card Description", - "apiTypeLabel": "Api Type Label", - "configuredProvidersLabel": "Configured Providers Label", - "maxRetriesLabel": "Max Retries Label", - "title": "Title", - "output": "Output", - "prefixHint": "Prefix Hint", - "skipWizard": "Skip Wizard", - "failedCount": "Failed Count", - "confirmDbImportDesc": "Confirm Db Import Desc", - "entries": "Entries", - "until": "Until", - "disableCombo": "Disable Combo", - "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix", - "runningCount": "Running Count", - "noActiveConnectionsInGroup": "No Active Connections In Group", - "savedSuccessfully": "Saved Successfully", - "systemStorage": "System Storage", - "videoDesc": "Video Desc", - "maxResults": "Max Results", - "timeRangeMonth": "Time Range Month", - "testSummary": "Test Summary", - "failedSetPassword": "Failed Set Password", - "audio": "Audio", - "restore": "Restore", - "disableWarning": "Disable Warning", - "moderationsDesc": "Moderations Desc", - "providerHealthStatusAria": "Provider Health Status Aria", - "modelNamePlaceholder": "Model Name Placeholder", - "mcpQuickStartStep2": "Mcp Quick Start Step2", - "quickStart": "Quick Start", - "fullExportFailedWithError": "Full Export Failed With Error", - "loadingBackups": "Loading Backups", - "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder", - "description": "Description", - "noProviderFound": "No Provider Found", - "auto": "Auto", - "protocolsDescription": "Protocols Description", - "cloudSessionNote": "Cloud Session Note", - "advancedSettings": "Advanced Settings", - "defaultStrategy": "Default Strategy", - "purgeExpiredLogs": "Purge Expired Logs", - "justNow": "Just Now", - "providerTestFailed": "Provider Test Failed", - "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder", - "image": "Image", - "failedCreateChain": "Failed Create Chain", - "importDatabase": "Import Database", - "allDataLocal": "All Data Local", - "sectionTitle": "Section Title", - "failedToggle": "Failed Toggle", - "editCombo": "Edit Combo", - "testResults": "Test Results", - "searchQuery": "Search Query", + "errorCount": "错误数量", + "backupReasonManual": "备份原因手动", + "safeSearchModerate": "安全搜索中等", + "activeLimiters": "活跃限制器", + "a2aCardTitle": "A2A", + "cloudWorkerUnreachable": "Cloud Worker 不可达", + "testFailed": "测试失败", + "compatibleBaseUrlHint": "填写兼容 API 的 Base URL。", + "usageTracking": "使用量跟踪", + "disableCloudTitle": "禁用云端", + "noConnections": "无连接", + "providerHealth": "提供商健康状态", + "confirmDbImport": "确认DB导入", + "notAvailableSymbol": "—", + "backupsAvailable": "可用备份", + "providerAuto": "自动提供商", + "newProviderNamePlaceholder": "新的提供商名称", + "a2aQuickStartStep2": "A2A快速开始步骤2", + "ok": "确定", + "available": "可用", + "noBackupYet": "无备份暂无", + "more": "更多", + "noCompatibleYet": "无兼容暂无", + "multiProvider": "多提供商", + "repairEnvHint": "修复环境提示", + "disablingCloud": "正在禁用 Cloud", + "testBench": "测试台", + "valid": "有效", + "cloudBenefitShare": "共享 Cloud 访问能力", + "mcpCardTitle": "MCP", + "disableConfirm": "确认禁用?", + "filters": "筛选器", + "expirationBannerExpiredDesc": "过期横幅已过期说明", + "saveComboDefaults": "保存组合默认值", + "cloudConnectedVerified": "Cloud 连接已验证", + "uptime": "运行时间", + "compatibleProdPlaceholder": "兼容生产占位符", + "fallbackChainsTitle": "后备链", + "oauthLabel": "OAuth 标签", + "a2aCardDescription": "通过 A2A 协议连接 Agent 工作流。", + "okShort": "确定短标签", + "maintenance": "维护", + "formatConverter": "格式转换器", + "zedImportNetworkError": "Zed 导入网络错误", + "apiKeyLabel": "API key 标签", + "noModelsForProvider": "此提供商没有可用模型", + "mcpCardDescription": "通过 MCP 工具连接 Agent 和自动化流程。", + "apiTypeLabel": "API 类型标签", + "configuredProvidersLabel": "已配置 Provider 标签", + "maxRetriesLabel": "最大重试次数标签", + "title": "标题", + "output": "输出", + "prefixHint": "前缀提示", + "skipWizard": "跳过向导", + "failedCount": "失败数量", + "confirmDbImportDesc": "确认DB导入说明", + "entries": "条目", + "until": "直到", + "disableCombo": "禁用组合", + "liveMonitorDescriptionPrefix": "实时显示请求流经 OmniRoute 时产生的事件。使用", + "runningCount": "运行中数量", + "noActiveConnectionsInGroup": "此分组中没有活跃连接", + "savedSuccessfully": "保存成功", + "systemStorage": "系统存储", + "videoDesc": "视频说明", + "maxResults": "最大结果数", + "timeRangeMonth": "时间范围月", + "testSummary": "测试摘要", + "failedSetPassword": "设置密码失败", + "audio": "音频", + "restore": "恢复", + "disableWarning": "禁用警告", + "moderationsDesc": "审核说明", + "providerHealthStatusAria": "提供商健康状态", + "modelNamePlaceholder": "模型名称", + "mcpQuickStartStep2": "MCP 快速开始步骤 2", + "quickStart": "快速开始", + "fullExportFailedWithError": "完整导出失败:{error}", + "loadingBackups": "正在加载备份", + "anthropicBaseUrlPlaceholder": "Anthropic Base URL", + "description": "描述", + "noProviderFound": "未找到提供商", + "auto": "自动", + "protocolsDescription": "配置并测试支持的协议端点。", + "cloudSessionNote": "Cloud Session 提示", + "advancedSettings": "高级设置", + "defaultStrategy": "默认策略", + "purgeExpiredLogs": "清理已过期日志", + "justNow": "刚刚现在", + "providerTestFailed": "提供商测试失败", + "openaiBaseUrlPlaceholder": "OpenAI Base URL", + "image": "图像", + "failedCreateChain": "创建链失败", + "importDatabase": "导入数据库", + "allDataLocal": "全部数据本地", + "sectionTitle": "分区标题", + "failedToggle": "切换失败", + "editCombo": "编辑 Combo", + "testResults": "测试结果", + "searchQuery": "搜索查询", "addCcCompatible": "添加 CC 兼容", - "duplicate": "Duplicate", - "createCombo": "Create Combo", - "searchTypeWeb": "Search Type Web", - "addChain": "Add Chain", - "prefixLabel": "Prefix Label", - "listModelsDesc": "List Models Desc", - "databaseSize": "Database Size", - "chainCreated": "Chain Created", - "providerTestTimeout": "Provider Test Timeout", - "routingStrategy": "Routing Strategy", - "translateAction": "Translate Action", - "exportFailed": "Export Failed", - "connectedVerificationPending": "Connected Verification Pending", - "a2aQuickStartTitle": "A2A Quick Start Title", - "couldNotTest": "Could Not Test", - "testAllCompatible": "Test All Compatible", - "anthropicCompatibleName": "Anthropic Compatible Name", - "disabling": "Disabling", - "failedEnable": "Failed Enable", - "categoryUtility": "Category Utility", - "customUrlOptional": "Custom Url Optional", - "localProviders": "Local Providers", - "comboNamePlaceholder": "Combo Name Placeholder", - "memoryRss": "Memory Rss", - "disableProvider": "Disable Provider", - "welcomeDesc": "Welcome Desc", - "nameLabel": "Name Label", - "allOperational": "All Operational", - "backupNow": "Backup Now", - "providerMaxRetriesAria": "Provider Max Retries Aria", - "textToSpeechDesc": "Text To Speech Desc", - "machineId": "Machine Id", - "globalProxy": "Global Proxy", - "hitsMisses": "Hits Misses", - "testDesc": "Test Desc", - "chatDesc": "Chat Desc", - "importSuccess": "Import Success", - "chat": "Chat", - "a2aQuickStartStep1": "A2A Quick Start Step1", - "importFailed": "Import Failed", - "inputPlaceholder": "Input Placeholder", - "providerModelsTitle": "Provider Models Title", - "lastBackup": "Last Backup", - "yourEndpoint": "Your Endpoint", - "autoDisableThresholdDesc": "Auto Disable Threshold Desc", - "rerankDesc": "Rerank Desc", - "modelsPathPlaceholder": "Models Path Placeholder", - "noCombosYet": "No Combos Yet", - "connectedVerificationPendingWithError": "Connected Verification Pending With Error", - "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1", - "enableCloudTitle": "Enable Cloud Title", - "configuredProvidersHint": "Configured Providers Hint", - "paused": "Paused", - "llmProviders": "Llm Providers", - "enableCombo": "Enable Combo", - "removeProviderOverrideAria": "Remove Provider Override Aria", - "nodeVersion": "Node Version", + "duplicate": "重复", + "createCombo": "创建组合", + "searchTypeWeb": "搜索类型:Web", + "addChain": "添加链", + "prefixLabel": "前缀标签", + "listModelsDesc": "列出可用 Model。", + "databaseSize": "数据库大小", + "chainCreated": "链已创建", + "providerTestTimeout": "提供商测试超时", + "routingStrategy": "路由策略", + "translateAction": "翻译操作", + "exportFailed": "导出失败", + "connectedVerificationPending": "连接验证待处理", + "a2aQuickStartTitle": "A2A 快速开始", + "couldNotTest": "无法测试", + "testAllCompatible": "测试所有兼容项", + "anthropicCompatibleName": "Anthropic 兼容名称", + "disabling": "正在禁用", + "failedEnable": "启用失败", + "categoryUtility": "工具类别", + "customUrlOptional": "自定义 URL(可选)", + "localProviders": "本地 Provider", + "comboNamePlaceholder": "Combo 名称", + "memoryRss": "内存 RSS", + "disableProvider": "禁用提供商", + "welcomeDesc": "欢迎使用 OmniRoute。", + "nameLabel": "名称标签", + "allOperational": "全部运行正常", + "backupNow": "备份现在", + "providerMaxRetriesAria": "提供商最大重试次数", + "textToSpeechDesc": "将文本转换为语音音频。", + "machineId": "机器 ID", + "globalProxy": "全局代理", + "hitsMisses": "命中未命中", + "testDesc": "运行连接测试以验证配置。", + "chatDesc": "聊天说明", + "importSuccess": "导入成功", + "chat": "聊天", + "a2aQuickStartStep1": "A2A快速开始步骤1", + "importFailed": "导入失败", + "inputPlaceholder": "输入内容...", + "providerModelsTitle": "提供商模型", + "lastBackup": "最近备份", + "yourEndpoint": "你的 Endpoint", + "autoDisableThresholdDesc": "触发自动禁用前允许的连续失败次数。", + "rerankDesc": "重排说明", + "modelsPathPlaceholder": "Model 路径", + "noCombosYet": "暂无 Combo", + "connectedVerificationPendingWithError": "已连接,验证待完成:{error}", + "comboDefaultsGuideHint1": "配置 Combo 默认策略和目标。", + "enableCloudTitle": "启用云端", + "configuredProvidersHint": "仅显示已配置的 Provider。", + "paused": "已暂停", + "llmProviders": "LLM Provider", + "enableCombo": "启用组合", + "removeProviderOverrideAria": "移除提供商覆盖", + "nodeVersion": "Node 版本", "openai": "Openai", - "exportFailedWithError": "Export Failed With Error", - "proxyConfigured": "Proxy Configured", - "concurrencyPerModel": "Concurrency Per Model", - "protocolTasksLabel": "Protocol Tasks Label", + "exportFailedWithError": "导出失败:{error}", + "proxyConfigured": "代理已配置", + "concurrencyPerModel": "每个模型并发数", + "protocolTasksLabel": "协议任务标签", "oauthProviders": "Oauth Providers", - "lockedCount": "Locked Count", - "deleteChainConfirm": "Delete Chain Confirm", - "recentTranslations": "Recent Translations", - "zedImportButton": "Zed Import Button", - "responsesDesc": "Responses Desc", - "testedCount": "Tested Count", - "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder", - "signatureDefaults": "Signature Defaults", - "errorCreating": "Error Creating", - "timeRangeYear": "Time Range Year", + "lockedCount": "已锁定数量", + "deleteChainConfirm": "删除此后备链?", + "recentTranslations": "最近翻译", + "zedImportButton": "从 Zed 导入", + "responsesDesc": "Responses API 兼容端点", + "testedCount": "已测试数量", + "providersCommaSeparatedPlaceholder": "以逗号分隔的 Provider", + "signatureDefaults": "签名默认值", + "errorCreating": "错误创建", + "timeRangeYear": "时间范围年", "compatibleLabel": "兼容", - "cloudDisabledSuccess": "Cloud Disabled Success", - "deleteConfirm": "Delete Confirm", - "check": "Check", - "safeSearch": "Safe Search", - "protocolLastActivity": "Protocol Last Activity", - "openMcpDashboard": "Open Mcp Dashboard", - "testBenchTab": "Test Bench Tab", - "chatPathLabel": "Chat Path Label", - "retryDelay": "Retry Delay", - "errorUpdating": "Error Updating", - "ideCliIntegrations": "Ide Cli Integrations", - "imageGeneration": "Image Generation", - "apiKeyRequired": "Api Key Required", - "resetAllTitle": "Reset All Title", - "connectionError": "Connection Error", - "modelName": "Model Name", - "apiKeyForCheck": "Api Key For Check", - "cloudRequestTimeout": "Cloud Request Timeout", - "showConfiguredOnly": "Show Configured Only", - "includeDomains": "Include Domains", - "promptCache": "Prompt Cache", - "cloudConnected": "Cloud Connected", - "deleteChain": "Delete Chain", - "chatPathPlaceholder": "Chat Path Placeholder", - "databasePath": "Database Path", - "usingLocalServer": "Using Local Server", - "globalComboConfig": "Global Combo Config", - "backupFailed": "Backup Failed", - "tabProtocols": "Tab Protocols", - "continue": "Continue", - "categorySearch": "Category Search", - "rateLimitStatus": "Rate Limit Status", - "repairEnvSuccess": "Repair Env Success", - "nameRequired": "Name Required", - "country": "Country", - "trackMetricsDesc": "Track Metrics Desc", - "durationSecondsShort": "Duration Seconds Short", - "formatConverterDescription": "Format Converter Description", - "cloudBenefitAccess": "Cloud Benefit Access", - "maxRetries": "Max Retries", - "queueTimeout": "Queue Timeout", - "addProvider": "Add Provider", - "realtime": "Realtime", - "totalTranslations": "Total Translations", - "protocolActiveStreamsLabel": "Protocol Active Streams Label", - "repairEnv": "Repair Env", - "modelsCount": "Models Count", - "viewBackups": "View Backups", - "responsesApi": "Responses Api", - "copyComboName": "Copy Combo Name", - "failures": "Failures", - "failedUpdate": "Failed Update", - "imageDesc": "Image Desc", - "failedCreate": "Failed Create", - "remainingOfLimit": "Remaining Of Limit", - "protocolsTitle": "Protocols Title", - "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc", - "source": "Source", - "failed": "Failed", - "apiKeyMgmt": "Api Key Mgmt", - "mcpQuickStartStep1": "Mcp Quick Start Step1", - "runTest": "Run Test", - "loadingFallbackChains": "Loading Fallback Chains", - "healthy": "Healthy", - "version": "Version", - "saveBlockWeighted": "Save Block Weighted", - "zedImportNone": "Zed Import None", - "noBackupsYet": "No Backups Yet", - "noGlobalProxy": "No Global Proxy", - "noModels": "No Models", - "stickyLimit": "Sticky Limit", - "passedCount": "Passed Count", - "zedImportFailed": "Zed Import Failed", - "saving": "Saving", - "testAll": "Test All", - "globalProxyDesc": "Global Proxy Desc", - "latencyP99": "Latency P99", - "connectingToCloud": "Connecting To Cloud", + "cloudDisabledSuccess": "云端已禁用", + "deleteConfirm": "确认删除?", + "check": "检查", + "safeSearch": "安全搜索", + "protocolLastActivity": "协议最近活动", + "openMcpDashboard": "打开 MCP Dashboard", + "testBenchTab": "测试台", + "chatPathLabel": "聊天路径标签", + "retryDelay": "重试延迟", + "errorUpdating": "错误更新", + "ideCliIntegrations": "IDE 与 CLI 集成", + "imageGeneration": "图像生成", + "apiKeyRequired": "API key 为必填项", + "resetAllTitle": "全部重置", + "connectionError": "连接错误", + "modelName": "模型名称", + "apiKeyForCheck": "用于检查的 API 密钥", + "cloudRequestTimeout": "云端请求超时", + "showConfiguredOnly": "显示已配置仅", + "includeDomains": "包含域名", + "promptCache": "提示缓存", + "cloudConnected": "Cloud 已连接", + "deleteChain": "删除链", + "chatPathPlaceholder": "聊天路径占位符", + "databasePath": "数据库路径", + "usingLocalServer": "正在使用本地 Server", + "globalComboConfig": "全局 Combo 配置", + "backupFailed": "备份失败", + "tabProtocols": "协议标签页", + "continue": "继续", + "categorySearch": "类别搜索", + "rateLimitStatus": "速率限制状态", + "repairEnvSuccess": "环境修复成功", + "nameRequired": "名称必填", + "country": "国家/地区", + "trackMetricsDesc": "跟踪请求、延迟和成本指标。", + "durationSecondsShort": "时长秒短标签", + "formatConverterDescription": "在不同 API 格式之间转换请求。", + "cloudBenefitAccess": "访问 Cloud 能力", + "maxRetries": "最大重试次数", + "queueTimeout": "队列超时", + "addProvider": "添加提供商", + "realtime": "实时", + "totalTranslations": "总计翻译", + "protocolActiveStreamsLabel": "协议活跃 Stream", + "repairEnv": "修复环境", + "modelsCount": "Model 数量", + "viewBackups": "查看备份", + "responsesApi": "Responses API", + "copyComboName": "复制 Combo 名称", + "failures": "失败", + "failedUpdate": "更新失败", + "imageDesc": "图像说明", + "failedCreate": "创建失败", + "remainingOfLimit": "剩余Of限制", + "protocolsTitle": "协议", + "expirationBannerExpiringSoonDesc": "过期横幅即将过期即将说明", + "source": "来源", + "failed": "失败", + "apiKeyMgmt": "API key 管理", + "mcpQuickStartStep1": "MCP 快速开始步骤 1", + "runTest": "运行测试", + "loadingFallbackChains": "正在加载后备链", + "healthy": "健康", + "version": "版本", + "saveBlockWeighted": "保存 Block Weighted", + "zedImportNone": "没有可从 Zed 导入的内容", + "noBackupsYet": "无备份暂无", + "noGlobalProxy": "无全局代理", + "noModels": "无 Model", + "stickyLimit": "粘性限制", + "passedCount": "通过数量", + "zedImportFailed": "Zed 导入失败", + "saving": "正在保存", + "testAll": "全部测试", + "globalProxyDesc": "全局代理说明", + "latencyP99": "延迟P99", + "connectingToCloud": "正在连接云端", "responses": "Responses", - "errorDeleting": "Error Deleting", - "openaiPrefixPlaceholder": "Openai Prefix Placeholder", - "enterPassword": "Enter Password", - "openA2aDashboard": "Open A2A Dashboard", - "enableProvider": "Enable Provider", - "modeTest": "Mode Test", - "failedDeleteChain": "Failed Delete Chain", - "providerDesc": "Provider Desc", - "templateLoadHint": "Template Load Hint", - "lastFailure": "Last Failure", - "moveDown": "Move Down", - "providerLabel": "Provider Label", - "clearCacheFailed": "Clear Cache Failed", - "imagesGenerations": "Images Generations", - "repairEnvWorking": "Repair Env Working", - "millisecondsShort": "Milliseconds Short", - "globalLabel": "Global Label", - "failuresPlural": "Failures Plural", - "completionsLegacyDesc": "Completions Legacy Desc", - "searchProviders": "Search Providers", - "chatPathHint": "Chat Path Hint", - "defaultStrategyDesc": "Default Strategy Desc", - "latencyP95": "Latency P95", - "textToSpeech": "Text To Speech", - "searchType": "Search Type", + "errorDeleting": "错误删除", + "openaiPrefixPlaceholder": "OpenAI 前缀", + "enterPassword": "输入密码", + "openA2aDashboard": "打开 A2A Dashboard", + "enableProvider": "启用提供商", + "modeTest": "测试模式", + "failedDeleteChain": "删除链失败", + "providerDesc": "提供商描述", + "templateLoadHint": "选择模板以快速填充配置。", + "lastFailure": "最近失败", + "moveDown": "移动下移", + "providerLabel": "提供商标签", + "clearCacheFailed": "清除缓存失败", + "imagesGenerations": "图像生成", + "repairEnvWorking": "修复环境处理中", + "millisecondsShort": "毫秒短标签", + "globalLabel": "全局标签", + "failuresPlural": "失败复数", + "completionsLegacyDesc": "旧版 Completions API 兼容端点。", + "searchProviders": "搜索 Provider", + "chatPathHint": "聊天路径提示", + "defaultStrategyDesc": "默认策略说明", + "latencyP95": "延迟P95", + "textToSpeech": "文本转语音", + "searchType": "搜索类型", "messages": "Messages", - "aggregatorsGateways": "Aggregators Gateways", - "comboStrategyAria": "Combo Strategy Aria", - "input": "Input", - "testingConnection": "Testing Connection", - "excludeDomains": "Exclude Domains", + "aggregatorsGateways": "聚合器与网关", + "comboStrategyAria": "Combo 策略", + "input": "输入", + "testingConnection": "正在测试连接", + "excludeDomains": "排除域名", "webCookieProviders": "Web Cookie Providers", - "allTestsPassed": "All Tests Passed", - "openaiCompatibleName": "Openai Compatible Name", - "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing", - "comboDefaultsGuideTitle": "Combo Defaults Guide Title", - "hoursAgo": "Hours Ago", - "notAvailable": "Not Available", - "skipAndContinue": "Skip And Continue", - "moderations": "Moderations", - "proxyConfig": "Proxy Config", - "upstreamProxyProviders": "Upstream Proxy Providers", - "exportAll": "Export All", - "queuedCount": "Queued Count", - "resetAll": "Reset All", - "noTranslations": "No Translations", - "avgLatency": "Avg Latency", - "throttleStatus": "Throttle Status", - "backupRetentionDesc": "Backup Retention Desc", - "noCBData": "No Cb Data", - "chainDeleted": "Chain Deleted", - "timeLeft": "Time Left", - "expirationBannerExpired": "Expiration Banner Expired", - "language": "Language", - "invalidFileType": "Invalid File Type", - "monitoredProviders": "Monitored Providers", - "errors": "Errors", - "heap": "Heap", + "allTestsPassed": "全部测试通过", + "openaiCompatibleName": "OpenAI 兼容名称", + "warningCostOptimizedPartialPricing": "部分模型缺少定价,成本优化结果可能不完整。", + "comboDefaultsGuideTitle": "组合默认值指南", + "hoursAgo": "小时前", + "notAvailable": "不可用", + "skipAndContinue": "跳过并继续", + "moderations": "审核", + "proxyConfig": "代理配置", + "upstreamProxyProviders": "上游代理 Provider", + "exportAll": "导出全部", + "queuedCount": "排队中数量", + "resetAll": "重置全部", + "noTranslations": "无翻译", + "avgLatency": "平均延迟", + "throttleStatus": "限流状态", + "backupRetentionDesc": "备份保留说明", + "noCBData": "无CB数据", + "chainDeleted": "链已删除", + "timeLeft": "时间剩余", + "expirationBannerExpired": "过期横幅已过期", + "language": "语言", + "invalidFileType": "无效文件类型", + "monitoredProviders": "监控中的 Provider", + "errors": "错误", + "heap": "堆内存", "chatCompletions": "Chat Completions", - "exampleTemplatesHint": "Example Templates Hint", - "retryDelayLabel": "Retry Delay Label", - "audioTranscription": "Audio Transcription", - "fallbackChainsDesc": "Fallback Chains Desc", - "exampleTemplates": "Example Templates", - "connectionsCount": "Connections Count", - "modelsPathLabel": "Models Path Label", - "activeProvidersHint": "Active Providers Hint", - "activeLockouts": "Active Lockouts", - "invalid": "Invalid", - "skipPassword": "Skip Password", - "moveUp": "Move Up", - "timeRange": "Time Range", - "stickyLimitDesc": "Sticky Limit Desc", - "cloudBenefitEdge": "Cloud Benefit Edge", - "custom": "Custom", - "verifying": "Verifying", - "baseUrlLabel": "Base Url Label", - "setPassword": "Set Password", - "safeSearchStrict": "Safe Search Strict", - "noChangesSinceBackup": "No Changes Since Backup", - "modelsPathHint": "Models Path Hint", - "audioTranscriptions": "Audio Transcriptions", - "testCombo": "Test Combo", - "mcpQuickStartTitle": "Mcp Quick Start Title", - "comboUpdated": "Combo Updated", - "weighted": "Weighted", - "providers": "Providers", + "exampleTemplatesHint": "示例模板提示", + "retryDelayLabel": "重试延迟标签", + "audioTranscription": "音频转写", + "fallbackChainsDesc": "定义每个模型的提供商后备顺序。", + "exampleTemplates": "示例模板", + "connectionsCount": "连接数量", + "modelsPathLabel": "Model 路径", + "activeProvidersHint": "当前正在处理请求的 Provider。", + "activeLockouts": "活跃锁定", + "invalid": "无效", + "skipPassword": "跳过密码", + "moveUp": "移动上移", + "timeRange": "时间范围", + "stickyLimitDesc": "粘性限制说明", + "cloudBenefitEdge": "边缘 Cloud 能力", + "custom": "自定义", + "verifying": "正在验证", + "baseUrlLabel": "Base URL 标签", + "setPassword": "设置密码", + "safeSearchStrict": "安全搜索严格", + "noChangesSinceBackup": "无变更自从备份", + "modelsPathHint": "用于拉取 Model 列表的路径。", + "audioTranscriptions": "音频转写", + "testCombo": "测试组合", + "mcpQuickStartTitle": "MCP 快速开始", + "comboUpdated": "Combo 已更新", + "weighted": "加权", + "providers": "Provider", "ccCompatibleLabel": "CC 兼容", - "noFallbackChainsDesc": "No Fallback Chains Desc", - "yesImport": "Yes Import", - "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint", - "tabApis": "Tab Apis", - "sectionDescription": "Section Description", - "filter": "Filter", - "purgeLogsFailed": "Purge Logs Failed", - "latency": "Latency", - "testAllOAuth": "Test All O Auth", - "mcpQuickStartStep3": "Mcp Quick Start Step3", - "repairEnvFailed": "Repair Env Failed", - "zedImportHint": "Zed Import Hint", - "modelsAcrossEndpoints": "Models Across Endpoints", - "autoDisableBannedAccounts": "Auto Disable Banned Accounts", - "securityDesc": "Security Desc", - "listModels": "List Models", - "backupRestore": "Backup Restore", - "target": "Target", - "zedImportSuccess": "Zed Import Success", - "lastHeaderUpdate": "Last Header Update", - "categoryCore": "Category Core", - "noFallbackChains": "No Fallback Chains", - "noSearchProviders": "No Search Providers", - "autoBalance": "Auto Balance", - "noModelsYet": "No Models Yet", - "signatureFamily": "Signature Family", - "externalApiCalls": "External Api Calls", - "providerOverridesDesc": "Provider Overrides Desc", - "signatureTool": "Signature Tool", - "connectionFailed": "Connection Failed", - "activeLimitersPlural": "Active Limiters Plural", - "doneDesc": "Done Desc", - "down": "Down", - "noDataYet": "No Data Yet", - "activeProviders": "Active Providers", - "nameInvalid": "Name Invalid", - "skip": "Skip", - "createChain": "Create Chain", - "audioSpeech": "Audio Speech", - "cacheCleared": "Cache Cleared", - "searchTypeNews": "Search Type News", - "durationMillisecondsShort": "Duration Milliseconds Short", - "addOpenAICompatible": "Add Open Ai Compatible", - "chatTesterTab": "Chat Tester Tab", - "queued": "Queued", - "domainPlaceholder": "Domain Placeholder", - "durationMinutesShort": "Duration Minutes Short", - "verifyingConnection": "Verifying Connection", - "imageProviders": "Image Providers", - "protocolToolsLabel": "Protocol Tools Label", - "queryPlaceholder": "Query Placeholder", - "videoGeneration": "Video Generation", - "timeRangeWeek": "Time Range Week", - "limitExhausted": "Limit Exhausted", - "failedDisable": "Failed Disable", - "inMemoryNote": "In Memory Note", - "compatibleHint": "Compatible Hint", - "errorShort": "Error Short", - "advancedHint": "Advanced Hint", - "restoreFailed": "Restore Failed", - "searchProvidersHeading": "Search Providers Heading", - "comboName": "Combo Name", - "autoDisableDescription": "Auto Disable Description", - "embeddingsDesc": "Embeddings Desc", - "operational": "Operational", - "testAllApiKey": "Test All Api Key", - "backupCreated": "Backup Created", - "errorDuringImport": "Error During Import", - "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2", - "connecting": "Connecting", - "fillModelAndProviders": "Fill Model And Providers", - "syncing": "Syncing", - "resetConfirm": "Reset Confirm", - "trackMetrics": "Track Metrics", - "successful": "Successful", - "recovering": "Recovering", - "autoDisableThreshold": "Auto Disable Threshold", + "noFallbackChainsDesc": "创建一条链路,用于定义某个模型的提供商回退顺序。", + "yesImport": "确认导入", + "lockoutsAutoRefreshHint": "锁定自动刷新提示", + "tabApis": "API 标签页", + "sectionDescription": "分区描述", + "filter": "筛选", + "purgeLogsFailed": "清理日志失败", + "latency": "延迟", + "testAllOAuth": "测试所有 OAuth", + "mcpQuickStartStep3": "MCP 快速开始步骤 3", + "repairEnvFailed": "环境修复失败", + "zedImportHint": "从 Zed 配置中导入 Provider。", + "modelsAcrossEndpoints": "跨 Endpoint 的 Model", + "autoDisableBannedAccounts": "自动禁用被封禁账户", + "securityDesc": "安全说明", + "listModels": "列出 Model", + "backupRestore": "备份恢复", + "target": "目标", + "zedImportSuccess": "Zed 导入成功", + "lastHeaderUpdate": "上次请求头更新", + "categoryCore": "类别核心", + "noFallbackChains": "无后备链", + "noSearchProviders": "无搜索 Provider", + "autoBalance": "自动均衡", + "noModelsYet": "暂无 Model", + "signatureFamily": "签名族", + "externalApiCalls": "外部 API 调用", + "providerOverridesDesc": "覆盖每个提供商的超时和重试设置。", + "signatureTool": "签名工具", + "connectionFailed": "连接失败", + "activeLimitersPlural": "活跃限制器复数", + "doneDesc": "完成说明", + "down": "下移", + "noDataYet": "无数据暂无", + "activeProviders": "活跃 Provider", + "nameInvalid": "名称无效", + "skip": "跳过", + "createChain": "创建链", + "audioSpeech": "语音合成", + "cacheCleared": "缓存已清除", + "searchTypeNews": "搜索类型:News", + "durationMillisecondsShort": "时长毫秒短标签", + "addOpenAICompatible": "添加打开Ai兼容", + "chatTesterTab": "聊天测试标签页", + "queued": "排队中", + "domainPlaceholder": "域名占位符", + "durationMinutesShort": "时长分钟短标签", + "verifyingConnection": "正在验证连接", + "imageProviders": "图像 Provider", + "protocolToolsLabel": "协议工具标签", + "queryPlaceholder": "查询占位符", + "videoGeneration": "视频生成", + "timeRangeWeek": "时间范围:周", + "limitExhausted": "限额已耗尽", + "failedDisable": "禁用失败", + "inMemoryNote": "数据仅保存在内存中。", + "compatibleHint": "兼容提示", + "errorShort": "错误短标签", + "advancedHint": "显示高级选项。", + "restoreFailed": "恢复失败", + "searchProvidersHeading": "搜索 Provider", + "comboName": "Combo 名称", + "autoDisableDescription": "当检测到永久封禁信号时自动禁用账户。", + "embeddingsDesc": "Embeddings API 兼容端点。", + "operational": "运行正常", + "testAllApiKey": "测试所有 API 密钥", + "backupCreated": "备份已创建", + "errorDuringImport": "错误期间导入", + "comboDefaultsGuideHint2": "这些默认值会在新建 Combo 时使用。", + "connecting": "正在连接", + "fillModelAndProviders": "请填写模型和提供商", + "syncing": "正在同步", + "resetConfirm": "重置确认", + "trackMetrics": "跟踪指标", + "successful": "成功", + "recovering": "正在恢复", + "autoDisableThreshold": "自动禁用阈值", "anthropic": "Anthropic", - "syncingData": "Syncing Data", - "cloudBenefitPorts": "Cloud Benefit Ports", - "compatibleProviders": "Compatible Providers", - "clearCache": "Clear Cache", - "reqs": "Reqs", - "addAnthropicCompatible": "Add Anthropic Compatible", - "apiKeyProviders": "Api Key Providers", - "tabsAria": "Tabs Aria", - "resetting": "Resetting", - "millisecondsAbbr": "Milliseconds Abbr", - "backupReasonPreRestore": "Backup Reason Pre Restore", - "disableCloud": "Disable Cloud", - "newProviderNameAria": "New Provider Name Aria", - "passwordsMismatch": "Passwords Mismatch", - "a2aQuickStartStep3": "A2A Quick Start Step3", - "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix", - "failedAddProvider": "Failed Add Provider", - "addAtLeastOneProvider": "Add At Least One Provider", - "reasonSeparator": "Reason Separator", - "zedImporting": "Zed Importing", - "confirmPasswordPlaceholder": "Confirm Password Placeholder", - "whatYouGet": "What You Get", - "signatureSession": "Signature Session", - "errorCountNoCode": "Error Count No Code", - "testing": "Testing", - "providersCommaSeparated": "Providers Comma Separated", - "exportDatabase": "Export Database", - "hitRate": "Hit Rate", - "completionsLegacy": "Completions Legacy", - "removeModel": "Remove Model", - "timeRangeDay": "Time Range Day", - "cloudRequestFailed": "Cloud Request Failed", - "updatedAt": "Updated At", - "monitoredProvidersHint": "Monitored Providers Hint", - "connectionSuccessful": "Connection Successful", - "latencyP50": "Latency P50", - "logsDeleted": "Logs Deleted", - "chatTester": "Chat Tester", - "safeSearchOff": "Safe Search Off", - "nameHint": "Name Hint", - "debugToggle": "Debug Toggle", + "syncingData": "正在同步数据", + "cloudBenefitPorts": "通过 Cloud 暴露端口", + "compatibleProviders": "兼容 Provider", + "clearCache": "清除缓存", + "reqs": "请求数", + "addAnthropicCompatible": "添加 Anthropic 兼容 Provider", + "apiKeyProviders": "API key Provider", + "tabsAria": "标签页", + "resetting": "正在重置", + "millisecondsAbbr": "毫秒缩写", + "backupReasonPreRestore": "恢复前备份", + "disableCloud": "禁用云端", + "newProviderNameAria": "新的提供商名称", + "passwordsMismatch": "密码不匹配", + "a2aQuickStartStep3": "A2A快速开始步骤3", + "liveMonitorDescriptionSuffix": "或外部 API 调用来生成事件。", + "failedAddProvider": "添加提供商失败", + "addAtLeastOneProvider": "至少添加一个提供商", + "reasonSeparator": "原因分隔符", + "zedImporting": "正在从 Zed 导入", + "confirmPasswordPlaceholder": "确认密码占位符", + "whatYouGet": "你将获得", + "signatureSession": "签名 Session", + "errorCountNoCode": "无代码错误数", + "testing": "正在测试", + "providersCommaSeparated": "以逗号分隔的 Provider", + "exportDatabase": "导出数据库", + "hitRate": "命中率", + "completionsLegacy": "Completions 旧版", + "removeModel": "移除模型", + "timeRangeDay": "时间范围:天", + "cloudRequestFailed": "云端请求失败", + "updatedAt": "更新时间", + "monitoredProvidersHint": "选择需要监控的 Provider。", + "connectionSuccessful": "连接成功", + "latencyP50": "延迟P50", + "logsDeleted": "日志已删除", + "chatTester": "聊天测试器", + "safeSearchOff": "Safe Search 关闭", + "nameHint": "名称提示", + "debugToggle": "调试开关", "embedding": "Embedding", - "issuesLabel": "Issues Label", - "optionAny": "Option Any", - "maxNestingDepth": "Max Nesting Depth", + "issuesLabel": "问题标签", + "optionAny": "任意选项", + "maxNestingDepth": "最大嵌套深度", "rerank": "Rerank", - "checking": "Checking", - "getStarted": "Get Started", - "restoreSuccess": "Restore Success", - "issuesDetected": "Issues Detected", - "signatureCache": "Signature Cache", - "modelLockouts": "Model Lockouts", - "usingCloudProxy": "Using Cloud Proxy", - "loadingHealth": "Loading Health", - "providerOverrides": "Provider Overrides", - "audioTranscriptionDesc": "Audio Transcription Desc", - "learnedFromHeaders": "Learned From Headers", - "totalRequests": "Total Requests", - "cloudUnstableNote": "Cloud Unstable Note" + "checking": "正在检查", + "getStarted": "开始使用", + "restoreSuccess": "恢复成功", + "issuesDetected": "检测到问题", + "signatureCache": "签名缓存", + "modelLockouts": "模型锁定", + "usingCloudProxy": "正在使用 Cloud 代理", + "loadingHealth": "正在加载健康状态", + "providerOverrides": "提供商覆盖", + "audioTranscriptionDesc": "音频转写说明", + "learnedFromHeaders": "从响应头学习", + "totalRequests": "总计请求", + "cloudUnstableNote": "Cloud 连接不稳定,部分功能可能受影响。" }, "sidebar": { "home": "首页", @@ -707,40 +707,41 @@ "cliToolsShort": "工具", "cache": "缓存", "cacheShort": "缓存", - "batch": "Batch Jobs", - "themeSystem": "Theme System", - "whitelabelingDesc": "Whitelabeling Desc", - "switchThemes": "Switch Themes", - "themeAccentDesc": "Theme Accent Desc", - "uploadFavicon": "Upload Favicon", - "themeDark": "Theme Dark", - "customLogoDesc": "Custom Logo Desc", - "sidebarVisibilityToggle": "Sidebar Visibility Toggle", - "themeAccent": "Theme Accent", - "resetFavicon": "Reset Favicon", - "whitelabeling": "Whitelabeling", - "darkMode": "Dark Mode", - "uploadLogo": "Upload Logo", - "themeLight": "Theme Light", - "appName": "App Name", - "appNameDesc": "App Name Desc", - "resetLogo": "Reset Logo", - "customFavicon": "Custom Favicon", - "hideHealthLogs": "Hide Health Logs", - "customLogo": "Custom Logo", - "appearance": "Appearance", - "themeSelectionAria": "Theme Selection Aria", - "themeCreate": "Theme Create", - "customFaviconDesc": "Custom Favicon Desc", - "logoPreview": "Logo Preview", - "themeCustom": "Theme Custom", - "hideHealthLogsDesc": "Hide Health Logs Desc", - "faviconPreview": "Favicon Preview", - "changelog": "Changelog", - "contextSection": "Context & Cache", + "batch": "批量任务", + "themeSystem": "主题系统", + "whitelabelingDesc": "自定义品牌展示与主题外观。", + "switchThemes": "切换主题", + "themeAccentDesc": "选择用于按钮、链接和高亮状态的强调色。", + "uploadFavicon": "上传 Favicon", + "themeDark": "深色主题", + "customLogoDesc": "上传用于侧边栏和登录页的自定义 Logo。", + "sidebarVisibilityToggle": "侧边栏可见性开关", + "themeAccent": "主题强调色", + "resetFavicon": "重置 Favicon", + "whitelabeling": "白标", + "darkMode": "深色模式", + "uploadLogo": "上传 Logo", + "themeLight": "浅色主题", + "appName": "应用名称", + "appNameDesc": "设置在界面和浏览器标题中显示的名称。", + "resetLogo": "重置 Logo", + "customFavicon": "自定义 Favicon", + "hideHealthLogs": "隐藏健康检查日志", + "customLogo": "自定义 Logo", + "appearance": "外观", + "themeSelectionAria": "主题选择", + "themeCreate": "创建主题", + "customFaviconDesc": "上传用于浏览器标签页的自定义 Favicon。", + "logoPreview": "Logo 预览", + "themeCustom": "自定义主题", + "hideHealthLogsDesc": "隐藏健康检查日志说明", + "faviconPreview": "Favicon 预览", + "changelog": "更新日志", + "contextSection": "上下文与缓存", "contextCaveman": "Caveman", "contextRtk": "RTK", - "contextCombos": "Compression Combos" + "contextCombos": "压缩组合", + "webhooks": "Webhook" }, "themesPage": { "title": "主题", @@ -832,8 +833,8 @@ "modelStatusError": "错误", "comboHealth": "组合健康状况", "comboHealthDescription": "组合级别配额、使用分布和性能指标", - "compressionAnalyticsTitle": "Compression Analytics", - "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats." + "compressionAnalyticsTitle": "压缩分析", + "compressionAnalyticsDescription": "压缩分析 — token 节省、模式分布和提供商统计。" }, "apiManager": { "title": "API 密钥", @@ -1287,8 +1288,8 @@ "title": "选择模型" }, "5": { - "title": "Use Thinking Variant", - "desc": "For thinking models, run with --variant high/low/max (example command below)." + "title": "使用 Thinking 变体", + "desc": "对于思考模型,请使用 --variant high/low/max 运行(示例命令见下方)。" } }, "notes": { @@ -1320,12 +1321,12 @@ "windsurf": { "steps": { "1": { - "title": "Open AI Settings", - "desc": "Click the AI Settings icon in Windsurf or go to Settings" + "title": "打开 AI 设置", + "desc": "点击 Windsurf 中的 AI Settings 图标,或前往 Settings" }, "2": { - "title": "Add Custom Provider", - "desc": "Select \"Add custom provider\" (OpenAI-compatible)" + "title": "添加自定义提供商", + "desc": "选择 \"Add custom provider\" (OpenAI 兼容)" }, "3": { "title": "Base URL", @@ -1333,11 +1334,11 @@ }, "4": { "title": "API Key", - "desc": "Select your OmniRoute API key" + "desc": "选择你的 OmniRoute API 密钥" }, "5": { - "title": "Select Model", - "desc": "Choose a model from the dropdown" + "title": "选择模型", + "desc": "从下拉菜单中选择模型" } } } @@ -1800,23 +1801,61 @@ "noData": "无成本数据", "byModel": "按模型", "byProvider": "按提供商", - "spend30d": "Spend30D", - "activeModels": "Active Models", - "selectedWindow": "Selected Window", - "activeProviders": "Active Providers", - "overviewTitle": "Overview Title", - "spend7d": "Spend7D", - "avgCostPerRequest": "Avg Cost Per Request", - "noCostDataDescription": "No Cost Data Description", - "spendToday": "Spend Today", - "overviewLoadFailed": "Overview Load Failed", - "overviewDescription": "Overview Description", - "providerShare": "Provider Share", - "topProviders": "Top Providers", - "costTrend": "Cost Trend", - "noCostDataTitle": "No Cost Data Title", - "topModels": "Top Models", - "requestsInWindow": "Requests In Window" + "spend30d": "30 天支出", + "activeModels": "活跃 Model", + "selectedWindow": "已选窗口", + "activeProviders": "活跃 Provider", + "overviewTitle": "概览", + "spend7d": "7 天支出", + "avgCostPerRequest": "平均每次请求成本", + "noCostDataDescription": "发起请求后,成本数据会显示在这里。", + "spendToday": "今日支出", + "overviewLoadFailed": "加载成本概览失败", + "overviewDescription": "按提供商、模型和时间段汇总成本。", + "providerShare": "提供商占比", + "topProviders": "热门 Provider", + "costTrend": "成本趋势", + "noCostDataTitle": "暂无成本数据", + "topModels": "热门 Model", + "requestsInWindow": "窗口内请求数", + "pageDescription": "跟踪支出、分析趋势,并管理所有提供商的 AI 预算", + "overview": "概览", + "range7d": "7 天", + "range30d": "30 天", + "range90d": "90 天", + "rangeAll": "全部时间", + "tokenUsage": "Token 用量", + "totalTokens": "Token 总数", + "inputTokens": "输入 Token", + "outputTokens": "输出 Token", + "inputOutputRatio": "输入/输出比例", + "tokens": "token", + "routingEfficiency": "路由效率", + "fallbackCount": "回退请求数", + "fallbackRate": "回退率", + "modelCoverage": "模型覆盖率", + "modelCoverageDesc": "带有明确模型的请求占比", + "outOfRequests": "共 {total} 个请求", + "costByApiKey": "按 API 密钥统计成本", + "costByAccount": "按账户统计成本", + "apiKeyName": "API 密钥", + "account": "账户", + "requests": "请求数", + "cost": "成本", + "dayStreak": "连续天数", + "weeklyUsagePattern": "每周使用模式", + "activityHeatmap": "活动热力图(365 天)", + "less": "较少", + "more": "较多", + "monthlyForecast": "月度预测", + "forecastBasis": "基于最近 {days} 天", + "avgDailyCost": "平均每日成本", + "daysRemaining": "剩余 {days} 天", + "periodComparison": "周期对比", + "previousPeriod": "上半期", + "currentPeriod": "当前半期", + "exportCSV": "导出为 CSV", + "exportJSON": "导出为 JSON" }, "endpoint": { "title": "API 端点", @@ -1949,40 +1988,58 @@ "a2aQuickStartStep3": "使用 `tasks/get` 与 `tasks/cancel` 跟踪和控制任务。", "completionsLegacy": "Completions(旧版)", "completionsLegacyDesc": "旧版 OpenAI 文本补全接口,同时接受 `prompt` 字符串和 `messages` 数组格式", - "videoGeneration": "Video Generation", - "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.", - "tailscaleRequestFailed": "Failed to load Tailscale status", - "tailscaleEnableFailed": "Failed to enable Tailscale Funnel", - "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.", - "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login", - "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.", - "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled", - "tailscaleStarted": "Tailscale Funnel enabled", - "tailscaleDisableFailed": "Failed to disable Tailscale Funnel", - "tailscaleStopped": "Tailscale Funnel disabled", - "tailscaleInstallFailed": "Failed to install Tailscale", - "tailscaleInstallProgress": "Working...", - "tailscaleInstalled": "Tailscale installed successfully", - "tailscaleRunning": "Running", - "tailscaleNeedsLogin": "Needs Login", - "tailscaleStoppedState": "Stopped", - "tailscaleNotInstalled": "Not installed", - "tailscaleUnsupported": "Unsupported", - "tailscaleError": "Error", - "tailscaleDisable": "Stop Funnel", - "tailscaleInstallAndEnable": "Install & Enable", - "tailscaleLoginAndEnable": "Login & Enable", - "tailscaleEnable": "Enable Funnel", - "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.", + "videoGeneration": "视频生成", + "videoDesc": "使用 ComfyUI 和 Stable Video Diffusion 等 AI 模型生成视频。", + "tailscaleRequestFailed": "加载 Tailscale 状态失败", + "tailscaleEnableFailed": "启用 Tailscale Funnel 失败", + "tailscaleWaitingForLogin": "请在打开的浏览器标签页中完成 Tailscale 登录。OmniRoute 会自动重试。", + "tailscaleLoginTimedOut": "等待 Tailscale 登录超时", + "tailscaleWaitingForFunnel": "请在打开的浏览器标签页中为此设备启用 Funnel。OmniRoute 会继续轮询。", + "tailscaleFunnelTimedOut": "等待启用 Tailscale Funnel 超时", + "tailscaleStarted": "Tailscale Funnel 已启用", + "tailscaleDisableFailed": "禁用 Tailscale Funnel 失败", + "tailscaleStopped": "Tailscale Funnel 已禁用", + "tailscaleInstallFailed": "安装 Tailscale 失败", + "tailscaleInstallProgress": "处理中...", + "tailscaleInstalled": "Tailscale 安装成功", + "tailscaleRunning": "运行中", + "tailscaleNeedsLogin": "需要登录", + "tailscaleStoppedState": "已停止", + "tailscaleNotInstalled": "未安装", + "tailscaleUnsupported": "不支持", + "tailscaleError": "错误", + "tailscaleDisable": "停止 Funnel", + "tailscaleInstallAndEnable": "安装并启用", + "tailscaleLoginAndEnable": "登录并启用", + "tailscaleEnable": "启用 Funnel", + "tailscaleUrlNotice": "使用你的 Tailscale .ts.net 地址。首次使用时可能需要登录并批准 Funnel。", "tailscaleTitle": "Tailscale Funnel", - "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.", + "tailscaleNeedsLoginHint": "先使用 Tailscale 认证此机器,然后启用 Funnel。", "tailscaleBinaryPath": "Binary: {path}", - "tailscaleLastError": "Last error: {error}", - "tailscaleInstallTitle": "Install Tailscale", - "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.", - "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.", - "tailscaleSudoPlaceholder": "Optional sudo password", - "tailscaleInstalling": "Installing" + "tailscaleLastError": "最近错误:{error}", + "tailscaleInstallTitle": "安装 Tailscale", + "tailscaleInstallIntro": "在此机器上安装 Tailscale,并准备让 OmniRoute 启用 Funnel。", + "tailscaleInstallPasswordHint": "在 macOS 和 Linux 上,安装软件包和启动守护进程可能需要 sudo。", + "tailscaleSudoPlaceholder": "可选 sudo 密码", + "tailscaleInstalling": "正在安装", + "tailscaleSudoLabel": "Sudo 密码(macOS/Linux 上必需)", + "ngrokTitle": "ngrok 隧道", + "ngrokRunning": "运行中", + "ngrokStarting": "正在启动", + "ngrokStoppedState": "已停止", + "ngrokNeedsAuth": "需要认证", + "ngrokNotInstalled": "未安装", + "ngrokUnsupported": "不支持", + "ngrokError": "错误", + "ngrokEnable": "启用隧道", + "ngrokDisable": "停止隧道", + "ngrokUrlNotice": "创建一个公开的 ngrok 隧道。", + "ngrokAuthTokenLabel": "Authtoken(未设置 NGROK_AUTHTOKEN 时必需)", + "ngrokAuthTokenPlaceholder": "输入你的 ngrok authtoken", + "ngrokLastError": "上次错误:{error}", + "ngrokStarted": "ngrok 隧道已启动", + "ngrokStopped": "ngrok 隧道已停止", + "ngrokRequestFailed": "更新 ngrok 隧道失败" }, "endpoints": { "tabProxy": "端点代理", @@ -2063,10 +2120,10 @@ "failed": "失败", "previous": "上一页", "next": "下一页", - "apiKeyId": "Api Key Id", - "offset": "Offset", - "limit": "Limit", - "tool": "Tool" + "apiKeyId": "API Key ID", + "offset": "偏移量", + "limit": "限制", + "tool": "工具" }, "a2aDashboard": { "loading": "正在加载 A2A 仪表板...", @@ -2121,9 +2178,9 @@ "metadata": "元数据", "events": "事件", "artifacts": "产物", - "tablePhase": "Table Phase", - "offset": "Offset", - "limit": "Limit", + "tablePhase": "阶段", + "offset": "偏移量", + "limit": "限制", "skill": "Skill" }, "health": { @@ -2199,11 +2256,11 @@ "resetting": "正在重置...", "resetAll": "全部重置", "until": "直到 {time}", - "limitExhausted": "Exhausted", - "learnedFromHeaders": "Learned from headers", - "remainingOfLimit": "{remaining}/{limit} remaining", - "throttleStatus": "Throttle: {value}", - "lastHeaderUpdate": "Header update: {age}" + "limitExhausted": "已耗尽", + "learnedFromHeaders": "从响应头学习", + "remainingOfLimit": "剩余 {remaining}/{limit}", + "throttleStatus": "限流:{value}", + "lastHeaderUpdate": "响应头更新:{age}" }, "limits": { "title": "限制和配额", @@ -2242,46 +2299,46 @@ "noEntries": "未找到审核日志条目", "previous": "上一页", "next": "下一页", - "providerWarningTitle": "Provider Warning Title", - "viewDetails": "View Details", - "eventMetadata": "Event Metadata", - "eventPayload": "Event Payload", - "requestId": "Request Id", - "providerWarningDesc": "Provider Warning Desc", + "providerWarningTitle": "提供商警告", + "viewDetails": "查看详情", + "eventMetadata": "事件元数据", + "eventPayload": "事件负载", + "requestId": "请求 ID", + "providerWarningDesc": "上游提供商返回了警告。请查看详情以了解更多信息。", "a": "A", - "offset": "Offset", - "limit": "Limit", - "status": "Status", - "resourceType": "Resource Type", - "totalEntries": "Total Entries", - "tab": "Tab", - "auditModalSubtitle": "Audit Modal Subtitle", - "close": "Close", - "runningRequests": "Active Requests", - "runningRequestsDesc": "Real-time view of currently running upstream requests", - "model": "Model", - "provider": "Provider", + "offset": "偏移量", + "limit": "限制", + "status": "状态", + "resourceType": "资源类型", + "totalEntries": "总条目数", + "tab": "标签页", + "auditModalSubtitle": "审计详情", + "close": "关闭", + "runningRequests": "活跃请求", + "runningRequestsDesc": "当前正在运行的上游请求实时视图", + "model": "模型", + "provider": "提供商", "account": "Account", - "elapsed": "Elapsed", - "count": "Count", - "payloads": "Payloads", - "viewPayloads": "View", - "activeCount": "{count} active", - "clientPayload": "Client Request Payload", - "upstreamPayload": "Upstream Provider Payload", - "upstreamNotSentYet": "Not sent to upstream yet", - "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}", + "elapsed": "已耗时", + "count": "数量", + "payloads": "Payload", + "viewPayloads": "查看", + "activeCount": "{count} 个活跃", + "clientPayload": "客户端请求载荷", + "upstreamPayload": "上游提供商载荷", + "upstreamNotSentYet": "尚未发送到上游", + "runningRequestDetailMeta": "Account:{account} — 已耗时:{elapsed}", "consoleViewer": { - "fetchFailed": "Failed to fetch logs", - "copyFailed": "Failed to copy log entry", - "copyLogEntry": "Copy log entry" + "fetchFailed": "获取日志失败", + "copyFailed": "复制日志条目失败", + "copyLogEntry": "复制日志条目" }, - "export": "Export", - "exporting": "Exporting...", - "exportFailed": "Export failed", - "timeRange": "Time Range", - "lastNHours": "Last {hours}", - "defaultRange": "default" + "export": "导出", + "exporting": "正在导出...", + "exportFailed": "导出失败", + "timeRange": "时间范围", + "lastNHours": "最近 {hours} 小时", + "defaultRange": "默认" }, "onboarding": { "welcome": "欢迎", @@ -2377,7 +2434,7 @@ "selectProvider": "选择提供商", "selectedProvider": "选定的提供商", "authMethod": "认证方式", - "apiKeyLabel": "API密钥", + "apiKeyLabel": "API key", "apiKeyRequired": "需要 API 密钥", "selectProviderRequired": "请选择提供商", "enterApiKey": "输入您的 API 密钥", @@ -2420,7 +2477,7 @@ "nameLabel": "名称", "prefixLabel": "前缀", "baseUrlLabel": "基础 URL", - "apiTypeLabel": "API类型", + "apiTypeLabel": "API 类型", "prefixHint": "必填。模型名称使用的唯一前缀。", "nameHint": "必填。该节点的友好标签。", "baseUrlHint": "必填。  提供商 API 基本 URL。", @@ -2436,9 +2493,6 @@ "testKeyPlaceholder": "sk-...(仅用于验证)", "providerNotFound": "未找到提供商", "deleteConnectionConfirm": "删除这个连接吗?", - "batchDeleteSelected": "Delete Selected ({count})", - "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.", - "batchDeleteSuccess": "Deleted {count} connection(s)", "failedSetAlias": "设置别名失败", "failedSaveConnection": "保存连接失败", "failedSaveConnectionRetry": "无法保存连接。请再试一次。", @@ -2586,7 +2640,7 @@ "compatUpstreamRemoveRow": "删除此行", "compatBadgeUpstreamHeaders": "请求头", "perModelQuotaLabel": "按模型配额", - "perModelQuotaDescription": "启用后,429/404错误只会锁定特定模型,而不是整个连接。适用于具有按模型速率限制的提供商(例如ModelScope)。", + "perModelQuotaDescription": "启用后,429/404 错误只会锁定特定 Model,而不是整个连接。适用于具有按 Model 速率限制的 Provider(例如 ModelScope)。", "perModelQuotaToggle": "按模型配额开关", "modelId": "模型 ID", "customModelPlaceholder": "例如:gpt-4.5-turbo", @@ -2655,39 +2709,39 @@ "statusCreditsExhausted": "余额不足 / 配额已耗尽", "showEmails": "显示所有邮箱", "hideEmails": "隐藏所有邮箱", - "imagesGenerations": "Images Generations", - "audioSpeech": "Audio Speech", - "audioTranscriptions": "Audio Transcriptions", + "imagesGenerations": "图像生成", + "audioSpeech": "语音合成", + "audioTranscriptions": "音频转写", "embeddings": "Embeddings", "a": "A", - "accountConcurrencyCapHint": "Account Concurrency Cap Hint", - "accountConcurrencyCapLabel": "Account Concurrency Cap Label", - "accountIdHint": "Account Id Hint", - "accountIdLabel": "Account Id Label", - "accountIdPlaceholder": "Account Id Placeholder", - "addAnotherApiKey": "Add another API key or paste multiple keys", + "accountConcurrencyCapHint": "限制此 Account 可同时处理的请求数。", + "accountConcurrencyCapLabel": "Account 并发上限", + "accountIdHint": "用于区分同一 Provider 下的多个 Account。", + "accountIdLabel": "Account ID", + "accountIdPlaceholder": "Account ID 占位符", + "addAnotherApiKey": "添加另一个 API 密钥或粘贴多个密钥", "addCcCompatible": "添加 CC 兼容", - "aggregatorsGateways": "Aggregators Gateways", - "apiFormatLabel": "Api Format Label", - "apiKeyOptionalHint": "Api Key Optional Hint", - "apiKeyOptionalLabel": "Api Key Optional Label", - "apiRegionChina": "Api Region China", - "apiRegionHint": "Api Region Hint", - "apiRegionInternational": "Api Region International", - "apiRegionLabel": "Api Region Label", - "apikey": "Apikey", - "audio": "Audio", - "audioProvidersHeading": "Audio Providers Heading", - "audioShortLabel": "Audio Short Label", - "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint", - "bailianBaseUrlHint": "Bailian Base Url Hint", - "blackboxWebCookieHint": "Blackbox Web Cookie Hint", - "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder", + "aggregatorsGateways": "聚合器与网关", + "apiFormatLabel": "API 格式", + "apiKeyOptionalHint": "如果上游不需要认证,可以留空 API key。", + "apiKeyOptionalLabel": "API key(可选)", + "apiRegionChina": "中国区", + "apiRegionHint": "选择此 Provider 的 API 区域。", + "apiRegionInternational": "国际区", + "apiRegionLabel": "API 区域", + "apikey": "API key", + "audio": "音频", + "audioProvidersHeading": "音频 Provider", + "audioShortLabel": "音频", + "azureOpenAiBaseUrlHint": "Azure OpenAI 资源的 Base URL。", + "bailianBaseUrlHint": "阿里云百炼服务的 Base URL。", + "blackboxWebCookieHint": "从 Blackbox Web 会话复制 Cookie。", + "blackboxWebCookiePlaceholder": "Blackbox Web Cookie", "blockClaudeExtraUsageDescription": "隐藏部分 Provider 返回的重复 Claude 额外用量记录,避免和主 token 统计重复。", "blockClaudeExtraUsageLabel": "屏蔽重复 Claude 用量", - "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}", - "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}", - "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.", + "bulkPasteAdded": "{count, plural, one {已添加 1 个 key} other {已添加 # 个 key}}", + "bulkPasteDuplicatesIgnored": "{count, plural, one {已跳过 1 个重复项} other {已跳过 # 个重复项}}", + "bulkPasteHint": "每行粘贴一个 API 密钥。空行会被忽略,重复密钥会被跳过。", "ccCompatibleBaseUrlHint": "Claude Code 专用中转站的 Base URL,不要包含 /messages。", "ccCompatibleBaseUrlPlaceholder": "https://relay.example.com/v1", "ccCompatibleChatPathHint": "默认使用 Claude Code 严格的 Messages API 路径。仅在中转站文档要求时修改。", @@ -2707,111 +2761,118 @@ "codexFastServiceTierDescription": "可用时为 Codex 请求使用 priority 服务层。", "codexFastServiceTierLabel": "Codex 快速服务层", "codexWeeklyToggleTitle": "为此连接跟踪 Codex 周配额", - "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder", - "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder", - "compatible": "Compatible", - "configuredCount": "Configured Count", - "consoleApiKeyOracleHint": "Console Api Key Oracle Hint", - "consoleApiKeyOracleLabel": "Console Api Key Oracle Label", - "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder", + "compatUpstreamHeaderNamePlaceholder": "上游 Header 名称", + "compatUpstreamHeaderValuePlaceholder": "上游 Header 值", + "compatible": "兼容", + "configuredCount": "已配置数量", + "consoleApiKeyOracleHint": "用于从 Console 获取或验证 API key 的辅助配置。", + "consoleApiKeyOracleLabel": "Console API key Oracle", + "consoleApiKeyOraclePlaceholder": "Console API key Oracle 占位符", "cpaModeDisabledTitle": "CLIProxyAPI 兼容模式已关闭", "cpaModeEnabledTitle": "CLIProxyAPI 兼容模式已开启", - "customUserAgentHint": "Custom User Agent Hint", - "customUserAgentLabel": "Custom User Agent Label", - "databricksBaseUrlHint": "Databricks Base Url Hint", + "customUserAgentHint": "发送给上游 Provider 的自定义 User-Agent。", + "customUserAgentLabel": "自定义 User-Agent", + "databricksBaseUrlHint": "Databricks Serving Endpoint 的 Base URL。", "defaultThinkingStrengthHint": "请求未指定 reasoning effort 时使用。", "defaultThinkingStrengthLabel": "默认思考强度", - "deleteAllExtraApiKeys": "Delete all", - "excludedModelsHint": "Excluded Models Hint", - "excludedModelsLabel": "Excluded Models Label", - "excludedModelsPlaceholder": "Excluded Models Placeholder", - "expirationBannerExpired": "Expiration Banner Expired", - "expirationBannerExpiredDesc": "Expiration Banner Expired Desc", - "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon", - "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc", + "deleteAllExtraApiKeys": "全部删除", + "excludedModelsHint": "这些 Model 不会出现在路由和选择器中。", + "excludedModelsLabel": "排除的 Model", + "excludedModelsPlaceholder": "以逗号分隔的 Model ID", + "expirationBannerExpired": "凭据已过期", + "expirationBannerExpiredDesc": "此 Provider 的凭据已过期,请更新后继续使用。", + "expirationBannerExpiringSoon": "凭据即将过期", + "expirationBannerExpiringSoonDesc": "此 Provider 的凭据即将过期,请提前更新。", "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}", - "extraApiKeysHint": "Extra Api Keys Hint", - "extraApiKeysLabel": "Extra Api Keys Label", - "googlePseInfo": "Google Pse Info", - "grokWebCookieHint": "Grok Web Cookie Hint", - "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder", - "herokuBaseUrlHint": "Heroku Base Url Hint", - "hideEmail": "Hide Email", - "imageProviders": "Image Providers", - "imagesShortLabel": "Images Short Label", - "llmProviders": "Llm Providers", - "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint", - "localProviderBaseUrlHint": "Local Provider Base Url Hint", - "localProviders": "Local Providers", - "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error", - "museSparkWebCookieHint": "Muse Spark Web Cookie Hint", - "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder", - "oauth": "Oauth", - "openCliTools": "Open Cli Tools", - "openSettings": "Open Settings", + "extraApiKeysHint": "为同一提供商添加额外 API 密钥,以便轮换和回退使用。", + "extraApiKeysLabel": "额外 API 密钥", + "googlePseInfo": "配置 Google Programmable Search Engine 以启用 Web Search。", + "grokWebCookieHint": "从 Grok Web 会话复制 Cookie。", + "grokWebCookiePlaceholder": "Grok Web Cookie", + "herokuBaseUrlHint": "Heroku 部署的 Base URL。", + "hideEmail": "隐藏邮箱", + "imageProviders": "图像 Provider", + "imagesShortLabel": "图像", + "llmProviders": "LLM Provider", + "localProviderApiKeyOptionalHint": "本地提供商的 API 密钥通常是可选的。", + "localProviderBaseUrlHint": "输入本地提供商的 Base URL。", + "localProviders": "本地 Provider", + "maxConcurrentWholeNumberError": "最大并发必须是整数", + "museSparkWebCookieHint": "从 Muse Spark Web 会话复制 Cookie。", + "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie", + "oauth": "OAuth", + "openCliTools": "打开 CLI Tools", + "openSettings": "打开设置", "openaiResponsesStoreDescription": "允许兼容的 Responses API 请求保留已存储的响应状态。", "openaiResponsesStoreLabel": "OpenAI Responses 存储", - "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info", - "perplexityWebCookieHint": "Perplexity Web Cookie Hint", - "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder", - "personalAccessTokenLabel": "Personal Access Token Label", - "qoderPatHint": "Qoder Pat Hint", - "qoderPatPlaceholder": "Qoder Pat Placeholder", - "refreshOauthTokenTitle": "Refresh Oauth Token Title", - "regionHint": "Region Hint", - "regionLabel": "Region Label", - "removeThisKey": "Remove This Key", - "routingTagsHint": "Routing Tags Hint", - "routingTagsLabel": "Routing Tags Label", - "routingTagsPlaceholder": "Routing Tags Placeholder", - "search": "Search", - "searchEngineIdHint": "Search Engine Id Hint", - "searchEngineIdLabel": "Search Engine Id Label", - "searchEngineIdRequired": "Search Engine Id Required", - "searchProvider": "Search Provider", - "searchProviderDesc": "Search Provider Desc", - "searchProviders": "Search Providers", - "searchProvidersHeading": "Search Providers Heading", - "searxngBaseUrlHint": "Searxng Base Url Hint", - "searxngInfo": "Searxng Info", - "sessionCookieLabel": "Session Cookie Label", - "showEmail": "Show Email", - "snowflakeBaseUrlHint": "Snowflake Base Url Hint", + "perplexitySearchSharedKeyInfo": "Perplexity Search 可使用共享 key 配置。", + "perplexityWebCookieHint": "从 Perplexity Web 会话复制 Cookie。", + "perplexityWebCookiePlaceholder": "Perplexity Web Cookie", + "personalAccessTokenLabel": "个人访问令牌", + "qoderPatHint": "输入 Qoder Personal Access Token。", + "qoderPatPlaceholder": "Qoder PAT", + "refreshOauthTokenTitle": "刷新 OAuth Token", + "regionHint": "选择此 Provider 使用的区域。", + "regionLabel": "区域", + "removeThisKey": "移除此 key", + "routingTagsHint": "添加标签以便在路由规则中匹配此连接。", + "routingTagsLabel": "路由标签", + "routingTagsPlaceholder": "例如 coding, fast, cheap", + "search": "搜索", + "searchEngineIdHint": "Google Programmable Search Engine 的 ID。", + "searchEngineIdLabel": "Search Engine ID", + "searchEngineIdRequired": "Search Engine ID 为必填项", + "searchProvider": "搜索提供商", + "searchProviderDesc": "按名称、能力或类别查找提供商。", + "searchProviders": "搜索 Provider", + "searchProvidersHeading": "搜索 Provider", + "searxngBaseUrlHint": "SearXNG 实例的 Base URL。", + "searxngInfo": "配置 SearXNG 以启用自托管 Web Search。", + "sessionCookieLabel": "Session Cookie", + "showEmail": "显示邮箱", + "snowflakeBaseUrlHint": "Snowflake Cortex 服务的 Base URL。", "supportedEndpointAudio": "音频", "supportedEndpointChat": "聊天", "supportedEndpointEmbeddings": "Embeddings", "supportedEndpointImages": "图像", "supportedEndpointsLabel": "支持的端点", - "tagGroupHint": "Tag Group Hint", - "tagGroupLabel": "Tag Group Label", - "tagGroupPlaceholder": "Tag Group Placeholder", - "testModel": "Test Model", - "testingModel": "Testing Model", + "tagGroupHint": "用于筛选和组织 Provider 的标签分组。", + "tagGroupLabel": "标签分组", + "tagGroupPlaceholder": "标签分组占位符", + "testModel": "测试模型", + "testingModel": "正在测试模型", "toggleOffShort": "关", "toggleOnShort": "开", - "tokenExpiredBadge": "Token Expired Badge", - "tokenExpiredTitle": "Token Expired Title", - "tokenExpiresSoonTitle": "Token Expires Soon Title", - "tokenShort": "Token Short", - "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}", - "unhideModel": "Unhide Model", - "upstreamProxyProviders": "Upstream Proxy Providers", - "validationModelIdHint": "Validation Model Id Hint", - "validationModelIdLabel": "Validation Model Id Label", - "validationModelIdPlaceholder": "Validation Model Id Placeholder", - "vertexServiceAccountPlaceholder": "Vertex Service Account Placeholder", - "webCookieProviders": "Web Cookie Providers", - "weeklyShort": "Weekly Short", - "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint", - "zedImportButton": "Zed Import Button", - "zedImportFailed": "Zed Import Failed", - "zedImportHint": "Zed Import Hint", - "zedImportNetworkError": "Zed Import Network Error", - "zedImportNone": "Zed Import None", - "zedImportSuccess": "Zed Import Success", - "zedImporting": "Zed Importing", - "expiredBadge": "Expired", - "expiringSoonBadge": "Expiring Soon" + "tokenExpiredBadge": "Token 已过期", + "tokenExpiredTitle": "Token 已过期", + "tokenExpiresSoonTitle": "Token 即将过期", + "tokenShort": "Token", + "totalKeysRotating": "{count, plural, one {1 个 key 正在轮换} other {# 个 key 正在轮换}}", + "unhideModel": "取消隐藏模型", + "upstreamProxyProviders": "上游代理 Provider", + "validationModelIdHint": "用于验证此提供商连接的模型 ID。", + "validationModelIdLabel": "验证模型 ID", + "validationModelIdPlaceholder": "输入用于测试的模型 ID", + "vertexServiceAccountPlaceholder": "Vertex Service Account", + "webCookieProviders": "Web Cookie Provider", + "weeklyShort": "每周", + "xiaomiMimoBaseUrlHint": "小米 Mimo 服务的 Base URL。", + "zedImportButton": "从 Zed 导入", + "zedImportFailed": "Zed 导入失败", + "zedImportHint": "从 Zed 配置中导入 Provider。", + "zedImportNetworkError": "Zed 导入网络错误", + "zedImportNone": "没有可从 Zed 导入的内容", + "zedImportSuccess": "Zed 导入成功", + "zedImporting": "正在从 Zed 导入", + "expiredBadge": "已过期", + "expiringSoonBadge": "即将过期", + "freeTier": "免费额度", + "freeTierAvailable": "有免费额度", + "deprecated": "已弃用", + "deprecatedProvider": "此提供商已弃用", + "enterpriseCloud": "企业与云", + "videoProviders": "视频生成", + "embeddingRerankProviders": "嵌入与重排序" }, "settings": { "title": "设置", @@ -2824,22 +2885,22 @@ "systemPrompt": "系统提示", "thinkingBudget": "思考预算", "proxy": "代理", - "httpProxy": "HTTP Proxy", + "httpProxy": "HTTP 代理", "1proxy": "1proxy", - "proxySubTabsAria": "Proxy sections", - "requestBodyLimitTitle": "Request Body Limit", - "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.", - "requestBodyLimitInputLabel": "Request body limit in MB", - "requestBodyLimitEmptyError": "Enter a limit in MB", - "requestBodyLimitWholeNumberError": "Use a whole number", - "requestBodyLimitMinimumError": "Minimum is {min} MB", - "requestBodyLimitMaximumError": "Maximum is {max} MB", - "requestBodyLimitLoadFailed": "Failed to load request limit settings", - "requestBodyLimitSaveSuccess": "Request body limit saved", - "requestBodyLimitSaveFailed": "Failed to save request body limit", - "requestBodyLimitSaving": "Saving...", - "requestBodyLimitSave": "Save", - "requestBodyLimitCurrent": "Current: {value}", + "proxySubTabsAria": "代理设置分区", + "requestBodyLimitTitle": "请求体大小限制", + "requestBodyLimitDescription": "解析请求体前允许的最大 API 载荷大小。专用上传路由仍至少保留其内置的 100 MB 限制。", + "requestBodyLimitInputLabel": "请求体限制(MB)", + "requestBodyLimitEmptyError": "请输入 MB 限制值", + "requestBodyLimitWholeNumberError": "请使用整数", + "requestBodyLimitMinimumError": "最小值为 {min} MB", + "requestBodyLimitMaximumError": "最大值为 {max} MB", + "requestBodyLimitLoadFailed": "加载请求限制设置失败", + "requestBodyLimitSaveSuccess": "请求体限制已保存", + "requestBodyLimitSaveFailed": "保存请求体限制失败", + "requestBodyLimitSaving": "正在保存...", + "requestBodyLimitSave": "保存", + "requestBodyLimitCurrent": "当前:{value}", "pricing": "定价", "storage": "存储", "policies": "策略", @@ -3030,7 +3091,7 @@ "effortMedium": "中(10K Tokens)", "effortHigh": "高(128K Tokens)", "tokenBudget": "Token 预算", - "tokens": "Tokens", + "tokens": "Token", "baseEffortLevel": "基本努力水平", "adaptiveHint": "自适应模式根据消息计数、工具使用情况和提示长度从此基本级别进行扩展。", "requireLogin": "需要登录", @@ -3060,8 +3121,6 @@ "cliFingerprintEnabled": "已有 {count} 个提供商启用了 CLI 指纹", "enableFingerprintTitle": "为 {provider} 启用指纹", "disableFingerprintTitle": "为 {provider} 禁用指纹", - "forcedFingerprintTitle": "{provider} 始终启用 — OAuth 账户安全所必需;无法关闭。", - "forcedFingerprintBadge": "必需", "routingStrategy": "路由策略", "routingAdvancedGuideTitle": "高级路由指南", "routingAdvancedGuideHint1": "需要可预测优先级时使用 Fill First,需要公平分配时使用 Round Robin,需要延迟弹性时使用 P2C。", @@ -3084,7 +3143,7 @@ "stickyLimitDesc": "切换前每个账户连续处理的请求次数", "modelAliases": "模型别名", "modelAliasesTitle": "模型别名", - "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.", + "modelAliasesDesc": "使用精确匹配或通配符模式重映射模型名称。", "addCustomAlias": "添加自定义别名", "deprecatedModelId": "已弃用的模型 ID", "newModelId": "新模型 ID", @@ -3338,200 +3397,197 @@ "maintenance": "维护", "purgeExpiredLogs": "清理过期日志", "purgeLogsFailed": "清理日志失败", - "contextOpt": "Context Optimized", - "contextOptDesc": "Routes based on context window requirements and conversation length", - "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on", - "weightedDesc": "Distributes traffic by percentage weights across providers", - "modelRoutingTitle": "Model Routing Rules", - "modelRoutingDesc": "Automatically route models to specific combos using glob patterns", - "addRule": "Add Rule", - "routeToCombo": "Route to Combo", - "selectCombo": "Select combo...", - "priorityHint": "Higher = checked first. Use 10+ for specific patterns.", - "patternHint": "Use * for any chars, ? for single char. Case-insensitive.", - "noRoutingRules": "No routing rules configured. Requests use the global combo by default.", - "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.", - "deleteRoutingRule": "Delete this model routing rule?", - "exactMatchMode": "Exact Match", - "wildcardPatternMode": "Wildcard Pattern", - "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.", - "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.", - "noExactAliasesConfigured": "No exact-match aliases configured.", - "wildcardRulesTitle": "Wildcard Rules", - "noWildcardAliasesConfigured": "No wildcard aliases configured.", - "overview": "Overview", - "unknownError": "Unknown Error", - "pricingSourceLiteLLM": "Pricing Source Lite Llm", - "clearSyncedPricingConfirm": "Clear Synced Pricing Confirm", - "clearSyncedPricingFailed": "Clear Synced Pricing Failed", - "pricingSourceUser": "Pricing Source User", - "pageDescription": "Page Description", - "pricingSyncStatus": "Pricing Sync Status", - "whitelist": "Whitelist", - "syncDisabled": "Sync Disabled", - "pricingLoadFailed": "Pricing Load Failed", - "pricingSyncDescription": "Pricing Sync Description", - "clearSyncedPricingSuccess": "Clear Synced Pricing Success", - "clearSyncedPricingFailedWithReason": "Clear Synced Pricing Failed With Reason", - "pricingSourceDefault": "Pricing Source Default", - "pricingSyncSuccess": "Pricing Sync Success", - "enableSyncError": "Enable Sync Error", - "syncEnabled": "Sync Enabled", - "blacklist": "Blacklist", - "pricingSourceModelsDev": "Pricing Source Models Dev", - "syncedModels": "Synced Models", - "budget": "Budget", - "pricingSyncTitle": "Pricing Sync Title", - "pricingResetFailedWithReason": "Pricing Reset Failed With Reason", - "tab": "Tab", - "pricingSavedProvider": "Pricing Saved Provider", - "pricingSyncFailed": "Pricing Sync Failed", - "pricingSaveFailedWithReason": "Pricing Save Failed With Reason", - "pricingResetProvider": "Pricing Reset Provider", - "nextSync": "Next Sync", - "pricingSyncFailedWithReason": "Pricing Sync Failed With Reason", - "clearSyncedPricing": "Clear Synced Pricing", - "compressionTitle": "Prompt Compression", - "compressionDesc": "Reduce token usage by compressing prompts before sending to providers", - "compressionMode": "Compression Mode", - "compressionModeOff": "Off", - "compressionModeOffDesc": "No compression applied", + "contextOpt": "上下文优化", + "contextOptDesc": "根据上下文窗口需求和对话长度进行路由", + "priorityDesc": "顺序回退——先尝试提供商 1,再尝试提供商 2,依此类推", + "weightedDesc": "按百分比权重在各提供商之间分配流量", + "modelRoutingTitle": "模型路由规则", + "modelRoutingDesc": "使用 glob 模式自动将模型路由到指定组合", + "addRule": "添加规则", + "routeToCombo": "路由到组合", + "selectCombo": "选择组合...", + "priorityHint": "数值越高越优先检查。具体模式建议使用 10+。", + "patternHint": "使用 * 匹配任意字符,? 匹配单个字符。不区分大小写。", + "noRoutingRules": "未配置路由规则。请求默认使用全局组合。", + "routingRuleHint": "添加类似 claude-opus* -> frontier-combo 的规则,以自动路由请求。", + "deleteRoutingRule": "删除此模型路由规则?", + "exactMatchMode": "精确匹配", + "wildcardPatternMode": "通配符模式", + "exactMatchModeDesc": "对已弃用或已重命名的模型 ID 使用精确别名。", + "wildcardPatternModeDesc": "当一组模型应映射到同一目标时,使用带 * 和 ? 的通配符别名。", + "noExactAliasesConfigured": "未配置精确匹配别名。", + "wildcardRulesTitle": "通配符规则", + "noWildcardAliasesConfigured": "未配置通配符别名。", + "overview": "概览", + "unknownError": "未知错误", + "pricingSourceLiteLLM": "LiteLLM 定价来源", + "clearSyncedPricingConfirm": "确定要清除已同步的定价吗?", + "clearSyncedPricingFailed": "清除已同步定价失败", + "pricingSourceUser": "用户定价来源", + "pageDescription": "页面描述", + "pricingSyncStatus": "定价同步状态", + "whitelist": "白名单", + "syncDisabled": "同步已禁用", + "pricingLoadFailed": "加载定价失败", + "pricingSyncDescription": "从 models.dev 同步模型定价和能力数据。", + "clearSyncedPricingSuccess": "已清除同步定价", + "clearSyncedPricingFailedWithReason": "清除价格失败:{reason}", + "pricingSourceDefault": "默认定价来源", + "pricingSyncSuccess": "定价同步成功", + "enableSyncError": "启用同步失败", + "syncEnabled": "同步已启用", + "blacklist": "黑名单", + "pricingSourceModelsDev": "models.dev 定价来源", + "syncedModels": "已同步模型", + "budget": "预算", + "pricingSyncTitle": "定价同步", + "pricingResetFailedWithReason": "重置价格失败:{reason}", + "tab": "选项卡", + "pricingSavedProvider": "已保存 {provider} 的价格", + "pricingSyncFailed": "定价同步失败", + "pricingSaveFailedWithReason": "保存价格失败:{reason}", + "pricingResetProvider": "已重置 {provider} 的价格", + "nextSync": "下次同步", + "pricingSyncFailedWithReason": "价格同步失败:{reason}", + "clearSyncedPricing": "清除同步定价", + "compressionTitle": "提示词压缩", + "compressionDesc": "在发送给提供商之前压缩提示词,以减少 token 使用量", + "compressionMode": "压缩模式", + "compressionModeOff": "关闭", + "compressionModeOffDesc": "不应用压缩", "compressionModeLite": "Lite", - "compressionModeLiteDesc": "Whitespace and blank line reduction", - "compressionModeStandard": "Standard (Caveman)", - "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs", + "compressionModeLiteDesc": "减少空白字符和空行", + "compressionModeStandard": "标准(Caveman)", + "compressionModeStandardDesc": "基于规则的压缩,包含 30+ 个模式,并保留代码块和 URL", "compressionModeAggressive": "Aggressive", - "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings", + "compressionModeAggressiveDesc": "摘要 + 工具结果压缩 + 渐进老化,以实现最大节省", "compressionModeUltra": "Ultra", - "compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication", - "compressionGeneral": "General Settings", - "compressionAutoTrigger": "Auto-Trigger Threshold", - "compressionCacheTTL": "Cache TTL", - "compressionPreserveSystem": "Preserve System Prompt", - "compressionCavemanConfig": "Caveman Engine Configuration", - "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine", - "compressionRoles": "Compress Message Roles", - "compressionRoleUser": "User", - "compressionRoleAssistant": "Assistant", - "compressionRoleSystem": "System", - "compressionMinLength": "Minimum Message Length", - "compressionSkipRules": "Skip Compression Rules", - "compressionSkipRulesDesc": "Click rules to skip them during compression", - "compressionPreservePatterns": "Preserve Patterns", - "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)", - "compressionLogTitle": "Compression Log", - "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.", + "compressionModeUltraDesc": "使用包括语义去重在内的全部技术进行最大压缩", + "compressionGeneral": "通用设置", + "compressionAutoTrigger": "自动触发阈值", + "compressionCacheTTL": "缓存 TTL", + "compressionPreserveSystem": "保留系统提示", + "compressionCavemanConfig": "Caveman 引擎配置", + "compressionCavemanConfigDesc": "微调基于规则的压缩引擎", + "compressionRoles": "压缩消息角色", + "compressionRoleUser": "用户", + "compressionRoleAssistant": "助手", + "compressionRoleSystem": "系统", + "compressionMinLength": "最小消息长度", + "compressionSkipRules": "跳过压缩规则", + "compressionSkipRulesDesc": "点击规则以在压缩时跳过它们", + "compressionPreservePatterns": "保留模式", + "compressionPreservePatternsDesc": "永不压缩的正则表达式模式(每行一个)", + "compressionLogTitle": "压缩日志", + "compressionLogEmpty": "尚无压缩请求。启用压缩后处理请求时,压缩统计会显示在这里。", "compressionModeRtk": "RTK", - "compressionModeRtkDesc": "Command-aware tool output filtering", - "compressionModeStacked": "Stacked", - "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression", - "qdrantTitle": "Qdrant (Vector memory)", - "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.", - "qdrantStatusActive": "Active", - "qdrantStatusError": "Error", - "qdrantStatusDisabled": "Disabled", - "qdrantEnable": "Enable Qdrant", - "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.", - "qdrantTesting": "Testing...", - "qdrantTestConnection": "Test connection", - "qdrantSaved": "Configuration saved", - "qdrantSaveError": "Failed to save configuration", - "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant", - "qdrantPort": "Port", - "qdrantPortHint": "Qdrant default: 6333", - "qdrantCollectionHint": "Where memory points will be stored.", - "qdrantEmbeddingModel": "Embedding model", - "qdrantHelpTitle": "Quick setup help", - "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)", - "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.", - "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.", - "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.", - "qdrantHelpStep4": "4. Save, test connection, then test search.", - "qdrantEmbeddingQuickSelect": "Quick select from discovered models...", - "qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small", - "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.", - "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)", - "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)", - "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.", - "qdrantSearchTestTitle": "Search test", - "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.", - "qdrantSearchPlaceholder": "Example: user preferences, history, etc", - "qdrantNoResults": "No results (or Qdrant is not configured).", - "qdrantCleanupTitle": "Retention and cleanup", - "qdrantCleanupDesc": "Removes expired and old points based on", - "searching": "Searching...", - "cleaning": "Cleaning...", - "cleanNow": "Clean now" + "compressionModeRtkDesc": "感知命令的工具输出过滤", + "compressionModeStacked": "堆叠", + "compressionModeStackedDesc": "先进行 RTK 工具输出过滤,再进行 Caveman 消息压缩", + "mitmProxy": "MITM 代理", + "authModelHeading": "当前授权模型", + "authModelClient": "客户端 API 端点(/v1/*、/chat/*、/responses/*、/codex/*、/messages/*)需要 Bearer API 密钥。", + "authModelManagement": "管理端点(/dashboard、/api/*)需要仪表盘会话或管理凭据。", + "authModelPublic": "只有登录、健康检查和引导路由是公开的。", + "bruteForceProtection": "登录暴力破解保护", + "bruteForceProtectionDesc": "在同一 IP 多次失败后,对 /api/auth/login 进行限流和锁定。", + "corsAllowedOrigins": "CORS 允许的源", + "corsAllowedOriginsDesc": "允许调用此服务器的浏览器来源列表,以逗号分隔。空列表 = 不允许浏览器 CORS 访问(服务器到服务器仍可用)。仅在开发环境使用 CORS_ALLOW_ALL=true 环境变量。", + "compressionAggressiveConfig": "Aggressive 引擎配置", + "compressionAggressiveConfigDesc": "微调摘要、工具压缩和老化阈值", + "compressionUltraConfig": "Ultra 引擎配置", + "compressionUltraConfigDesc": "微调启发式剪枝、SLM 后备和每条消息阈值", + "compressionUltraRate": "保留比例", + "compressionUltraMinScore": "最低分数阈值", + "compressionUltraSlmFallback": "回退到 Aggressive", + "compressionUltraModelPath": "SLM 模型路径", + "compressionSummarizerEnabled": "启用摘要器", + "compressionMaxTokensPerMessage": "每条消息最大 Token 数", + "compressionMinSavings": "最低节省阈值", + "compressionAgingThresholds": "老化阈值", + "compressionAgingThresholdsDesc": "每个老化层级保留的最近消息数量(越高表示保留越多)", + "compressionToolStrategies": "工具结果策略", + "compressionToolStrategiesDesc": "为不同工具结果类型切换压缩策略", + "minutes": "分钟" }, "contextRtk": { - "title": "RTK Engine", - "description": "Command-aware compression for tool output, terminal logs and build results.", - "enabled": "Enabled", - "intensity": "Intensity", - "intensityMinimal": "Minimal", - "intensityStandard": "Standard", - "intensityAggressive": "Aggressive", - "toolResults": "Tool results", - "assistantMessages": "Assistant messages", - "codeBlocks": "Code blocks", - "maxLines": "Max lines", - "maxChars": "Max chars", - "filterTesting": "Filter Testing", - "pasteOutput": "Paste tool output to test filtering...", - "run": "Run", - "result": "Result", - "previewEmpty": "Run a sample to preview RTK output.", - "detected": "Detected", - "tokensFiltered": "Tokens filtered", - "filtersActive": "Filters active", - "requests": "Requests", - "avgSavings": "Avg savings" + "title": "RTK 引擎", + "description": "面向工具输出、终端日志和构建结果的命令感知压缩。", + "enabled": "已启用", + "intensity": "强度", + "intensityMinimal": "最小", + "intensityStandard": "标准", + "intensityAggressive": "激进", + "toolResults": "工具结果", + "assistantMessages": "助手消息", + "codeBlocks": "代码块", + "maxLines": "最大行数", + "maxChars": "最大字符数", + "filterTesting": "过滤测试", + "pasteOutput": "粘贴工具输出以测试过滤...", + "run": "运行", + "result": "结果", + "previewEmpty": "运行示例以预览 RTK 输出。", + "detected": "已检测", + "tokensFiltered": "已过滤 token", + "filtersActive": "活动过滤器", + "requests": "请求数", + "avgSavings": "平均节省", + "deduplicateThreshold": "去重阈值", + "customFilters": "自定义过滤器", + "trustProjectFilters": "信任项目过滤器", + "rawOutputRetention": "原始输出保留", + "rawOutputNever": "从不", + "rawOutputFailures": "失败时", + "rawOutputAlways": "始终", + "rawOutputMaxBytes": "原始输出最大字节数" }, "contextCombos": { - "title": "Compression Combos", - "description": "Define how engines are combined for different routing scenarios.", - "createCombo": "Create Compression Combo", - "editCombo": "Edit", - "deleteCombo": "Delete", - "deleteConfirm": "Delete this compression combo?", - "pipeline": "Pipeline", - "addStep": "Add Step", - "removeStep": "Remove", - "name": "Name", - "descriptionField": "Description", - "languagePacks": "Language Packs", - "outputMode": "Output Mode", - "assignToRouting": "Assign to Routing Combos", - "noAssignments": "No routing combos available", - "default": "Default", - "setAsDefault": "Set as Default", - "save": "Save", - "cancel": "Cancel", - "enabled": "Enabled" + "title": "压缩组合", + "description": "定义不同路由场景中引擎的组合方式。", + "createCombo": "创建压缩组合", + "editCombo": "编辑", + "deleteCombo": "删除", + "deleteConfirm": "删除此压缩组合?", + "pipeline": "流水线", + "addStep": "添加步骤", + "removeStep": "移除", + "name": "名称", + "descriptionField": "描述", + "languagePacks": "语言包", + "outputMode": "输出模式", + "assignToRouting": "分配到路由组合", + "noAssignments": "没有可用的路由组合", + "default": "默认", + "setAsDefault": "设为默认", + "save": "保存", + "cancel": "取消", + "enabled": "已启用" }, "contextCaveman": { - "title": "Caveman Engine", - "description": "Rule-based message compression, language packs, analytics and output mode controls.", - "requests": "Requests", - "tokensSaved": "Tokens saved", - "savingsPercent": "Savings %", - "avgLatency": "Avg latency", - "languagePacks": "Language Packs", - "languagePacksDesc": "Enable compression rules for specific languages.", - "enabled": "Enabled", - "autoDetect": "Auto-detect language", - "rulesCount": "{count} rules", - "analyticsTitle": "Compression Analytics", - "noAnalytics": "No compression analytics yet.", - "outputModeTitle": "Output Mode", - "outputModeDesc": "Instructs the LLM to respond in a terse, compact format.", - "autoClarity": "Auto-Clarity Bypass", - "bypassConditions": "Bypass conditions", + "title": "Caveman 引擎", + "description": "基于规则的消息压缩,包含语言包、分析和输出模式控制。", + "requests": "请求数", + "tokensSaved": "已节省 token", + "savingsPercent": "节省比例", + "avgLatency": "平均延迟", + "languagePacks": "语言包", + "languagePacksDesc": "为特定语言启用压缩规则。", + "enabled": "已启用", + "autoDetect": "自动检测语言", + "rulesCount": "{count} 条规则", + "analyticsTitle": "压缩分析", + "noAnalytics": "尚无压缩分析。", + "outputModeTitle": "输出模式", + "outputModeDesc": "指示 LLM 以简洁、紧凑的格式回复。", + "autoClarity": "自动清晰度绕过", + "bypassConditions": "绕过条件", "preview": { - "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.", - "full": "Respond terse and compact. Preserve all technical substance.", - "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols." - } + "lite": "回复要简洁。保留技术术语、代码、错误、URL 和标识符。", + "full": "回复要简短紧凑。保留所有技术实质。", + "ultra": "用常见技术缩写进行极简回复。保留精确符号。" + }, + "bypassConditionsList": "安全、不可逆、需澄清、顺序敏感" }, "translator": { "title": "翻译器", @@ -3683,7 +3739,34 @@ "requestFailed": "请求失败", "noTextExtracted": "(未提取文字)", "liveMonitorDescriptionPrefix": "这里会显示 API 调用流经 OmniRoute 时产生的翻译事件。事件来自内存缓冲区(重启后会重置)。使用", - "liveMonitorDescriptionSuffix": ",或外部 API 调用来生成事件。" + "liveMonitorDescriptionSuffix": ",或外部 API 调用来生成事件。", + "translationPathHubSpoke": "{source} → OpenAI(中间格式)→ {target}", + "translationPathDirect": "{source} → {target}(直接转换器)", + "translationPathPassthrough": "格式相同 — 无需转换", + "openaiIntermediatePanel": "OpenAI 中间格式", + "autoFeaturesTitle": "OmniRoute 自动处理的内容", + "autoFeaturesCount": "8 项功能", + "featureReasoningCache": "推理缓存", + "featureReasoningCacheDesc": "当客户端在对话历史中省略 thinking-mode 模型(DeepSeek V4、Kimi K2、Qwen)的缓存 reasoning_content 时,会重新注入。", + "featureSchemaCoercion": "Schema 校正", + "featureSchemaCoercionDesc": "修复损坏的工具 schema:添加缺失的 additionalProperties、清理过长描述、规范化嵌套对象。", + "featureRoleNormalization": "角色规范化", + "featureRoleNormalizationDesc": "针对非 OpenAI 目标将 developer→system。针对不支持 system 角色的模型将 system→user。", + "featureToolCallIds": "工具调用 ID 规范化", + "featureToolCallIdsDesc": "在缺失时生成唯一的 tool_call ID。针对 Mistral 等提供商规范化为 9 字符格式。", + "featureMissingToolResponse": "工具响应注入", + "featureMissingToolResponseDesc": "当客户端发送 tool_calls 但没有对应响应时,注入空的 tool_result 消息。", + "featureThinkingBudget": "思考预算", + "featureThinkingBudgetDesc": "自动管理 thinking 配置。当最后一条消息不是用户消息时移除 thinking 参数。", + "featureDirectPaths": "直接转换路径", + "featureDirectPathsDesc": "某些格式组合(Claude→Gemini)有绕过 OpenAI 中枢的直接转换器,可产生更准确的输出。", + "featureImageMapping": "图像尺寸映射", + "featureImageMappingDesc": "在 API 格式之间转换图像尺寸约定(例如 OpenAI detail 等级 → Gemini 尺寸)。", + "liveMonitorMemoryNote": "事件存储在内存中,重启后会丢失。", + "liveMonitorMemoryCapNote": "最多保留 200 个事件。", + "eventSourcesLabel": "事件来源:", + "eventSourceTranslatorPage": "• Translator 页面(Chat Tester、Test Bench)", + "eventSourceMainPipeline": "• 主请求流水线(CLI/IDE/API 流量)" }, "usage": { "title": "用量", @@ -3695,7 +3778,7 @@ "loadingBudgetData": "正在加载预算数据...", "noApiKeysTitle": "没有 API 密钥", "noApiKeysDescription": "首先添加 API 密钥以设置预算限制。", - "apiKey": "API密钥", + "apiKey": "API key", "todaysSpend": "今天的花费", "thisMonth": "本月", "setLimits": "设定限制", @@ -3831,99 +3914,124 @@ "tierPlus": "加号", "tierFree": "免费", "tierUnknown": "未知", - "suiteBuilderSaveFailed": "Failed to save suite", + "suiteBuilderSaveFailed": "保存套件失败", "scorecardTitle": "Scorecard", - "evalApiKey": "API Key", - "scorecardPassRate": "Pass Rate", - "targetTypeModel": "Model", - "actualOutputLabel": "Actual Output", - "evalTargetHint": "Select a model or combo to evaluate.", - "suiteBuilderDeleted": "Suite deleted successfully", - "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.", - "nextResetUtc": "Next reset (UTC)", - "scorecardHint": "Aggregated pass rates across all evaluation suites.", - "suiteLatestRunsHint": "Most recent evaluation runs for this suite.", - "saving": "Saving", - "suiteBuilderCaseModelLabel": "Model (optional)", - "evalControlsTitle": "Evaluation Controls", - "suiteBuilderEditTitle": "Edit Eval Suite", - "suiteBuilderCaseStrategyLabel": "Validation Strategy", - "notifySelectDifferentCompareTarget": "Please select a different target for comparison", - "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.", - "evalCompareHint": "Optionally compare results against a second target.", - "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.", - "historyEmpty": "No evaluation history yet", - "suiteBuilderUpdated": "Suite updated successfully", - "resetInterval": "Reset Interval", - "suiteBuilderCreateTitle": "Create Eval Suite", - "activePeriodSpend": "Active Period Spend", - "evalApiKeyHint": "Select which API key to use for evaluation requests.", - "evalCompareOptional": "Compare (optional)", - "suiteBuilderDeleteFailed": "Failed to delete suite", - "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...", - "scorecardCases": "Cases", - "runCompletedWithScore": "Evaluation completed — {score}% pass rate", - "suiteBuilderCustomBadge": "Custom", - "targetSuiteDefaults": "Suite defaults", - "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.", - "suiteBuilderNameLabel": "Suite Name", + "evalApiKey": "API key", + "scorecardPassRate": "通过率", + "targetTypeModel": "模型", + "actualOutputLabel": "实际输出", + "evalTargetHint": "选择要评估的模型或组合。", + "suiteBuilderDeleted": "Suite 删除成功", + "suiteBuilderCaseCardHint": "定义输入提示和预期输出标准。", + "nextResetUtc": "下次重置(UTC)", + "scorecardHint": "汇总所有 Evaluation Suite 的通过率。", + "suiteLatestRunsHint": "此套件最近的评估运行。", + "saving": "正在保存", + "suiteBuilderCaseModelLabel": "模型(可选)", + "evalControlsTitle": "Evaluation 控制项", + "suiteBuilderEditTitle": "编辑 Evaluation Suite", + "suiteBuilderCaseStrategyLabel": "验证策略", + "notifySelectDifferentCompareTarget": "请选择不同的比较目标", + "recentRunsHint": "正在显示最近的评估运行。点击某次运行可查看详细结果。", + "evalCompareHint": "可选择与第二个目标比较结果。", + "suiteBuilderCaseInvalid": "此 Case 存在验证错误,请先修复再保存。", + "historyEmpty": "暂无 Evaluation 历史", + "suiteBuilderUpdated": "Suite 更新成功", + "resetInterval": "重置间隔", + "suiteBuilderCreateTitle": "创建评估套件", + "activePeriodSpend": "当前周期支出", + "evalApiKeyHint": "选择用于评估请求的 API 密钥。", + "evalCompareOptional": "对比(可选)", + "suiteBuilderDeleteFailed": "删除套件失败", + "suiteBuilderCaseSystemPromptPlaceholder": "可选系统指令...", + "scorecardCases": "Case", + "runCompletedWithScore": "Evaluation 已完成 — 通过率 {score}%", + "suiteBuilderCustomBadge": "自定义", + "targetSuiteDefaults": "Suite 默认值", + "suiteBuilderDeleteConfirm": "确定要删除此套件吗?此操作无法撤销。", + "suiteBuilderNameLabel": "Suite 名称", "scorecardSuites": "Suites", - "evalCompareTarget": "Compare Target", - "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini", - "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.", - "recentRunsTitle": "Recent Runs", - "suiteBuilderCaseSystemPromptLabel": "System Prompt", - "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci", - "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite", - "suiteBuilderAddCase": "Add Case", - "cancel": "Cancel", - "evalTarget": "Target", - "suiteBuilderCaseNameLabel": "Case Name", - "weeklyLimitUsd": "Weekly Limit (USD)", - "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python", - "suiteBuilderNameRequired": "Suite name is required", - "suiteBuilderCaseUserPromptLabel": "User Prompt", - "daily": "Daily", - "resultErrorLabel": "Error", - "suiteBuilderBuiltInBadge": "Built-in", - "suiteBuilderCaseCardTitle": "Test Case", - "weeklyLimitPlaceholder": "e.g. 50.00", - "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.", - "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}", - "weekly": "Weekly", - "runEvalRunning": "Running evaluation...", - "delete": "Delete", - "resetTimeUtc": "Reset Time (UTC)", - "evalApiKeyAuto": "Auto (use default)", - "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...", - "targetComparisonTitle": "Target Comparison", - "save": "Save", - "suiteBuilderCreated": "Suite created successfully", - "suiteLatestRuns": "Latest Runs", - "suiteBuilderCaseExpectedLabel": "Expected Value", - "historyLatency": "Latency", - "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python", + "evalCompareTarget": "对比目标", + "suiteBuilderCaseModelPlaceholder": "例如 gpt-4o-mini", + "evalControlsHint": "配置评估目标和 API 密钥,然后运行套件以验证模型质量。", + "recentRunsTitle": "最近运行", + "suiteBuilderCaseSystemPromptLabel": "系统提示", + "suiteBuilderCaseExpectedPlaceholder": "例如 def fibonacci", + "suiteBuilderNamePlaceholder": "例如 Coding Quality Suite", + "suiteBuilderAddCase": "添加 Case", + "cancel": "取消", + "evalTarget": "目标", + "suiteBuilderCaseNameLabel": "Case 名称", + "weeklyLimitUsd": "每周限额(USD)", + "suiteBuilderCaseUserPromptPlaceholder": "例如用 Python 写一个 fibonacci 函数", + "suiteBuilderNameRequired": "Suite 名称为必填项", + "suiteBuilderCaseUserPromptLabel": "用户 Prompt", + "daily": "每日", + "resultErrorLabel": "错误", + "suiteBuilderBuiltInBadge": "内置", + "suiteBuilderCaseCardTitle": "测试用例", + "weeklyLimitPlaceholder": "例如 50.00", + "suiteBuilderCaseTagsHint": "用于组织测试用例的逗号分隔标签。", + "notifyEvalRunFailedWithReason": "评估失败:{reason}", + "weekly": "每周", + "runEvalRunning": "正在运行 Evaluation...", + "delete": "删除", + "resetTimeUtc": "重置时间(UTC)", + "evalApiKeyAuto": "自动(使用默认值)", + "suiteBuilderDescriptionPlaceholder": "可选:描述此套件测试的内容...", + "targetComparisonTitle": "目标对比", + "save": "保存", + "suiteBuilderCreated": "Suite 创建成功", + "suiteLatestRuns": "最新运行", + "suiteBuilderCaseExpectedLabel": "期望值", + "historyLatency": "延迟", + "suiteBuilderCaseTagsPlaceholder": "例如 coding, python", "targetTypeCombo": "Combo", - "scorecardPassed": "Passed", - "suiteBuilderCaseTagsLabel": "Tags", - "suiteBuilderNewSuite": "New Suite", - "notifyEvalLoadFailed": "Failed to load evaluation data", - "notConfigured": "Not Configured", - "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test", - "intervalLabel": "Interval", - "suiteBuilderCreateAction": "Create Suite", - "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.", - "suiteBuilderUpdatedAt": "Updated", - "errorBadge": "Error", - "suiteBuilderCasesTitle": "Test Cases", - "edit": "Edit", - "monthly": "Monthly", - "suiteBuilderCasesRequired": "At least one test case is required", - "weeklyLimitSummary": "Weekly budget limit summary", - "suiteBuilderDescriptionLabel": "Description", - "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.", - "compareCompletedWithScore": "Comparison completed — {score}% pass rate", - "staleQuotaTooltip": "Last refresh failed — showing cached data" + "scorecardPassed": "已通过", + "suiteBuilderCaseTagsLabel": "标签", + "suiteBuilderNewSuite": "新建 Suite", + "notifyEvalLoadFailed": "加载评估数据失败", + "notConfigured": "未配置", + "suiteBuilderCaseNamePlaceholder": "例如 Python 斐波那契测试", + "intervalLabel": "间隔", + "suiteBuilderCreateAction": "创建套件", + "suiteBuilderCasesHint": "每个用例都会发送一个提示并验证响应。", + "suiteBuilderUpdatedAt": "更新时间", + "errorBadge": "错误", + "suiteBuilderCasesTitle": "测试用例", + "edit": "编辑", + "monthly": "每月", + "suiteBuilderCasesRequired": "至少需要一个测试用例", + "weeklyLimitSummary": "每周预算限额摘要", + "suiteBuilderDescriptionLabel": "描述", + "targetComparisonHint": "在目标之间并排比较评估结果。", + "compareCompletedWithScore": "对比已完成 — 通过率 {score}%", + "runAllSuites": "全部运行", + "runAllRunning": "正在全部运行...", + "runAllProgress": "正在运行 {current}/{total}:{name}", + "runAllFailedSuites": "{count, plural, one {# 个套件失败} other {# 个套件失败}}", + "runAllCompleted": "已运行 {suites} 个套件 — {passed} 个通过,{failed} 个失败", + "runAllCompletedWithFailures": "已运行 {completed} 个套件;{failedSuites} 个运行失败", + "resultPassed": "已通过", + "resultFailed": "失败", + "expandResult": "展开结果详情", + "collapseResult": "折叠结果详情", + "expectedOutputLabel": "预期输出", + "clone": "克隆", + "exportSuite": "导出", + "importSuite": "导入", + "suiteExported": "套件已导出", + "suiteExportFailed": "导出套件失败", + "suiteImportReady": "套件导入已加载,等待检查", + "suiteImportFailed": "导入套件失败", + "suiteImportInvalid": "无效的 eval 套件 JSON", + "suiteBuilderCloneSuffix": "副本", + "suiteBuilderImportedSuite": "已导入套件", + "suiteBuilderCaseExpectedPlaceholderContains": "例如 def fibonacci", + "suiteBuilderCaseExpectedPlaceholderExact": "粘贴精确的预期响应", + "suiteBuilderCaseExpectedPlaceholderRegex": "例如 ^\\s*\\{.*\\}\\s*$", + "suiteBuilderCaseExpectedHintRegex": "使用不带包裹斜杠的 JavaScript 正则表达式。", + "suiteBuilderDuplicateCase": "复制" }, "modals": { "waitingAuth": "等待授权", @@ -4265,7 +4373,71 @@ "troubleshootingCircuitBreaker": "如果提供商显示断路器已打开,请等待冷却或查看运行状况页面以了解详细信息。", "troubleshootingOAuth": "对于 OAuth 提供商,如果 Token 过期,请重新认证,并检查提供商卡片上的状态指示器。", "deployTermuxTitle": "Termux (Android)", - "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser." + "deployTermuxText": "通过 Termux 在 Android 上以无界面模式运行 OmniRoute,并从移动浏览器访问仪表盘。", + "deploymentGuides": "部署指南", + "clientWindsurfTitle": "Windsurf", + "clientWindsurfBullet1": "将 OmniRoute 用作 OpenAI 兼容的 base URL,并保留显式提供商前缀,以实现确定性路由。", + "clientWindsurfBullet2": "常规流量将模型指向 `/v1/chat/completions`,并为 Codex 风格流程保留 `/v1/responses`。", + "clientWindsurfBullet3": "使用仪表盘 -> CLI 工具获取现成的 Windsurf 配置指南。", + "clientClineTitle": "Cline", + "clientClineBullet1": "Cline 最适合使用显式的提供商/模型前缀,这样路由器无需猜测后端。", + "clientClineBullet2": "常规模型使用 `/v1/chat/completions`,并在不同账户间复用同一个 OmniRoute base URL。", + "clientClineBullet3": "调试 Cline 运行时问题前,请使用提供商仪表盘验证 OAuth/API 密钥。", + "clientKimiTitle": "Kimi Coding", + "clientKimiBullet1": "轮换底层账户或提供商组合时,将 OmniRoute 用作稳定的 base URL。", + "clientKimiBullet2": "在编码流程中优先使用带前缀的模型,让回退和审计轨迹保持明确。", + "clientKimiBullet3": "当你希望为使用工具的客户端启用原生 Responses 风格路由时,请使用 `/v1/responses`。", + "endpointCompletionsNote": "用于文本生成的旧版 completions 端点。", + "endpointModerationsNote": "内容审核和安全分类。", + "endpointRerankNote": "用于检索增强生成的文档重排序(Cohere、Jina)。", + "endpointSearchNote": "通过 5 个提供商进行网页搜索(Serper、Brave、Exa、Tavily、Perplexity)。", + "endpointSearchAnalyticsNote": "搜索请求的分析和指标。", + "endpointVideoNote": "视频生成(ComfyUI、SD WebUI 工作流)。", + "endpointMusicNote": "通过 ComfyUI 工作流生成音乐。", + "endpointMessagesNote": "Anthropic 原生 messages 端点。", + "endpointCountTokensNote": "统计给定消息载荷的 token 数。", + "endpointFilesNote": "用于多模态输入的文件上传。", + "endpointBatchesNote": "用于批量 API 请求的 Batch 处理。", + "endpointWsNote": "用于实时流式传输的 WebSocket 端点。", + "mgmtProvidersListNote": "列出所有已注册的提供商连接。", + "mgmtProvidersCreateNote": "创建新的提供商连接。", + "mgmtProvidersUpdateNote": "更新现有提供商连接。", + "mgmtProvidersDeleteNote": "删除提供商连接。", + "mgmtProvidersTestNote": "测试提供商的连接和认证。", + "mgmtProvidersModelsNote": "列出特定提供商的可用模型。", + "mgmtSettingsGetNote": "获取当前应用设置。", + "mgmtSettingsUpdateNote": "更新应用设置。", + "mgmtPayloadRulesGetNote": "获取载荷转换规则。", + "mgmtPayloadRulesUpdateNote": "更新载荷转换规则。", + "mcpToolsTitle": "MCP 工具", + "mcpToolsDescription": "OmniRoute 通过 Model Context Protocol 暴露 {count} 个工具,用于 Agent 编排。", + "mcpToolsCount": "{count} 个工具", + "mcpToolsToc": "MCP 工具", + "mcpToolsRoutingTitle": "路由与发现", + "mcpToolsRoutingDesc": "健康检查、组合管理、配额监控、成本报告和模型目录访问。", + "mcpToolsOperationsTitle": "运维与策略", + "mcpToolsOperationsDesc": "路由模拟、预算保护、策略切换、韧性配置和提供商指标。", + "mcpToolsCacheTitle": "缓存管理", + "mcpToolsCacheDesc": "查看缓存统计,并清空语义缓存或签名缓存。", + "mcpToolsMemoryTitle": "记忆", + "mcpToolsMemoryDesc": "搜索、添加和清除持久化对话记忆条目。", + "mcpToolsSkillsTitle": "技能", + "mcpToolsSkillsDesc": "列出、启用、执行和监控自定义技能执行。", + "featureAutoComboTitle": "Auto-Combo", + "featureAutoComboText": "根据你连接的提供商、使用模式和模型能力,自动创建优化组合。", + "featureSearchTitle": "网页搜索", + "featureSearchText": "集成 5 个提供商的网页搜索(Serper、Brave、Exa、Tavily、Perplexity),并包含分析和成本跟踪。", + "featureMemoryTitle": "记忆系统", + "featureMemoryText": "跨会话提供提取、注入、检索和摘要能力的持久化对话记忆。", + "featureSkillsTitle": "技能框架", + "featureSkillsText": "可扩展技能系统,支持内置和自定义技能、沙箱执行、请求拦截和上下文注入。", + "featureAcpTitle": "Agent 通信", + "featureAcpText": "Agent Communication Protocol (ACP) 注册表,用于管理 Agent 间工作流和工具编排。", + "protocolAcpTitle": "ACP(Agent 通信)", + "protocolAcpDesc": "通过 ACP 注册表注册和管理 Agent,用于 Agent 间通信和工具共享。", + "protocolAcpStep1": "前往仪表盘 → Agents 查看已注册的 ACP Agent。", + "protocolAcpStep2": "使用能力和端点配置注册新的 Agent。", + "protocolAcpStep3": "使用 CLI 工具配置 Agent 通信通道。" }, "legal": { "privacyPolicy": "隐私政策", @@ -4357,19 +4529,39 @@ "setupGuideCustomAgentDesc": "如果你的 CLI 不在内置列表中,请使用“添加自定义智能体”,并填写可执行文件名与版本命令。", "setupGuideCommandMissingTitle": "修复“command not found”", "setupGuideCommandMissingDesc": "请确认 CLI 命令已存在于 PATH 中,重新打开一个终端会话后再次点击“刷新”。", - "cliToolsRedirectTitle": "Cli Tools Redirect Title", - "cliToolsRedirectDesc": "Cli Tools Redirect Desc", - "spawnArgsPlaceholder": "Spawn Args Placeholder", - "binaryNamePlaceholder": "Binary Name Placeholder", - "versionCommandPlaceholder": "Version Command Placeholder", - "architectureTitle": "Architecture Title", - "flowLocalBinary": "Flow Local Binary", - "flowOmniRoute": "Flow Omni Route", - "agentNamePlaceholder": "Agent Name Placeholder", - "architectureDescription": "Architecture Description", - "flowExecute": "Flow Execute", - "flowSpawn": "Flow Spawn", - "cliToolsRedirectCta": "Cli Tools Redirect Cta" + "cliToolsRedirectTitle": "CLI 工具已移至专用页面", + "cliToolsRedirectDesc": "在 CLI Tools 页面管理 Agent CLI 集成与重定向。", + "spawnArgsPlaceholder": "启动参数占位符", + "binaryNamePlaceholder": "二进制名称占位符", + "versionCommandPlaceholder": "版本命令占位符", + "architectureTitle": "架构", + "flowLocalBinary": "本地二进制", + "flowOmniRoute": "OmniRoute", + "agentNamePlaceholder": "Agent 名称占位符", + "architectureDescription": "了解 OmniRoute 如何在客户端、路由器和 Agent 目标之间转发请求。", + "flowExecute": "执行", + "flowSpawn": "启动", + "cliToolsRedirectCta": "打开 CLI Tools", + "comparisonTitle": "CLI 工具与 Agent 目标有什么区别?", + "comparisonCliToolsLabel": "CLI 工具页面", + "comparisonCliToolsTitle": "你的 IDE 通过 OmniRoute 发送请求", + "comparisonCliToolsDesc": "配置 Claude Code、Codex、Cursor 和其他 IDE,将 OmniRoute 用作它们的 API base URL。OmniRoute 作为代理,将请求路由到你配置的提供商。", + "comparisonAgentsLabel": "当前页面(Agent 目标)", + "comparisonAgentsTitle": "OmniRoute 将请求发送到本地 CLI 工具", + "comparisonAgentsDesc": "OmniRoute 可以启动本地 CLI 二进制文件(claude、codex、goose)作为执行后端。CLI 工具使用自己的认证处理请求并返回结果。", + "comparisonSummary": "简而言之:CLI 工具 = 你配置工具指向 OmniRoute。Agent 目标 = OmniRoute 将工具用作端点。", + "agentUseCaseHint": "可通过 ACP 协议用作执行目标", + "flowDiagramClient": "客户端应用", + "flowDiagramClientDesc": "SDK、API 或上游服务", + "flowDiagramOmniRoute": "OmniRoute", + "flowDiagramOmniRouteDesc": "接收请求并选择目标", + "flowDiagramSpawn": "启动进程", + "flowDiagramSpawnDesc": "通过 stdio 启动 CLI 二进制文件", + "flowDiagramCli": "CLI Agent", + "flowDiagramCliDesc": "使用自身认证/模型处理", + "fingerprintSettingsHint": "CLI 指纹匹配(伪装成特定 CLI 工具的请求)可在以下位置配置:", + "settingsRoutingLink": "设置/路由", + "openSettings": "设置" }, "templateNames": { "simple-chat": "简单对话", @@ -4454,14 +4646,14 @@ "cacheHitRate": "缓存命中率", "cacheRate": "缓存率", "cacheRateDesc": "占总请求数", - "cachedTokens": "Cache Read Tokens", - "cacheCreationTokens": "Cache Write Tokens", + "cachedTokens": "缓存读取 Token", + "cacheCreationTokens": "缓存写入 Token", "cacheMetrics": "Prompt 缓存指标", "withCacheControl": "含缓存控制", - "cachedTokensRead": "Read from cache", - "cacheCreationWrite": "Written to cache", + "cachedTokensRead": "从缓存读取", + "cacheCreationWrite": "写入缓存", "cacheReuseRatio": "缓存复用率", - "cacheReuseRatioDesc": "Cache read tokens / 输入 Tokens 总量", + "cacheReuseRatioDesc": "缓存读取 token / 输入 token 总量", "estCostSaved": "预估节省费用", "lastUpdated": "上次更新", "hoursTracked": "个小时", @@ -4476,12 +4668,12 @@ "resetting": "正在重置...", "resetMetrics": "重置指标", "byProvider": "按提供商分类", - "providerCacheRateDesc": "每个提供商都会直接展示总输入 Tokens、cache read tokens 和 cache write tokens,方便你对照原始数据判断 ratio 是否可靠。", + "providerCacheRateDesc": "每个提供商都会直接展示总输入 token、cache read token 和 cache write token,方便你对照原始数据判断比率是否可靠。", "provider": "提供商", "requests": "请求数", "inputTokens": "输入 Tokens 总计", - "cachedTokensCol": "Cache Read", - "cacheCreation": "Cache Write", + "cachedTokensCol": "缓存读取", + "cacheCreation": "缓存写入", "trend24h": "缓存趋势(24 小时)", "peakCached": "峰值缓存量", "cached": "已缓存", @@ -4495,7 +4687,7 @@ "loading": "加载中...", "entriesLoadError": "加载语义缓存条目失败。", "noEntries": "未找到缓存条目", - "noPromptCacheData": "暂时还没有记录到 provider-side prompt cache 活动。", + "noPromptCacheData": "暂时还没有记录到提供商侧 prompt cache 活动。", "noTrendData": "最近 24 小时还没有记录到 prompt cache 活动。", "signature": "签名", "model": "模型", @@ -4505,8 +4697,33 @@ "deduplicatedRequests": "去重请求数", "savedCalls": "节省的 API 调用次数", "totalProcessed": "已处理请求总数", - "disabled": "Disabled", - "totalRequests": "Total Requests" + "disabled": "已禁用", + "totalRequests": "总请求数", + "reasoningCache": "推理回放", + "reasoningCacheDesc": "为多轮工具调用流程保留模型思考内容", + "reasoningEntries": "活动条目", + "reasoningReplayRate": "回放率", + "reasoningReplays": "总回放次数", + "reasoningCharsCached": "已缓存字符数", + "reasoningMisses": "缓存未命中", + "reasoningByProvider": "按提供商", + "reasoningByModel": "按模型", + "reasoningRecentEntries": "最近条目", + "reasoningToolCallId": "工具调用 ID", + "reasoningChars": "字符数", + "reasoningAge": "时间", + "reasoningView": "查看", + "reasoningDetail": "推理内容", + "reasoningBehavior": "行为", + "reasoningBehaviorCapture": "从流式响应中捕获 reasoning_content", + "reasoningBehaviorReplay": "当客户端省略时,在下一轮重新注入", + "reasoningBehaviorFallback": "内存优先,并使用 SQLite 作为崩溃恢复后备", + "reasoningBehaviorTtl": "TTL:2 小时 | 最大条目:2,000(内存)", + "reasoningBehaviorModels": "支持:DeepSeek、Kimi、Qwen-Thinking、GLM", + "reasoningClearAll": "清空推理缓存", + "reasoningClearSuccess": "已清除 {count} 个推理缓存条目", + "reasoningClearError": "清除推理缓存失败", + "reasoningNoData": "尚未缓存推理条目。思考模型使用工具调用时会显示条目。" }, "memory": { "title": "记忆管理", @@ -4543,7 +4760,8 @@ "pipelineError": "Pipeline 错误", "healthUnknown": "健康状态未知", "cancel": "取消", - "save": "保存" + "save": "保存", + "a": "A" }, "skills": { "title": "技能", @@ -4571,7 +4789,7 @@ "timeoutDesc": "等待响应的最长时间", "networkAccess": "网络访问", "networkAccessDesc": "允许发起出站网络请求", - "mode": "Mode", + "mode": "模式", "q": "Q" }, "proxyConfigModal": { @@ -4733,7 +4951,26 @@ "noData": "—", "testSuccess": "✓ {ip}", "testLatency": "{latency}毫秒", - "testFailure": "✗ {error}" + "testFailure": "✗ {error}", + "bulkImport": "批量导入", + "bulkImportTitle": "批量导入代理", + "bulkImportDescription": "使用管道符分隔格式粘贴代理配置。每行一个代理。已有代理(相同 host + port)将被更新。", + "bulkImportParse": "解析", + "bulkImportImport": "导入 {count} 个代理", + "bulkImportImporting": "正在导入...", + "bulkImportParsed": "已解析 {count} 个代理", + "bulkImportSkipped": "已跳过 {count} 行", + "bulkImportParseErrors": "{count} 个错误", + "bulkImportNoValidEntries": "未找到有效条目。请检查格式后重试。", + "bulkImportSuccess": "导入完成:已创建 {created} 个,已更新 {updated} 个,失败 {failed} 个", + "bulkImportErrorLine": "第 {line} 行:{reason}", + "bulkImportMaxExceeded": "每次最多导入 100 个代理", + "bulkImportPreview": "预览", + "bulkImportErrorMissingName": "缺少 NAME", + "bulkImportErrorMissingHost": "缺少 HOST", + "bulkImportErrorInvalidPort": "PORT 无效(必须为 1-65535)", + "bulkImportErrorInvalidType": "TYPE 无效(使用 http、https 或 socks5)", + "bulkImportErrorInvalidStatus": "STATUS 无效(使用 active 或 inactive)" }, "playground": { "title": "模型演练场", @@ -4822,37 +5059,38 @@ "tokens": "Tokens", "tps": "TPS", "duration": "时长", - "time": "时间" + "time": "时间", + "compressed": "压缩" }, "loadingLogs": "正在加载日志...", "noLogs": "暂无日志记录。进行一些API调用以在此处查看它们。", "noMatchingLogs": "没有匹配当前筛选器的日志。", "callLogsInfo": "调用日志也保存为JSON文件到{dataDir},并根据{retentionDays}和{maxEntries}进行轮换。", - "updatePipelineFailed": "Failed to update pipeline logging", - "capturePipeline": "Capture pipeline payloads for new requests", - "sortLogs": "Sort logs", - "refresh": "Refresh", - "columnsLabel": "Columns", + "updatePipelineFailed": "更新流水线日志失败", + "capturePipeline": "为新请求捕获流水线载荷", + "sortLogs": "日志排序", + "refresh": "刷新", + "columnsLabel": "列", "cacheSem": "SEM", "cacheUp": "UP", - "semantic": "Semantic", - "upstream": "Upstream", - "semanticCacheHit": "Semantic cache hit (served by OmniRoute)", - "upstreamResponse": "Upstream provider response", - "noApiKey": "No API key", - "requestedRoutedTitle": "Requested {requested}, routed as {routed}" + "semantic": "Semantic Cache", + "upstream": "上游", + "semanticCacheHit": "语义缓存命中(由 OmniRoute 提供)", + "upstreamResponse": "上游提供商响应", + "noApiKey": "无 API key", + "requestedRoutedTitle": "请求 {requested},路由为 {routed}" }, "endpointOptions": { - "speech": "Speech", - "search": "Search", - "images": "Images", - "chat": "Chat", - "music": "Music", + "speech": "语音", + "search": "搜索", + "images": "图像", + "chat": "聊天", + "music": "音乐", "responses": "Responses", "rerank": "Rerank", - "video": "Video", + "video": "视频", "embeddings": "Embeddings", - "transcription": "Transcription" + "transcription": "转写" }, "toolDescriptions": { "cline": "Cline", @@ -4863,47 +5101,203 @@ "kilo": "Kilo" }, "proxyLogger": { - "filterAll": "All", - "filterErrors": "Errors", - "filterSuccess": "Success", - "filterTimeout": "Timeout", - "colStatus": "Status", - "colProxy": "Proxy", + "filterAll": "全部", + "filterErrors": "错误", + "filterSuccess": "成功", + "filterTimeout": "超时", + "colStatus": "状态", + "colProxy": "代理", "colTls": "TLS", - "colType": "Type", - "colLevel": "Level", - "colProvider": "Provider", - "colTarget": "Target", - "colLatency": "Latency", - "colPublicIp": "Public IP", - "colTime": "Time", - "recording": "Recording", - "paused": "Paused", - "searchPlaceholder": "Search host, provider, target, IP...", - "allTypes": "All Types", - "allLevels": "All Levels", - "allProviders": "All Providers", - "total": "total", + "colType": "类型", + "colLevel": "级别", + "colProvider": "提供商", + "colTarget": "目标", + "colLatency": "延迟", + "colPublicIp": "公网 IP", + "colTime": "时间", + "recording": "记录中", + "paused": "已暂停", + "searchPlaceholder": "搜索主机、提供商、目标或 IP...", + "allTypes": "全部类型", + "allLevels": "全部级别", + "allProviders": "全部 Provider", + "total": "总计", "ok": "OK", "err": "ERR", "timeoutShort": "TMO", "direct": "direct", - "newest": "Newest", - "oldest": "Oldest", - "latencyDesc": "Latency ↓", - "latencyAsc": "Latency ↑", - "refresh": "Refresh", - "columns": "Columns", - "loadingProxyLogs": "Loading proxy logs...", - "noProxyLogs": "No proxy logs yet. Configure proxies and make API calls to see them here.", - "noMatchingLogs": "No logs match the current filters.", - "tlsFingerprint": "Chrome 124 TLS Fingerprint" + "newest": "最新", + "oldest": "最旧", + "latencyDesc": "延迟 ↓", + "latencyAsc": "延迟 ↑", + "refresh": "刷新", + "columns": "列", + "loadingProxyLogs": "正在加载代理日志...", + "noProxyLogs": "尚无代理日志。配置代理并发起 API 调用后会显示在这里。", + "noMatchingLogs": "没有日志匹配当前筛选条件。", + "tlsFingerprint": "Chrome 124 TLS 指纹" }, - "agentFeatures": { - "agentFeaturesContextLength": "Context length", - "agentFeaturesContextLengthPlaceholder": "e.g. 128000", - "agentFeaturesContextLengthHint": "Defines the context window for this combo in /v1/models.", - "agentFeaturesContextLengthErrorInteger": "Context length must be a valid integer", - "agentFeaturesContextLengthErrorRange": "Context length must be between 1000 and 2000000" + "webhooks": { + "title": "Webhook", + "description": "配置系统事件的 HTTP 回调。", + "configuredWebhooks": "已配置的 Webhook", + "configuredWebhooksDesc": "管理投递端点、订阅事件、状态和测试发送。", + "addWebhook": "添加 Webhook", + "editWebhook": "编辑 Webhook", + "name": "名称", + "namePlaceholder": "生产监控", + "unnamedWebhook": "未命名 Webhook", + "url": "端点 URL", + "events": "事件", + "allEvents": "所有事件", + "secret": "密钥", + "secretPlaceholder": "留空将自动生成密钥", + "secretEditPlaceholder": "留空以保留当前密钥", + "status": "状态", + "active": "活动", + "inactive": "未活动", + "errored": "出错", + "total": "总计", + "lastTriggered": "上次触发", + "actions": "操作", + "enabled": "已启用", + "enabledDesc": "禁用的 Webhook 会继续保存,但不会接收投递。", + "refresh": "刷新", + "loading": "正在加载 Webhook...", + "never": "从未", + "failureCount": "{count, plural, =0 {no failures} one {# 次失败} other {# 次失败}}", + "testWebhook": "发送测试", + "testSuccess": "测试 Webhook 发送成功。", + "testFailed": "测试 Webhook 失败。", + "saveSuccess": "Webhook 保存成功。", + "saveFailed": "保存 Webhook 失败。", + "loadFailed": "加载 Webhook 失败。", + "delete": "删除", + "deleteConfirm": "确定要删除此 Webhook 吗?", + "deleteSuccess": "Webhook 删除成功。", + "deleteFailed": "删除 Webhook 失败。", + "edit": "编辑", + "enable": "启用", + "disable": "禁用", + "noWebhooks": "尚未配置 Webhook。", + "signatureTitle": "Webhook 签名", + "signatureDescription": "每次投递都会包含一个 X-Webhook-Signature 请求头,该签名使用 Webhook 密钥通过 HMAC-SHA256 生成。信任载荷前请先验证签名。" + }, + "compliance": { + "auditTitle": "审计", + "auditDescription": "在一个运维视图中查看合规事件和 MCP 工具调用。", + "complianceTab": "合规", + "mcpTab": "MCP 审计", + "title": "合规审计", + "description": "合规审计日志记录的策略、访问、提供商和安全事件。", + "eventType": "事件类型", + "eventTypePlaceholder": "按操作或事件类型筛选", + "severity": "严重级别", + "allSeverities": "所有严重级别", + "info": "信息", + "warning": "警告", + "critical": "严重", + "sourceIp": "来源 IP", + "userOrKey": "用户 / 密钥", + "action": "操作", + "result": "结果", + "details": "详情", + "timestamp": "时间戳", + "from": "起始", + "to": "结束", + "refresh": "刷新", + "export": "导出", + "clearFilters": "清除筛选", + "loading": "正在加载审计事件...", + "showing": "正在显示 {total} 个事件中的 {count} 个", + "policyViolation": "策略违规", + "accessDenied": "访问被拒绝", + "injectionBlocked": "注入已阻止", + "noEvents": "尚未记录合规事件。", + "failedFetch": "获取合规审计日志失败。", + "viewDetails": "查看详情", + "closeDetails": "关闭详情", + "notAvailable": "—", + "system": "system", + "previous": "上一页", + "next": "下一页", + "mcpAudit": "MCP 审计", + "mcpAuditDesc": "MCP 服务器记录的工具调用审计条目。", + "failedFetchMcpAudit": "获取 MCP 审计日志失败。", + "tool": "工具", + "toolPlaceholder": "按工具名称筛选", + "duration": "持续时间", + "apiKey": "API 密钥", + "output": "输出", + "allResults": "所有结果", + "success": "成功", + "failure": "失败", + "noMcpEvents": "尚未记录 MCP 审计事件。" + }, + "telemetry": { + "title": "系统遥测", + "description": "来自此 OmniRoute 进程的滚动请求、运行时、会话和内存信号。", + "uptime": "运行时间", + "totalRequests": "请求总数", + "avgLatency": "平均延迟", + "errorRate": "错误率", + "activeConnections": "活动连接", + "memoryUsage": "内存使用", + "latencyTrend": "延迟趋势", + "throughputTrend": "吞吐趋势", + "memoryTrend": "内存趋势", + "refresh": "刷新", + "updatedAt": "更新于 {time}", + "loadFailed": "加载遥测失败。", + "partialData": "遥测数据部分可用:{error}" + }, + "mitm": { + "title": "MITM 代理", + "description": "用于拦截和路由客户端请求的透明代理。", + "enable": "启用 MITM 代理", + "enableDesc": "启动或停止本地拦截进程和 DNS 覆盖。", + "status": "状态", + "running": "运行中", + "stopped": "已停止", + "start": "启动", + "stop": "停止", + "refresh": "刷新", + "port": "代理端口", + "apiKey": "路由器 API 密钥", + "apiKeyPlaceholder": "可选;留空则回退到本地密钥", + "sudoPassword": "Sudo 密码", + "cachedPassword": "已为此进程缓存", + "saveSettings": "保存设置", + "settingsSaved": "MITM 设置已保存。", + "startedSuccess": "MITM 代理已启动。", + "stoppedSuccess": "MITM 代理已停止。", + "saveFailed": "更新 MITM 设置失败。", + "loadFailed": "加载 MITM 设置失败。", + "invalidPort": "透明 MITM 拦截当前要求使用端口 443。", + "certificate": "CA 证书", + "certificateReady": "证书已可用于客户端信任安装。", + "certificateMissing": "尚未生成证书。", + "available": "可用", + "missing": "缺失", + "downloadCert": "下载 CA 证书", + "regenerateCert": "重新生成证书", + "regenerateConfirm": "这会使现有客户端信任失效。要继续吗?", + "regenerateSuccess": "MITM 证书已重新生成。", + "regenerateFailed": "重新生成 MITM 证书失败。", + "targetRoutes": "目标路由", + "interceptedRequests": "已拦截请求", + "activeConnections": "活动连接", + "dnsConfigured": "DNS 已配置", + "pid": "PID", + "lastIntercept": "上次拦截", + "target": "目标", + "host": "主机", + "localPort": "本地端口", + "endpoints": "端点", + "enabled": "已启用", + "configured": "已配置", + "yes": "是", + "no": "否", + "noTargets": "未配置目标路由。" } -} \ No newline at end of file +}