From ec4d0368df07049796d17401697f41355cb08177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=9E=97ObsidianGrove?= Date: Wed, 27 May 2026 20:31:21 +0800 Subject: [PATCH] fix(i18n): translate 162 missing zh-CN UI strings Replace __MISSING__ placeholders with Simplified Chinese translations across webhooks (wizard/howItWorks/deliveries), costs, endpoint, health, logs, providers, settings, usage, sidebar and related modules. --- src/i18n/messages/zh-CN.json | 329 ++++++++++++++++++----------------- 1 file changed, 166 insertions(+), 163 deletions(-) diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index f61f54bb88..0586e0290f 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -739,8 +739,8 @@ "endpointsSubtitle": "您的 AI 连接 URL", "apiManager": "API 管理", "apiManagerSubtitle": "管理 API 密钥和访问", - "embeddedServices": "__MISSING__:Embedded Services", - "embeddedServicesSubtitle": "__MISSING__:Manage local proxy services", + "embeddedServices": "内嵌服务", + "embeddedServicesSubtitle": "管理本地代理服务", "logs": "日志", "webhooks": "Webhook", "webhooksSubtitle": "获取事件通知", @@ -978,91 +978,91 @@ "signatureTitle": "Webhook 签名", "signatureDescription": "每次投递都会包含一个 X-Webhook-Signature 请求头,该签名使用 Webhook 密钥通过 HMAC-SHA256 生成。信任载荷前请先验证签名。", "wizard": { - "cancel": "__MISSING__:Cancel", - "step1Title": "__MISSING__:Select Integration", - "step2Title": "__MISSING__:Configure Target", - "step3Title": "__MISSING__:Events & Test", - "back": "__MISSING__:Back", - "next": "__MISSING__:Next", - "finish": "__MISSING__:Finish", - "step1Desc": "__MISSING__:Select the target integration system for this webhook." + "cancel": "取消", + "step1Title": "选择集成", + "step2Title": "配置目标", + "step3Title": "事件与测试", + "back": "返回", + "next": "下一步", + "finish": "完成", + "step1Desc": "选择此 Webhook 要对接的目标集成系统。" }, "howItWorks": { - "step1": "__MISSING__:Choose an integration provider (e.g. Slack, Discord, custom webhook) and set up the connection details.", - "step2": "__MISSING__:Configure system events to subscribe to (e.g. completion errors, model fallbacks, or usage limits).", - "step3": "__MISSING__:Verify the configuration by sending a test payload to make sure the endpoint receives it.", - "step4": "__MISSING__:Secure your endpoint by validating the X-Webhook-Signature HMAC-SHA256 header using the webhook's secret.", - "title": "__MISSING__:How Webhooks Work", - "customOnly": "__MISSING__:Only applicable for custom endpoint integrations.", - "hmacRecipeTitle": "__MISSING__:HMAC Verification Recipe", - "hmacRecipe": "__MISSING__:To verify webhook payloads in Node.js, compute the HMAC-SHA256 of the raw request body using your secret key. Compare it to the X-Webhook-Signature header using timingSafeEqual.", - "timeoutNote": "__MISSING__:Webhook deliveries have a timeout of 10 seconds.", - "retryNote": "__MISSING__:Failed deliveries are retried up to 5 times with exponential backoff.", - "docsLink": "__MISSING__:Read the full Webhooks developer guide", - "hmacRecipePython": "__MISSING__:Python HMAC verification: hmac.new(secret, body, hashlib.sha256).hexdigest()", - "hmacRecipeBash": "__MISSING__:Bash HMAC verification: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\"" + "step1": "选择一个集成提供商(如 Slack、Discord、自定义 Webhook)并配置连接详情。", + "step2": "配置要订阅的系统事件(如补全错误、模型回退或用量限制)。", + "step3": "发送测试负载以验证端点是否能正常接收数据。", + "step4": "使用 Webhook 密钥对 X-Webhook-Signature HMAC-SHA256 头进行验证,以确保端点安全。", + "title": "Webhook 工作原理", + "customOnly": "仅适用于自定义端点集成。", + "hmacRecipeTitle": "HMAC 验证方案", + "hmacRecipe": "在 Node.js 中验证 Webhook 负载:使用密钥对原始请求体计算 HMAC-SHA256,然后通过 timingSafeEqual 与 X-Webhook-Signature 头进行比对。", + "timeoutNote": "Webhook 投递超时时间为 10 秒。", + "retryNote": "投递失败将最多重试 5 次,采用指数退避策略。", + "docsLink": "阅读完整的 Webhook 开发者指南", + "hmacRecipePython": "Python HMAC 验证:hmac.new(secret, body, hashlib.sha256).hexdigest()", + "hmacRecipeBash": "Bash HMAC 验证:echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\"" }, "deliveries": { - "title": "__MISSING__:Delivery Logs", - "loadFailed": "__MISSING__:Failed to load webhook delivery logs.", - "empty": "__MISSING__:No deliveries recorded yet. Trigger an event or send a test payload.", - "status": "__MISSING__:Status", - "event": "__MISSING__:Event", - "latency": "__MISSING__:Latency", - "at": "__MISSING__:Sent At" + "title": "投递日志", + "loadFailed": "加载 Webhook 投递日志失败。", + "empty": "暂无投递记录。触发一个事件或发送测试负载。", + "status": "状态", + "event": "事件", + "latency": "延迟", + "at": "发送时间" }, "kinds": { - "comingSoon": "__MISSING__:Coming Soon", - "slack": "__MISSING__:Slack", - "slackDesc": "__MISSING__:Post system events directly into a Slack channel", - "telegram": "__MISSING__:Telegram", - "telegramDesc": "__MISSING__:Send event messages using a Telegram bot", - "discord": "__MISSING__:Discord", - "discordDesc": "__MISSING__:Deliver real-time updates directly to a Discord server", - "custom": "__MISSING__:Custom Webhook", - "customDesc": "__MISSING__:Deliver system event payloads to any HTTPS endpoint", - "email": "__MISSING__:Email Notification", - "emailDesc": "__MISSING__:Receive summary updates via email", - "pagerduty": "__MISSING__:PagerDuty", - "pagerdutyDesc": "__MISSING__:Trigger alerts on PagerDuty for critical system issues", - "teams": "__MISSING__:Microsoft Teams", - "teamsDesc": "__MISSING__:Forward system notifications to Microsoft Teams channels" + "comingSoon": "即将推出", + "slack": "Slack", + "slackDesc": "将系统事件直接发布到 Slack 频道", + "telegram": "Telegram", + "telegramDesc": "通过 Telegram 机器人发送事件消息", + "discord": "Discord", + "discordDesc": "将实时更新直接推送到 Discord 服务器", + "custom": "自定义 Webhook", + "customDesc": "将系统事件负载投递到任意 HTTPS 端点", + "email": "邮件通知", + "emailDesc": "通过邮件接收摘要更新", + "pagerduty": "PagerDuty", + "pagerdutyDesc": "在 PagerDuty 上为关键系统问题触发告警", + "teams": "Microsoft Teams", + "teamsDesc": "将系统通知转发到 Microsoft Teams 频道" }, - "testPayloadSent": "__MISSING__:Test Payload Sent", - "testResponse": "__MISSING__:Test Response", + "testPayloadSent": "测试负载已发送", + "testResponse": "测试响应", "validateUrl": { - "checking": "__MISSING__:Checking URL...", - "ok": "__MISSING__:URL is valid", - "blockedPrivate": "__MISSING__:URL is a blocked private address", - "invalidUrl": "__MISSING__:Invalid URL format" + "checking": "正在检查 URL...", + "ok": "URL 有效", + "blockedPrivate": "URL 是被阻止的私有地址", + "invalidUrl": "URL 格式无效" }, "custom": { - "endpointUrl": "__MISSING__:Endpoint URL", - "endpointUrlPlaceholder": "__MISSING__:https://api.yourdomain.com/webhook", - "secretKey": "__MISSING__:Secret Key", - "secretKeyPlaceholder": "__MISSING__:Enter secret key or leave blank to auto-generate", - "secretKeyHint": "__MISSING__:Used to sign the payload header for authentication." + "endpointUrl": "端点 URL", + "endpointUrlPlaceholder": "https://api.yourdomain.com/webhook", + "secretKey": "密钥", + "secretKeyPlaceholder": "输入密钥或留空以自动生成", + "secretKeyHint": "用于对负载头进行签名以进行身份验证。" }, "discord": { - "webhookUrl": "__MISSING__:Discord Webhook URL", - "webhookUrlPlaceholder": "__MISSING__:https://discord.com/api/webhooks/...", - "webhookUrlHint": "__MISSING__:The webhook URL copied from your Discord channel integration settings.", - "tutorial": "__MISSING__:How to create a Discord webhook:" + "webhookUrl": "Discord Webhook URL", + "webhookUrlPlaceholder": "https://discord.com/api/webhooks/...", + "webhookUrlHint": "从 Discord 频道集成设置中复制的 Webhook URL。", + "tutorial": "如何创建 Discord Webhook:" }, "slack": { - "webhookUrl": "__MISSING__:Slack Webhook URL", - "webhookUrlPlaceholder": "__MISSING__:https://hooks.slack.com/services/...", - "webhookUrlHint": "__MISSING__:The webhook URL copied from your Slack Incoming Webhooks integration.", - "tutorial": "__MISSING__:How to create a Slack webhook:" + "webhookUrl": "Slack Webhook URL", + "webhookUrlPlaceholder": "https://hooks.slack.com/services/...", + "webhookUrlHint": "从 Slack Incoming Webhooks 集成中复制的 Webhook URL。", + "tutorial": "如何创建 Slack Webhook:" }, "telegram": { - "botToken": "__MISSING__:Telegram Bot Token", - "botTokenPlaceholder": "__MISSING__:123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ", - "botTokenHint": "__MISSING__:The HTTP API token received from @BotFather when creating your bot.", - "chatId": "__MISSING__:Telegram Chat ID / Channel", - "chatIdPlaceholder": "__MISSING__:-100123456789 or @channelname", - "chatIdHint": "__MISSING__:The unique numerical identifier or public username of the chat/channel.", - "tutorial": "__MISSING__:How to configure Telegram webhook:" + "botToken": "Telegram 机器人令牌", + "botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ", + "botTokenHint": "创建机器人时从 @BotFather 获取的 HTTP API 令牌。", + "chatId": "Telegram 聊天 ID / 频道", + "chatIdPlaceholder": "-100123456789 或 @channelname", + "chatIdHint": "聊天/频道的唯一数字标识符或公开用户名。", + "tutorial": "如何配置 Telegram Webhook:" } }, "compliance": { @@ -1557,7 +1557,10 @@ "filterTypeRestricted": "受限", "shownOf": "已显示 {shown} / {total}", "emptyFilterTitle": "没有密钥匹配当前筛选条件", - "emptyFilterClear": "清除筛选" + "emptyFilterClear": "清除筛选", + "allEndpointsAllowed": "此密钥可以访问所有 API 端点。", + "endpointRestrictions": "允许的端点", + "endpointsRestricted": "仅限 {count} 个端点。" }, "auditLog": { "title": "审核日志", @@ -2570,14 +2573,14 @@ "groupApiKey": "API 密钥", "groupAccount": "账户", "groupServiceTier": "服务层级", - "serviceTierFast": "__MISSING__:Fast", - "serviceTierFlex": "__MISSING__:Flex", - "serviceTierStandard": "__MISSING__:Standard", - "serviceTierBreakdownTitle": "__MISSING__:Service Tier", - "serviceTierBreakdownSubtitle": "__MISSING__:Fast / Flex / Standard split", - "serviceTierUsageSaved": "__MISSING__:usage saved", - "serviceTierCostSaved": "__MISSING__:saved", - "serviceTierCostShareSuffix": "__MISSING__:of cost", + "serviceTierFast": "快速", + "serviceTierFlex": "弹性", + "serviceTierStandard": "标准", + "serviceTierBreakdownTitle": "服务层级", + "serviceTierBreakdownSubtitle": "快速 / 弹性 / 标准 分布", + "serviceTierUsageSaved": "已节省用量", + "serviceTierCostSaved": "已节省", + "serviceTierCostShareSuffix": "成本占比", "dimension": "维度", "share": "占比", "legacyOrFree": "旧版 / 免费", @@ -2790,16 +2793,16 @@ "localServer": "本地服务器", "cloudOmniroute": "云全路由", "copyUrl": "复制网址", - "badgeLoopbackTooltip": "__MISSING__:This endpoint is only accessible locally (loopback only)", - "badgeAlwaysProtectedTooltip": "__MISSING__:This endpoint is always protected and requires authorization", - "badgeInternalTooltip": "__MISSING__:This is an internal system endpoint", - "tierAll": "__MISSING__:All", - "tierAuth": "__MISSING__:Authenticated", - "tierLoopback": "__MISSING__:Loopback", - "tierAlwaysProtected": "__MISSING__:Always Protected", - "tierPublic": "__MISSING__:Public", - "hideInternal": "__MISSING__:Hide Internal", - "showInternal": "__MISSING__:Show Internal" + "badgeLoopbackTooltip": "此端点仅可本地访问(仅限回环)", + "badgeAlwaysProtectedTooltip": "此端点始终受保护,需要授权", + "badgeInternalTooltip": "这是系统内部端点", + "tierAll": "全部", + "tierAuth": "需认证", + "tierLoopback": "回环", + "tierAlwaysProtected": "始终受保护", + "tierPublic": "公开", + "hideInternal": "隐藏内部端点", + "showInternal": "显示内部端点" }, "endpoints": { "tabProxy": "端点代理", @@ -3165,35 +3168,35 @@ "noSessionQuotaMonitorsActive": "没有活动的会话配额监视器。", "gracefulDegradationStatus": "优雅降级状态", "additionalModels": "+{count} 更多型号", - "providerHealthMatrixTitle": "__MISSING__:Provider Health Matrix", - "providerHealthMatrixDescription": "__MISSING__:Provider × account × model states from breakers, cooldowns, lockouts and logs.", - "healthMatrixRange": "__MISSING__:Health matrix range", - "providerFilter": "__MISSING__:Provider filter", - "onlyIssues": "__MISSING__:Only issues", - "refresh": "__MISSING__:Refresh", - "accounts": "__MISSING__:Accounts", - "models": "__MISSING__:Models", - "issues": "__MISSING__:Issues", - "loadingProviderHealthMatrix": "__MISSING__:Loading provider health matrix...", - "failedProviderHealthMatrix": "__MISSING__:Failed to load Provider Health Matrix: {error}", - "noProvidersMatchedFilters": "__MISSING__:No providers matched the current filters.", - "modelPillSummary": "__MISSING__:{requests} req · {successRate} success · {latency} avg", - "modelLockoutSummary": "__MISSING__:{reason} · {duration} left", - "locked": "__MISSING__:locked", - "inferred": "__MISSING__:inferred", - "inactive": "__MISSING__:Inactive", - "noConnectionId": "__MISSING__:no connection id", - "accountModelSummary": "__MISSING__:{connectionId} · {count} models", - "cooldown": "__MISSING__:cooldown", - "durationRemaining": "__MISSING__:{duration} remaining", - "noSyncedModelsOrTraffic": "__MISSING__:No synced models or recent traffic yet.", - "providerRowSummary": "__MISSING__:{active}/{total} active accounts · {requests} req · {successRate} success · {latency} avg", - "cooldownCount": "__MISSING__:{count} cooldown", - "lockoutCount": "__MISSING__:{count} lockouts", - "issueCount": "__MISSING__:{count} issues", - "score": "__MISSING__:Score", - "lastRequest": "__MISSING__:Last request", - "lastError": "__MISSING__:Last error" + "providerHealthMatrixTitle": "提供商健康矩阵", + "providerHealthMatrixDescription": "来自熔断器、冷却、锁定和日志的提供商 × 账户 × 模型状态。", + "healthMatrixRange": "健康矩阵时间范围", + "providerFilter": "提供商筛选", + "onlyIssues": "仅显示问题", + "refresh": "刷新", + "accounts": "账户", + "models": "模型", + "issues": "问题", + "loadingProviderHealthMatrix": "正在加载提供商健康矩阵...", + "failedProviderHealthMatrix": "加载提供商健康矩阵失败:{error}", + "noProvidersMatchedFilters": "没有提供商匹配当前筛选条件。", + "modelPillSummary": "{requests} 请求 · {successRate} 成功率 · {latency} 平均延迟", + "modelLockoutSummary": "{reason} · 剩余 {duration}", + "locked": "已锁定", + "inferred": "推断", + "inactive": "不活跃", + "noConnectionId": "无连接 ID", + "accountModelSummary": "{connectionId} · {count} 个模型", + "cooldown": "冷却中", + "durationRemaining": "剩余 {duration}", + "noSyncedModelsOrTraffic": "暂无同步模型或近期流量。", + "providerRowSummary": "{active}/{total} 活跃账户 · {requests} 请求 · {successRate} 成功率 · {latency} 平均延迟", + "cooldownCount": "{count} 个冷却中", + "lockoutCount": "{count} 个锁定", + "issueCount": "{count} 个问题", + "score": "评分", + "lastRequest": "最近请求", + "lastError": "最近错误" }, "telemetry": { "title": "系统遥测", @@ -3321,15 +3324,15 @@ "provider": "提供商", "account": "Account", "elapsed": "已耗时", - "activeStage": "__MISSING__:Stage", - "activeStageUnknown": "__MISSING__:Not sent to upstream yet", - "activeStageRegistered": "__MISSING__:Registered", - "activeStagePayloadPrepared": "__MISSING__:Payload prepared", - "activeStageWaitingAccountSlot": "__MISSING__:Waiting for account slot", - "activeStageWaitingRateLimit": "__MISSING__:Waiting for rate limiter", - "activeStageRateLimitSlotAcquired": "__MISSING__:Rate limit slot acquired", - "activeStageSendingToProvider": "__MISSING__:Sending to upstream", - "activeStageProviderResponseStarted": "__MISSING__:Upstream response started", + "activeStage": "阶段", + "activeStageUnknown": "尚未发送到上游", + "activeStageRegistered": "已注册", + "activeStagePayloadPrepared": "负载已准备", + "activeStageWaitingAccountSlot": "等待账户槽位", + "activeStageWaitingRateLimit": "等待速率限制器", + "activeStageRateLimitSlotAcquired": "已获取速率限制槽位", + "activeStageSendingToProvider": "正在发送到上游", + "activeStageProviderResponseStarted": "上游响应已开始", "count": "数量", "payloads": "Payload", "viewPayloads": "查看", @@ -4101,22 +4104,22 @@ "webFetch": "网页抓取", "webFetchTooltip": "从网页 URL 抽取内容的提供商(HTML → Markdown、抓取、截图)", "webFetchProvidersHeading": "网页抓取提供商", - "compatibleProvidersDesc": "__MISSING__:OpenAI-compatible and Anthropic-compatible endpoints you host or configure. Point any OpenAI SDK to your own URL and route requests here.", - "oauthProvidersDesc": "__MISSING__:Providers authenticated via OAuth — sign in once and OmniRoute handles token rotation automatically.", + "compatibleProvidersDesc": "您托管或配置的 OpenAI 兼容和 Anthropic 兼容端点。将任意 OpenAI SDK 指向您的 URL 并在此处路由请求。", + "oauthProvidersDesc": "通过 OAuth 认证的提供商——登录一次,OmniRoute 自动处理令牌轮换。", "webCookieProvidersDesc": "这些提供商使用浏览器网络会话、cookie 或网络令牌而不是 API 密钥。打开提供程序以添加所需的会话凭据。", - "apiKeyProvidersDesc": "__MISSING__:Standard API key providers. Add your key once and OmniRoute routes, retries, and rate-limits on your behalf.", - "noAuthProvidersDesc": "__MISSING__:Open endpoints that require no credentials — ready to use immediately without any sign-up.", - "upstreamProxyProvidersDesc": "__MISSING__:Route outbound traffic through an upstream proxy before it reaches the provider. Useful for corporate networks or traffic inspection.", - "webFetchProvidersDesc": "__MISSING__:Providers that fetch and extract content from web URLs. Use them to ground prompts with live web data.", - "aggregatorsGatewaysDesc": "__MISSING__:Multi-provider aggregators and AI gateways that expose a single unified API across dozens of underlying models.", - "enterpriseCloudDesc": "__MISSING__:Enterprise-tier and cloud-hosted models with enhanced SLAs, compliance certifications, and dedicated capacity.", - "cloudAgentProvidersDesc": "__MISSING__:Autonomous cloud agents that execute long-running tasks with plan approval and live status tracking.", - "localProvidersDesc": "__MISSING__:Self-hosted models running on your own hardware. No data leaves your infrastructure.", - "searchProvidersDesc": "__MISSING__:Web and document search providers. Attach them to LLM calls for Retrieval-Augmented Generation.", - "audioProvidersDesc": "__MISSING__:Text-to-speech and speech-to-text providers for voice I/O and audio transcription pipelines.", - "embeddingRerankProvidersDesc": "__MISSING__:Vector embedding and reranking providers for semantic search, RAG pipelines, and similarity scoring.", - "imageProvidersDesc": "__MISSING__:Image generation and vision providers — create images from text or analyse existing ones.", - "videoProvidersDesc": "__MISSING__:Video generation providers. Create short video clips from text prompts or images.", + "apiKeyProvidersDesc": "标准 API 密钥提供商。添加密钥后,OmniRoute 代为路由、重试和限流。", + "noAuthProvidersDesc": "无需凭证的开放端点——无需注册即可立即使用。", + "upstreamProxyProvidersDesc": "通过上游代理路由出站流量。适用于企业网络或流量审计场景。", + "webFetchProvidersDesc": "从网页 URL 抓取和提取内容的提供商。用于将实时网页数据注入提示词。", + "aggregatorsGatewaysDesc": "多提供商聚合器和 AI 网关,通过单一统一 API 对接数十个底层模型。", + "enterpriseCloudDesc": "企业级和云托管模型,提供增强 SLA、合规认证和专用容量。", + "cloudAgentProvidersDesc": "自主云代理,可执行长时间运行的任务,支持计划审批和实时状态跟踪。", + "localProvidersDesc": "在您自己的硬件上运行的自托管模型。数据不会离开您的基础设施。", + "searchProvidersDesc": "网页和文档搜索提供商。可附加到 LLM 调用以实现检索增强生成(RAG)。", + "audioProvidersDesc": "文本转语音和语音转文本提供商,用于语音输入输出和音频转录管道。", + "embeddingRerankProvidersDesc": "向量嵌入和重排序提供商,用于语义搜索、RAG 管道和相似度评分。", + "imageProvidersDesc": "图像生成和视觉提供商——从文本创建图像或分析现有图像。", + "videoProvidersDesc": "视频生成提供商。从文本提示或图像创建短视频片段。", "onboardingWizard": "提供商入职向导", "onboardingWizardShort": "入职向导", "onboardingWizardDescription": "通过验证、持久性和即时连接测试连接 API 密钥、自定义兼容和 OAuth 提供商。", @@ -4473,12 +4476,12 @@ "configure": "配置", "globalSystemPrompt": "全局系统提示", "saved": "已保存", - "beforePromptLabel": "__MISSING__:Before Prompt", - "beforePromptDesc": "__MISSING__:Injected before agent/provider system instructions", - "beforePromptPlaceholder": "__MISSING__:Instructions inserted before agent/provider prompt...", - "afterPromptLabel": "__MISSING__:After Prompt", - "afterPromptDesc": "__MISSING__:Injected after agent/provider system instructions", - "afterPromptPlaceholder": "__MISSING__:Instructions inserted after agent/provider prompt...", + "beforePromptLabel": "提示词前置", + "beforePromptDesc": "注入到代理/提供商系统指令之前", + "beforePromptPlaceholder": "插入到代理/提供商提示词之前的指令...", + "afterPromptLabel": "提示词后置", + "afterPromptDesc": "注入到代理/提供商系统指令之后", + "afterPromptPlaceholder": "插入到代理/提供商提示词之后的指令...", "chars": "{count} 字符", "thinkingBudgetTitle": "思考预算", "thinkingBudgetDesc": "控制所有请求中 AI 推理令牌的使用", @@ -5270,15 +5273,15 @@ "qdrantCleanupSuccess": "好的:删除 {count} 点(保留:{days} 天)", "qdrantCleanupFailed": "清理失败", "qdrantCleanupError": "错误:{error}", - "vercelRelaySuccess": "__MISSING__:Vercel Relay deployed successfully", - "vercelRelayButton": "__MISSING__:Deploy Vercel Relay", - "vercelRelayModalTitle": "__MISSING__:Deploy Vercel Relay", - "vercelRelayWarning": "__MISSING__:Warning: A Vercel deployment token is required. This token will only be used to create the serverless relay and will never be stored by OmniRoute.", - "vercelRelayTokenLabel": "__MISSING__:Vercel Access Token", - "vercelRelayProjectNameLabel": "__MISSING__:Vercel Project Name", - "vercelRelayFreeTierNote": "__MISSING__:Relays are lightweight proxy endpoints deployed on Vercel's free tier to bypass local network/region limitations.", - "vercelRelayDeploying": "__MISSING__:Deploying...", - "vercelRelayDeploy": "__MISSING__:Deploy" + "vercelRelaySuccess": "Vercel Relay 部署成功", + "vercelRelayButton": "部署 Vercel Relay", + "vercelRelayModalTitle": "部署 Vercel Relay", + "vercelRelayWarning": "警告:需要 Vercel 部署令牌。此令牌仅用于创建无服务器中继,OmniRoute 不会存储该令牌。", + "vercelRelayTokenLabel": "Vercel 访问令牌", + "vercelRelayProjectNameLabel": "Vercel 项目名称", + "vercelRelayFreeTierNote": "中继是在 Vercel 免费层上部署的轻量级代理端点,用于绕过本地网络/区域限制。", + "vercelRelayDeploying": "正在部署...", + "vercelRelayDeploy": "部署" }, "contextRtk": { "title": "RTK 引擎", @@ -5777,9 +5780,9 @@ "rawPlanWithValue": "原始计划:{plan}", "noPlanFromProvider": "提供商没有计划", "noQuotaData": "无配额数据", - "cardExpand": "__MISSING__:Expand", - "cardCollapse": "__MISSING__:Collapse", - "moreQuotas": "__MISSING__:+{count} more", + "cardExpand": "展开", + "cardCollapse": "收起", + "moreQuotas": "还有 {count} 项", "ungrouped": "未分组", "viewFlat": "平铺视图", "viewByEnvironment": "按环境分组", @@ -5960,8 +5963,8 @@ "noSpendLast30Days": "过去 30 天内没有消费", "updatedShort": "更新于", "lastRefreshed": "上次刷新", - "providerQuota": "__MISSING__:Provider Quota", - "providerQuotaHomeHint": "__MISSING__:Live status across connected accounts" + "providerQuota": "提供商配额", + "providerQuotaHomeHint": "已连接账户的实时状态" }, "modals": { "waitingAuth": "等待授权",