Merge PR #855: feat: Improve the Chinese translation

This commit is contained in:
diegosouzapw
2026-03-31 09:11:07 -03:00
2 changed files with 144 additions and 124 deletions

3
.gitignore vendored
View File

@@ -135,3 +135,6 @@ vscode-extension/
# Compiled npm-package build artifact (not source, should not be in git)
/app
# IDEA
.idea/

View File

@@ -36,7 +36,7 @@
"time": "时间",
"details": "详情",
"created": "已创建",
"lastUsed": "Last Refreshed",
"lastUsed": "最近刷新",
"loadMore": "加载更多",
"noResults": "没有找到结果",
"reloadPage": "重新加载页面",
@@ -60,17 +60,17 @@
"maintenanceServerIssues": "服务器当前存在异常,部分功能可能暂时不可用。",
"maintenanceServerUnreachable": "服务器暂时无法连接,正在重新连接...",
"accept": "接受",
"accountId": "Account ID",
"accountId": "账户 ID",
"alias": "别名",
"apiKeyId": "API Key ID",
"apiKeyId": "API 密钥 ID",
"apiKeyName": "API Key 名称",
"apiKeySecret": "API Key 密钥",
"authorization": "Authorization",
"content-type": "Content Type",
"content-length": "Content Length",
"authorization": "授权",
"content-type": "内容类型",
"content-length": "内容长度",
"cookie": "Cookie",
"file": "文件",
"host": "Host",
"host": "主机",
"id": "ID",
"import": "导入",
"limit": "限制",
@@ -100,25 +100,25 @@
"hex": "Hex",
"range": "范围",
"component": "组件",
"redirect_uri": "Redirect URI",
"idempotency-key": "Idempotency Key",
"error_description": "Error Description",
"redirect_uri": "重定向 URI",
"idempotency-key": "幂等键",
"error_description": "错误描述",
"code": "代码",
"compatible": "兼容",
"chat-completions": "Chat Completions",
"chat-completions": "对话补全",
"oauth": "OAuth",
"auth_token": "Auth Token",
"auth_token": "认证令牌",
"crypto": "加密",
"hours": "小时",
"selfsigned": "自签名",
"proxy_id": "Proxy ID",
"proxyId": "Proxy ID",
"connectionId": "Connection ID",
"proxy_id": "代理 ID",
"proxyId": "代理 ID",
"connectionId": "连接 ID",
"resolveConnectionId": "解析 Connection ID",
"resolve_connection_id": "解析 Connection ID",
"scope_id": "Scope ID",
"scopeId": "Scope ID",
"jwtSecret": "JWT Secret",
"scope_id": "范围 ID",
"scopeId": "范围 ID",
"jwtSecret": "JWT 密钥",
"keytar": "keytar",
"better-sqlite3": "better-sqlite3",
"undici": "undici",
@@ -135,7 +135,7 @@
"TOOL_DENYLIST": "工具拒绝列表",
"Failed to save pricing": "保存定价失败",
"Failed to reset pricing": "重置定价失败",
"apikey": "API Key",
"apikey": "API 密钥",
"http": "HTTP"
},
"sidebar": {
@@ -191,8 +191,8 @@
"themeOrange": "橙色",
"themeCyan": "青色",
"cliToolsShort": "工具",
"cache": "Cache",
"cacheShort": "Cache"
"cache": "缓存",
"cacheShort": "缓存"
},
"themesPage": {
"title": "主题",
@@ -486,7 +486,7 @@
"configureEndpoint": "配置端点",
"instructions": "使用说明",
"modelMapping": "模型映射",
"baseUrl": "Base URL",
"baseUrl": "基础 URL",
"apiKey": "API密钥",
"configured": "已配置",
"notConfigured": "未配置",
@@ -968,11 +968,11 @@
"available": "可用端点",
"cloudProxy": "云代理",
"disableConfirm": "确定要禁用云代理吗?",
"baseUrl": "Base URL",
"baseUrl": "基础 URL",
"apiKeyLabel": "API 密钥",
"registeredKeys": "已注册密钥",
"chatCompletions": "Chat Completions",
"responses": "Responses",
"chatCompletions": "对话补全",
"responses": "响应",
"listModels": "列出模型",
"usingCloudProxy": "当前使用云代理",
"usingLocalServer": "当前使用本地服务器",
@@ -981,7 +981,7 @@
"enableCloud": "启用云端",
"modelsAcrossEndpoints": "{endpoints} 个端点共提供 {models} 个模型",
"chatDesc": "支持所有提供商的流式与非流式聊天",
"embeddings": "Embeddings",
"embeddings": "嵌入向量",
"embeddingsDesc": "用于搜索和 RAG 流程的文本向量",
"imageGeneration": "图像生成",
"imageDesc": "根据文本提示生成图像",
@@ -1037,7 +1037,7 @@
"cloudWorkerUnreachable": "无法连接到云 Worker。请确认云服务已运行在 `/cloud` 中执行 `npm run dev`)。",
"connectionFailed": "连接失败",
"syncFailed": "同步云端数据失败",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredTitle": "Cloudflare 快速隧道",
"cloudflaredDescription": "为当前端点创建 Cloudflare Quick Tunnel。",
"cloudflaredUrlNotice": "创建一个临时的 Cloudflare Quick Tunnel。每次重启后 URL 都会变化。",
"cloudflaredEnable": "启用 Tunnel",
@@ -1357,7 +1357,7 @@
"passwordsMismatch": "密码不匹配",
"setupComplete": "设置完成!",
"goToDashboard": "转到仪表板→",
"welcomeDesc": "OmniRoute 是您的本地 AI API 代理。它通过负载衡、故障转移和使用情况跟踪将请求路由到多个 AI 提供商。",
"welcomeDesc": "OmniRoute 是您的本地 AI API 代理。它通过负载衡、故障转移和使用情况跟踪将请求路由到多个 AI 提供商。",
"multiProvider": "多提供商",
"usageTracking": "使用情况追踪",
"apiKeyMgmt": "API密钥管理",
@@ -1473,7 +1473,7 @@
"testSummary": "{passed}/{total} 通过,{failed} 失败",
"nameLabel": "名称",
"prefixLabel": "前缀",
"baseUrlLabel": "Base URL",
"baseUrlLabel": "基础 URL",
"apiTypeLabel": "API类型",
"prefixHint": "必填。模型名称使用的唯一前缀。",
"nameHint": "必填。该节点的友好标签。",
@@ -1677,12 +1677,12 @@
"allModelsAlreadyImported": "所有模型已导入",
"noNewModelsToImport": "没有新模型可导入 — 所有模型已在注册表或自定义模型列表中",
"skippingExistingModels": "跳过 {count} 个已有模型",
"applyCodexAuthLocal": "Apply auth",
"exportCodexAuthFile": "Export auth",
"codexAuthAppliedLocal": "Codex auth.json applied locally",
"codexAuthApplyFailed": "Failed to apply Codex auth.json locally",
"codexAuthExported": "Codex auth.json exported",
"codexAuthExportFailed": "Failed to export Codex auth.json"
"applyCodexAuthLocal": "应用认证",
"exportCodexAuthFile": "导出认证",
"codexAuthAppliedLocal": "Codex auth.json 已在本地应用",
"codexAuthApplyFailed": "在本地应用 Codex auth.json 失败",
"codexAuthExported": "Codex auth.json 已导出",
"codexAuthExportFailed": "导出 Codex auth.json 失败"
},
"settings": {
"title": "设置",
@@ -1697,7 +1697,7 @@
"proxy": "代理",
"pricing": "定价",
"storage": "存储",
"policies": "策",
"policies": "策",
"ipFilter": "IP过滤器",
"comboDefaults": "组合默认值",
"fallbackChains": "后备链",
@@ -1715,7 +1715,7 @@
"hitRate": "命中率",
"cacheEntries": "缓存条目",
"circuitBreaker": "断路器",
"retryPolicy": "重试策",
"retryPolicy": "重试策",
"maxRetries": "最大重试次数",
"retryDelay": "重试延迟",
"timeoutMs": "超时(毫秒)",
@@ -1800,11 +1800,11 @@
"customDesc": "为所有请求设置固定的令牌预算",
"adaptive": "自适应",
"adaptiveDesc": "根据请求复杂性调整预算",
"effortNone": "无0 代币",
"effortLow": "低1K 代币",
"effortMedium": "中10K 代币",
"effortHigh": "高128K 代币",
"tokenBudget": "代币预算",
"effortNone": "无0 Tokens",
"effortLow": "低1K Tokens",
"effortMedium": "中10K Tokens",
"effortHigh": "高128K Tokens",
"tokenBudget": "Token 预算",
"tokens": "Tokens",
"baseEffortLevel": "基本努力水平",
"adaptiveHint": "自适应模式根据消息计数、工具使用情况和提示长度从此基本级别进行扩展。",
@@ -1948,10 +1948,10 @@
"providerMaxRetriesAria": "{provider} 最大重试次数",
"providerTimeoutAria": "{provider} 超时毫秒",
"removeProviderOverrideAria": "删除 {provider} 覆盖",
"newProviderNamePlaceholder": "例如谷歌、开放式...",
"newProviderNamePlaceholder": "例如 google、openai...",
"newProviderNameAria": "新的提供商名称",
"retries": "重试",
"ms": "女士",
"ms": "毫秒",
"saveComboDefaults": "保存组合默认值",
"maxNestingDepth": "最大嵌套深度",
"concurrencyPerModel": "并发/模型",
@@ -1987,7 +1987,7 @@
"failures": "{count} 失败",
"policiesLocked": "策略和锁定标识符",
"allOperational": "所有系统均可运行——无停工或断路器跳闸",
"loadingPolicies": "正在加载策...",
"loadingPolicies": "正在加载策...",
"lockedIdentifiers": "锁定标识符",
"unlockedIdentifier": "解锁:{identifier}",
"sinceDate": "自 {date} 起",
@@ -2045,7 +2045,7 @@
"errorDuringRestore": "恢复期间发生错误",
"errorDuringImport": "导入时发生错误",
"modelPricing": "模型定价",
"modelPricingDesc": "配置每个模型的成本费率 • 所有费率均以美元/100 万代币为单位",
"modelPricingDesc": "配置每个模型的成本费率 • 所有费率均以美元/100 万 Tokens 为单位",
"providers": "提供商",
"registry": "登记处",
"priced": "定价",
@@ -2062,24 +2062,24 @@
"models": "模型",
"moreProviders": "{count} 更多提供商",
"withPricing": "配置定价",
"policiesCircuitBreakers": "策与断路器",
"policiesCircuitBreakers": "策与断路器",
"activeIssuesDetected": "检测到活跃问题",
"off": "关闭",
"resetPricingConfirm": "将 {provider} 的所有定价重置为默认值?",
"pricingDescInput": "输入:发送到模型的令牌",
"pricingDescOutput": "输出:生成的代币",
"pricingDescOutput": "输出:生成的 Tokens",
"pricingDescCached": "缓存:重用输入(约输入率的 50%",
"pricingDescReasoning": "推理:思考标记(回到输出)",
"pricingDescCacheWrite": "缓存写入:创建缓存条目(回退到输入)",
"pricingDescFormula": "成本 = (输入 × 输入率) + (输出 × 输出率) + (缓存 × 缓存率) 每百万代币。",
"pricingDescFormula": "成本 = (输入 × 输入率) + (输出 × 输出率) + (缓存 × 缓存率) 每百万 Tokens。",
"pricingSettingsTitle": "定价设置",
"totalModels": "模型总数",
"active": "活跃",
"costCalculation": "成本计算",
"costCalculationDesc": "成本是根据为每个模型配置的令牌使用情况和定价费率计算的。",
"pricingFormat": "定价格式",
"pricingFormatDesc": "所有费率均以美元/100 万代币为单位(每百万代币美元)。",
"tokenTypes": "代币类型",
"pricingFormatDesc": "所有费率均以美元/100 万 Tokens 为单位(每百万 Tokens 美元)。",
"tokenTypes": "Token 类型",
"inputTokenDesc": "标准提示标记",
"outputTokenDesc": "完成/响应标记",
"cachedTokenDesc": "缓存输入令牌(通常为输入速率的 50%",
@@ -2095,17 +2095,21 @@
"comboDefaultsGuideTitle": "如何调整组合默认值",
"comboDefaultsGuideHint1": "在低延迟流中保持较低的重试次数;仅增加长生成任务的超时。",
"comboDefaultsGuideHint2": "当一个提供程序需要与全局默认值不同的超时/重试行为时,请使用提供程序覆盖。",
"debugToggle": "Enable Debug Mode",
"sidebarVisibilityToggle": "Show Sidebar Items",
"cacheSettings": "Cache Settings",
"semanticCache": "Semantic Cache",
"maxEntries": "Max Entries",
"ttlMinutes": "TTL (minutes)",
"strategy": "Strategy",
"preserveClientCache": "Preserve Client Cache",
"enabled": "Enabled",
"loading": "Loading...",
"save": "Save"
"debugToggle": "启用调试模式",
"sidebarVisibilityToggle": "显示侧边栏项目",
"cacheSettings": "缓存设置",
"semanticCache": "语义缓存",
"maxEntries": "最大条目数",
"ttlMinutes": "TTL(分钟)",
"strategy": "策略",
"preserveClientCache": "保留客户端缓存",
"enabled": "已启用",
"loading": "加载中...",
"save": "保存",
"autoDisableBannedAccounts": "自动禁用被封禁账户",
"autoDisableDescription": "若提供商连接返回特定的永久封禁信号(如 HTTP 403\"请验证您的账户\"),则将其永久标记为停用。这会将其从组合轮换中移除。",
"autoDisableThreshold": "封禁阈值",
"autoDisableThresholdDesc": "触发永久停用所需的连续封禁信号次数。"
},
"translator": {
"title": "翻译者",
@@ -2380,7 +2384,7 @@
"loadingQuotas": "正在加载...",
"account": "账户",
"modelQuotas": "模型配额",
"lastUsed": "Last Refreshed",
"lastUsed": "最近刷新",
"actions": "操作",
"refreshQuota": "刷新配额",
"today": "今天",
@@ -2416,7 +2420,7 @@
"chooseAuthMethod": "选择您的身份验证方法:",
"awsBuilderId": "AWS 构建器 ID",
"awsIamIdentity": "AWS IAM 身份中心",
"googleAccount": "谷歌帐户",
"googleAccount": "Google 帐户",
"githubAccount": "GitHub 帐户",
"importToken": "导入令牌",
"pasteToken": "从 Kiro IDE 粘贴刷新令牌。",
@@ -2454,7 +2458,7 @@
},
"stats": {
"usageOverview": "使用概述",
"outputTokens": "输出代币",
"outputTokens": "输出 Tokens",
"totalCost": "总成本",
"usageByModel": "按模型使用",
"usageByAccount": "按帐户使用情况",
@@ -2479,7 +2483,7 @@
"password": "密码",
"unifiedProxy": "统一 AI API 代理",
"unifiedAiApiProxy": "统一 AI API 代理",
"unifiedAiApiProxyDesc": "通过单个端点将请求路由到多个 AI 提供商。内置负载衡、故障转移和使用情况跟踪。",
"unifiedAiApiProxyDesc": "通过单个端点将请求路由到多个 AI 提供商。内置负载衡、故障转移和使用情况跟踪。",
"passwordNotEnabled": "未启用密码保护",
"loading": "正在加载...",
"invalidPassword": "密码无效",
@@ -2501,7 +2505,7 @@
"featureLoadBalancingTitle": "负载均衡",
"featureLoadBalancingDesc": "智能分配请求",
"featureUsageTrackingTitle": "使用情况追踪",
"featureUsageTrackingDesc": "监控成本和代币",
"featureUsageTrackingDesc": "监控成本和 Tokens",
"resetPassword": "重置密码",
"resetDescription": "选择一种方法来恢复对仪表板的访问权限",
"stopServer": "停止 OmniRoute 服务器",
@@ -2666,7 +2670,7 @@
"featureHealthText": "实时健康检查、提供商状态、断路器状态以及具有指数退避功能的自动速率限制检测。",
"featureCliTitle": "CLI工具",
"featureCliText": "可在仪表板中管理 IDE 配置、导出/导入备份、发现 Codex 配置文件并修改设置。",
"featureSecurityTitle": "安全和政策",
"featureSecurityTitle": "安全与策略",
"featureSecurityText": "API 密钥身份验证、IP 过滤、提示注入防护、域策略、会话管理和审核日志记录。",
"featureCloudSyncTitle": "云同步",
"featureCloudSyncText": "将配置同步到 Cloudflare Workers以便通过加密凭据和自动故障转移实现远程访问。",
@@ -2683,7 +2687,7 @@
"useCaseUsageVisibilityTitle": "使用情况、成本和调试可见性",
"useCaseUsageVisibilityText": "在“使用情况”和“分析”选项卡中按提供商、帐户和 API 密钥跟踪令牌和成本。",
"clientCherryStudioTitle": "樱桃工作室",
"baseUrlLabel": "Base URL",
"baseUrlLabel": "基础 URL",
"chatEndpointLabel": "聊天端点",
"modelRecommendationLabel": "模型建议:显式前缀",
"clientCodexTitle": "Codex / GitHub Copilot 模型",
@@ -2777,7 +2781,7 @@
"privacySection4Text": "当你通过 OmniRoute 发起 API 调用时,请求会被转发到你配置的 AI 提供商例如OpenAI、Anthropic、Google。这些提供商有各自的隐私政策请查阅",
"privacyOpenAiPolicy": "OpenAI 隐私政策",
"privacyAnthropicPolicy": "Anthropic 隐私政策",
"privacyGooglePolicy": "谷歌隐私政策",
"privacyGooglePolicy": "Google 隐私政策",
"privacySection5Title": "5. 云同步(可选)",
"privacySection5Text": "如果您启用可选的云同步功能,提供商配置和 API 密钥可能会传输到配置的云端点。此功能默认处于禁用状态,需要明确选择加入。",
"privacySection6Title": "6. 日志记录",
@@ -2900,59 +2904,72 @@
}
},
"cache": {
"title": "Cache Management",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
"refresh": "Refresh",
"clearAll": "Clear All",
"memoryEntries": "Memory Entries",
"dbEntries": "DB Entries",
"cacheHits": "Cache Hits",
"tokensSaved": "Tokens Saved",
"hitRate": "Hit Rate",
"performance": "Cache Performance",
"behavior": "Cache Behavior",
"idempotency": "Idempotency Layer",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
"clearError": "Failed to clear cache.",
"unavailable": "Cache unavailable",
"unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
"memoryEntriesSub": "In-memory LRU",
"dbEntriesSub": "Persisted (SQLite)",
"cacheHitsSub": "of {total} total",
"tokensSavedSub": "Estimated from hits",
"autoRefresh": "Auto-refreshes every {seconds}s",
"hits": "Hits",
"misses": "Misses",
"total": "Total",
"behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
"behaviorBypass": "Bypass with header {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
"behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
"activeDedupKeys": "Active Dedup Keys",
"dedupWindow": "Dedup Window",
"promptCache": "Prompt Cache (Provider-Side)",
"cachedRequests": "Cached Requests",
"cacheHitRate": "Cache Hit Rate",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
"byProvider": "Breakdown by Provider",
"provider": "Provider",
"requests": "Requests",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
"trend24h": "Cache Trend (24h)",
"cached": "Cached",
"overview": "Overview",
"entries": "Entries",
"searchEntries": "Search entries...",
"search": "Search",
"loading": "Loading...",
"noEntries": "No cache entries found",
"signature": "Signature",
"model": "Model",
"created": "Created",
"expires": "Expires",
"actions": "Actions"
"title": "缓存管理",
"description": "监控和管理语义响应缓存、命中率及 Tokens 节省情况。",
"refresh": "刷新",
"clearAll": "清空全部",
"memoryEntries": "内存条目",
"dbEntries": "数据库条目",
"cacheHits": "缓存命中数",
"tokensSaved": "节省的 Tokens",
"hitRate": "命中率",
"performance": "缓存性能",
"behavior": "缓存行为",
"idempotency": "幂等层",
"clearSuccess": "缓存已清除。已删除 {count} 条过期条目。",
"clearError": "清除缓存失败。",
"unavailable": "缓存不可用",
"unavailableDesc": "无法获取缓存统计信息。请确保服务器正在运行。",
"memoryEntriesSub": "内存 LRU",
"dbEntriesSub": "已持久化(SQLite",
"cacheHitsSub": " {total} ",
"tokensSavedSub": "根据命中次数估算",
"autoRefresh": " {seconds} 秒自动刷新",
"hits": "命中次数",
"misses": "未命中次数",
"total": "总计",
"behaviorDeterministic": "仅缓存 temperature=0 的非流式请求。",
"behaviorBypass": "通过请求头 {header} 绕过缓存。",
"behaviorTwoTier": "双层存储:内存 LRU快速+ SQLite重启后持久化",
"behaviorTtl": "默认 TTL30 分钟。可通过 {envVar} 配置。",
"activeDedupKeys": "活跃去重键",
"dedupWindow": "去重窗口",
"promptCache": "Prompt 缓存(提供商侧)",
"cachedRequests": "缓存请求数",
"cacheHitRate": "缓存命中率",
"cachedTokens": "缓存 Tokens",
"cacheCreationTokens": "缓存创建 Tokens",
"byProvider": "按提供商分类",
"provider": "提供商",
"requests": "请求数",
"inputTokens": "输入 Tokens",
"cachedTokensCol": "已缓存",
"cacheCreation": "创建",
"trend24h": "缓存趋势24 小时)",
"cached": "已缓存",
"overview": "概览",
"entries": "条目",
"searchEntries": "搜索条目...",
"search": "搜索",
"loading": "加载中...",
"noEntries": "未找到缓存条目",
"signature": "签名",
"model": "模型",
"created": "创建时间",
"expires": "到期时间",
"actions": "操作",
"cacheCreationWrite": "缓存创建(写入)",
"cacheMetrics": "Prompt 缓存指标",
"cacheReuseRatio": "缓存复用率",
"cacheReuseRatioDesc": "缓存 Tokens / 输入 Tokens 总量",
"cachedShort": "已缓存",
"cachedTokensRead": "缓存 Tokens读取",
"estCostSaved": "预估节省费用",
"inputShort": "输入",
"requestsShort": "请求",
"resetMetrics": "重置指标",
"resetting": "正在重置...",
"withCacheControl": "含缓存控制",
"writeShort": "写入"
}
}