PageSourceSearch

https://code80.ai/assets/zh-BrxoLkJ7.js

js code80.ai collected 2026-10-05 14:21:08 UTC 611,869 bytes, 59 lines download raw bytes

1const c={channelMonitorV2:{title:"渠道监控",updating:"正在更新数据",updatedTo:"更新至 {time}",partialCoverage:"部分历史覆盖",bootstrap:{title:"正在补齐历史监控数据",description:"首次启用被动监控时,系统会在后台静默聚合 90 分钟、24 小时、7 天与 30 天窗口;完成后可切换全部时间范围。",progress:"进度 {percent}%",working:"后台聚合中…"},timeRange:"时间范围",clearFilters:"重置",refreshingFilters:"筛选条件已变化,正在刷新矩阵、趋势和明细…",switchingData:"正在切换筛选数据…",summaryAria:"筛选范围整体汇总",loadFailed:"渠道监控加载失败",detailLoadFailed:"渠道监控明细加载失败",otherModels:"其他模型",ignored:"忽略",currentUser:"当前用户",ranges:{"90m":"90m","24h":"24h","7d":"7d","30d":"30d"},filters:{platform:"平台",allPlatforms:"全部",group:"分组",allGroups:"全部",model:"模型",allModels:"全部",empty:"暂无可选项",selectedCount:"{count} 项",labelValue:"{label}:{value}"},groupBy:{label:"展示维度",platform:"平台",platformGroup:"平台 / 分组",platformModel:"平台 / 模型",platformGroupModel:"平台 / 分组 / 模型"},trendView:{label:"趋势视图",pulse:"色块矩阵",line:"折线图"},healthMode:{label:"健康显示",overall:"综合",success:"错误率",ttft:"首 Token",cache:"缓存率"},tabs:{aria:"明细维度",models:"模型",errors:"错误原因",users:"用户排行"},metrics:{rpm:"RPM",tpm:"TPM",tps:"每秒 Token",rpmDetail:"每分钟请求数",tpmDetail:"每分钟 Token 数",tpsDetail:"由 TPM ÷ 60 换算",errorRate:"错误率",ttft:"首 Token",ttftP50:"首 Token P50",durationP50:"请求时长 P50",cacheRate:"缓存率",cacheDetail:"读缓存占比",successRate:"成功率",successRateValue:"成功率 {value}",errorRateValue:"错误率 {value}",rpmValue:"RPM {value}",tpmValue:"TPM {value}",tpsValue:"每秒 Token {value}",ttftValue:"首 Token {value}",durationValue:"请求时长 {value}",cacheRateValue:"缓存率 {value}"},table:{platformModel:"平台 / 模型",rank:"排名",user:"用户"},empty:{title:"没有可展示的数据",description:"尝试调整时间范围或筛选条件"},bucket:{minutes:"{count} 分钟粒度",hours:"{count} 小时粒度",days:"{count} 天粒度"},matrix:{title:"可用性趋势",description:"每行是一种渠道组合,每个色块代表一个统计区间;悬停查看明细",wheelZoom:"在色块上滚轮放大(区间变窄、色块变宽)",wheelZoomX:"在色块上滚轮放大(区间变窄、色块变宽)",dimension:"渠道维度",emptyTitle:"当前筛选窗口没有矩阵数据",legendAria:"健康分数图例",bad:"差",good:"好",healthyLegend:"健康 (≥80)",warningLegend:"需关注 (50–79)",criticalLegend:"异常 (<50)",unknownLegend:"无流量 / 样本不足",noTraffic:"该区间无流量",noTrafficAt:"{time} · 无流量",scoreLine:"健康分 {score}",resetZoom:"重置缩放"},chart:{title:"可用性趋势",description:"平滑趋势:错误率 · 首 Token P50 · 缓存率",emptyTitle:"当前筛选窗口没有趋势数据",errorLegend:"错误率(左轴 %)",cacheLegend:"缓存率(左轴 %)",ttftLegend:"首 Token P50(右轴)",errorDataset:"错误率趋势 %",cacheDataset:"缓存率趋势 %",ttftDataset:"首 Token 趋势 P50 (ms)",percentAxis:"比率 %",resetZoom:"重置缩放"},errorDetail:{http:"HTTP {code}",upstream:"上游 {code}",noMessage:"无错误消息",empty:"仅展示分类占比(样本消息仅管理员可见)"},errorCategories:{content_policy:"内容策略",authentication:"认证失败",context_limit:"上下文超限",invali
1d_request:"请求格式",model_unsupported:"模型不支持",group_access:"分组权限",quota_or_balance:"额度或余额",account_pool_unavailable:"账号池不可用",rate_or_capacity:"限流或容量",timeout:"超时",transport_or_stream:"传输或流",upstream_forbidden:"上游拒绝",not_found:"资源不存在",client_cancelled:"客户端取消",upstream_5xx:"上游 5xx",internal:"内部错误",other:"其他"},rank:{gold:"第 1 名 金",silver:"第 2 名 银",bronze:"第 3 名 铜",place:"第 {n} 名",unranked:"未上榜"},settings:{title:"V2 数据监控配置",description:"配置被动用量汇总维度(平台 / 模型 / 分组)与刷新频率。健康色与明细在用户端 /monitor 以比例、RPM/TPM 展示,不暴露绝对请求量。",save:"保存",loading:"加载中...",loadFailed:"V2 配置加载失败",saveSuccess:"V2 监控配置已保存",saveFailed:"V2 配置保存失败",modeBanner:"当前系统设置为 {mode}。V2 分钟聚合不会运行;此处配置可预先保存,切换到 {modeV2} 后立即生效。可在系统设置 → 功能开关调整。",modeClosed:"渠道监控已关闭",modeV1:"V1 主动探测",modeV2:"V2 被动监控",enableTitle:"启用 V2 汇总",enableHint:"在系统模式为 V2 时生效;关闭后仅停止本配置的汇总,系统模式开关仍在「功能开关」",refreshTitle:"汇总频率",refreshHint:"影响矩阵时间粒度与刷新节奏",refreshAria:"汇总频率",platformsTitle:"平台与模型",platformsHint:"留空 = 展示全部真实模型名;填写后仅名单内单独成行,其余归入「其他」",modelsPlaceholder:"留空=全部真实模型;或填写主流模型名单(其余归其他)",badgeAllModels:"全部模型",badgeOther:"+ 其他",groupsTitle:"监控分组",groupsSelected:"已选择 {count} 个分组",groupsAll:"全部分组",groupsEmpty:"没有可选择的分组",errorsTitle:"错误分类与忽略",errorsHint:"勾选「忽略」的类别不计入错误率与健康分,仍在错误原因列表中以灰色显示并标记忽略。未匹配的错误归入「其他」。",ignoredSummary:"已忽略 {ignored} 类 · 计入错误率 {counted} 类",healthTitle:"健康阈值",healthHint:"控制用户端色块和整体评分。默认阈值较宽松,避免少量错误或低缓存率立即显示异常。",fields:{minimumSample:"最小样本数",warningError:"错误率关注 %",criticalError:"错误率异常 %",targetTtft:"TTFT 目标 ms",warningTtft:"TTFT 关注 ms",criticalTtft:"TTFT 异常 ms",warningCache:"缓存率关注 %",criticalCache:"缓存率异常 %"},namedModelsEmpty:"各平台模型列表为空:将展示全部真实模型名(不归入「其他」)。",namedModelsCount:"将展示 {count} 个命名模型维度;名单外模型归入各平台「其他」。",userContractTitle:"用户端展示约定",userContract:{health:"健康色三指标:错误率 60% + 首 Token P50 20% + 缓存率 20%(阈值可在上方配置)",trend:"趋势可切换色块矩阵 / 折线图(错误率 · 缓存率 · 首 Token)",latency:"延迟展示 AVG · P50 · P90;不展示绝对请求数 / 错误数",models:"模型列表留空时展示真实模型名,不会全部归入「其他」"}},admin:{descriptionV1:"当前系统设置为 V1 主动探测:可管理监控项并立即检测;V2 聚合不会运行。",descriptionV2:"当前系统设置为 V2 被动监控:配置聚合维度;V1 主动探测不会运行。",tabAria:"监控管理",tabV2:"V2 数据监控配置",tabV1Active:"V1 主动探测",tabV1History:"V1 历史(当前模式未启用探测)"}}},u={plugins:{title:"插件管理",description:"安装和管理独立运行的 OAuth 出站传输插件。API Key 流程不受影响。",upload:"安装插件",uploadHint:"仅接受 .s2plugin 包;默认要求可信发布者签名。",runtimeNotice:"插件安装、启用、停用和配置由 Sub2API 宿主动态处理,通常不需要重启宿主实例。只有宿主版本或宿主配置本身变化时,才按部署方式执行重启。",menuNotice:"系统设置中的“插件管理”开关仅控制侧边栏菜单显示,不会停止已经加载或正在运行的插件。",empty:"尚未安装插件",emptyHint:"选择本机的 .s2plugin 文件进行安装。Sub2API 不会自动下载第三方插件。",configure:"配置",enable:"启用",disable:"停用",test:"测试",uninstall:"卸载",rollout:"OAuth 流量比例",compatibility:"版本兼容性",currentVersion:"当前 Sub2API",requiredVersion:"要求范围",recommendedVersion:"建议版本",signature:"包签名",trusted:"已验证",unsigned:"未签名",runtime:"运行状态",healthy:"运行正常",unhealthy:"未运行",compatible:"兼容",untested:"未验证版本",incompatible:"不兼容",enabled:"已启用",disabled:"已停用",error:"异常",starting:"启动中",configTitle:"{name} 配置",loadingUI:"正在加载插件配置界面...",uiUnavailable:"无法加载插件配置界面",uploadSuccess:"插件安装成功,当前保持停用",enableSuccess:"插件已启用",disableSuccess:"插件已停用",uninstallSuccess:"插件已卸载",testSuccess:"插件测试通过",confirmDisable:"确定停用此插件吗?新的 OAuth 请求会立即恢复 Sub2API 原有路径。",confirmUninstall:"确定卸载此插件吗?插件必须先停用。此操作会移除安装文件和配置。",confirmUntested:"该插件兼容当前版本范围,但未声明已测试当前 Sub2API 版本。确定承担风险并启用吗?",fileRequired:"请选择 .s2plugin 文件",bridgeRejected:"插件 UI 消息校验失败",onlyOpenAI:"初期能力:仅 OpenAI OAuth 出站传输",noAccountCoupling:"作用域为平台与账号类型,不修改账号数据,也不需要在账号页逐个开启。"}},o={batchImageGuide:{title:"图片批量生成",description:"一次提交多条提示词,任务完成后可统一下载图片结果"},batchImage:{columns:{taskName:"任务名称",model:"模型",apiKey:"提交密钥",result:"结果",cost:"费用",downloadStatus:"下载状态"},status:{queued:"排队中",running:"生成中",processingResults:"整理结果",settling:"结算中",completed:"已完成",failed:"失败",cancelled:"已取消",outputDeleted:"结果已删除",partialSuccess:"部分成功",allFailed:"全部失败"},itemStatus:{pending:"排队中",succeeded:"成功",failed:"失败",cancelled:"已取消",recovered:"已补成功"},filters:{searchTaskName:"搜索任务名称",allApiKeys:"全部 API Key",allStatuses:"全部状态",allDownloadStates:"全部下载状态",downloaded:"已下载",notDownloaded:"未下载"}
1,actions:{usageGuide:"使用说明",createJob:"创建批量任务",downloadSelected:"下载选中",deleteRecords:"删除记录",retryFailedItems:"重试失败项",cancelJob:"取消任务",downloadZip:"下载 ZIP",viewDetail:"查看详情",download:"下载",moreActions:"更多操作",copyInstruction:"复制说明",submitJob:"提交任务"},list:{selectedJobs:"已选择 {count} 个任务",expandChildren:"展开 {n} 个子任务",collapseChildren:"收起子任务",childCount:"{n} 子任务",childBadge:"子任务",keyNotRecorded:"未记录",totalCount:"共 {n}",notDownloaded:"未下载",empty:"暂无批量任务",emptyHint:"点击右上角创建批量任务。"},pagination:{pageNumber:"第 {page} 页",pageItems:"本页 {count} 条"},promptPopover:{title:"完整 Prompt",copied:"Prompt 已复制"},detail:{title:"任务详情",aggregatedResult:"汇总结果",result:"结果",cost:"费用",downloadStatus:"下载状态",items:"明细",preview:"预览",previewZoom:"放大压缩预览 {id}",previewReload:"重新加载压缩预览",previewLoad:"加载压缩预览",previewUnavailable:"不可预览",noImage:"无图片",loadingItems:"正在加载明细...",noItems:"暂无明细",noItemsHint:"排队或生成中的任务会先显示已提交的 prompt,结果整理完成后会更新图片状态。",mainTask:"主任务:{name}",childTask:"子任务:{name}",holdCost:"冻结 {amount}"},itemResult:{recoveredByRetry:"旧失败已由重试子任务补成功",readyPreview:"图片已生成,可点击预览",readyDownload:"图片已生成,可下载",noUsableImage:"未生成可用图片",cancelled:"任务已取消",waiting:"等待生成结果",emptyImageOutput:"上游返回了结果,但这条没有图片内容。通常是 Gemini/Vertex 单条生成失败或被安全策略拦截。",providerItemFailed:"上游返回的这条结果没有可用图片。"},imagePreview:{title:"图片预览",notice:"当前显示的是浏览器本地缓存的压缩缩略图,清晰度会有影响;需要查看原图请下载 ZIP。"},create:{title:"创建批量任务",taskName:"任务名称",taskNamePlaceholder:"不填写则默认使用当前时间",loadingKeys:"加载 API Key 中...",selectKeyPlaceholder:"请选择 Gemini API Key",noKeysHint:"当前没有可用于批量生图的 Gemini API Key。请先创建并绑定已开启批量生图的 Gemini 分组。",model:"模型",imageSize:"图片尺寸",imageSizeHint:"当前批量任务固定按 1K 图片提交。",outputFormat:"输出格式",estimatedOutput:"预计生成",estimatedOutputValue:"{images} å¼  / {prompts} 条",promptAdded:"已添加 {count} 条",promptPlaceholder:"粘贴 prompt,添加后进入下方列表",customIdPlaceholder:"Custom ID 可选",outputCountPerPrompt:"每条生成张数",outputCountOption:"{n} å¼ ",referenceImage:"参考图",removeReferenceImage:"移除参考图",limitsHint:"每条最多 {maxPerItem} 张,整组最多 {maxPerJob} 张;当前模型每条最多 {refLimit} 张参考图,参考图按生成张数重复消耗输入 token。",referenceCount:"{n} 参考图",noPrompts:"还没有添加 prompt。",cancelNotice:"取消任务会请求上游取消;已被系统索引为成功的图片仍会按成功项结算扣费,其余冻结金额会释放。",submittingNotice:"正在创建上游批量任务,通常需要几秒,请不要重复提交。",modelNoReferenceImages:"当前模型不支持参考图。",refLimitReached:"当前模型每条最多 {limit} 张参考图。",refLimitExceededIgnored:"当前模型每条最多 {limit} 张参考图,已忽略超出的文件。",refFormatUnsupported:"参考图仅支持 PNG、JPEG 或 WebP。",refFileTooLarge:"{name} 超过 10MB,已忽略。"},guide:{title:"批量生图使用说明",uiTitle:"当前界面如何使用",step1:"1. 选择已开启批量生图的 Gemini API Key,模型列表会按该 Key 所属分组可用模型展示。",step2:"2. 任务名称可以留空,提交时会自动使用当前时间;Prompt 需要一条条添加到列表里,每条 Prompt 可附参考图,也可以设置重复生成张数。",step3:"3. 提交后任务会先排队,明细会展示已提交的 Prompt;图片预览默认不加载,点击明细里的预览按钮才会加载单张图。",step4:"4. 完成后可以下载 ZIP;部分失败时,更多菜单里可以只重试失败项。当前结算仍按成功输出图张数计算,不单独对参考图加价。",skillTitle:"给 Codex 的 Skill 说明",skillDesc:"用于告诉 Codex 如何ä
1»£æ›¿ç”¨æˆ·æ•´ç† prompt、提交任务和下载结果。"},messages:{loadKeysFailed:"加载 API Key 失败",loadModelsFailed:"加载可用模型失败",loadJobsFailed:"加载批量任务失败",selectApiKey:"请选择可用的 Gemini API Key",noModelsForKey:"当前密钥没有可用的批量生图模型",selectModel:"请选择模型",promptRequired:"请至少填写一条 prompt",submitted:"批量任务已提交",submitFailed:"提交失败",refreshFailed:"刷新失败",cancelConfirm:"取消会请求上游取消;已被系统索引为成功的图片仍会按成功项结算扣费,其余冻结金额会释放。确定取消吗?",cancelled:"已请求取消任务",cancelFailed:"取消失败",batchDownloadStarted:"已开始下载选中的任务",downloadFailed:"下载失败",retrySubmitted:"已提交失败项重试任务",retryFailed:"重试失败项失败",retryMissingPrompts:"这个任务没有保存失败项 prompt,无法自动重试。请复制原 prompt 后重新创建任务。",retryTaskNameSuffix:"重试失败项",deleteConfirm:"删除后这个任务会从你的列表隐藏,但账务记录仍会保留。确定删除吗?",deleteSelectedConfirm:"删除后选中的任务会从你的列表隐藏,但账务记录仍会保留。确定删除吗?",deleted:"任务记录已删除",deleteFailed:"删除任务记录失败",loadItemsFailed:"加载明细失败",loadPreviewFailed:"加载图片预览失败",copiedInstruction:"已复制批量生图说明",loadingModels:"加载可用模型中...",noModels:"无可用模型",noModelsHint:"当前密钥所属分组没有配置可用于批量生图的模型。",noCompatibleAccount:"当前密钥所属分组没有可用的批量生图上游账号。请联系管理员检查:该分组是否绑定了可调度的 Gemini API Key 或 Vertex 服务账号,以及账号是否支持所选模型。",unsupportedProvider:"这个任务使用的批量生图通道当前不可用。请联系管理员检查批量生图通道配置。",providerSubmitFailed:"上游批量生图任务提交失败。请联系管理员检查上游账号状态、模型权限或服务状态。",vertexGcsBucketMissing:"Vertex 批量生图缺少托管 GCS 存储桶配置。请联系管理员配置 BATCH_IMAGE_VERTEX_MANAGED_GCS_BUCKET 后再提交。",queueFailed:"任务队列暂时不可用,批量任务没有成功入队。请联系管理员检查队列服务。",billingHoldFailed:"费用冻结失败,批量任务没有成功提交。请联系管理员检查余额冻结或计费服务。",groupDisabled:"当前密钥所属分组没有开启批量生图。你可以换一个已开启批量生图的密钥,或联系管理员开启。",pricingMissing:"所选模型还没有配置批量生图价格。请联系管理员补充价格配置。",insufficientBalance:"余额不足,无法冻结本次批量生图费用。",invalidModel:"请选择一个可用于当前密钥的批量生图模型。",invalidItems:"Prompt 列表格式不正确,请检查是否为空、是否超过数量限制,或图片尺寸是否仍为 1K。",duplicateCustomId:"Prompt 列表里的 custom_id 不能重复。",promptTooLong:"单条 prompt 过长,请缩短后重试。",invalidReferenceImage:"参考图格式不正确,请使用 10MB 以内的 PNG、JPEG 或 WebP。",tooManyReferenceImages:"参考图数量超过限制:Flash Image 每条最多 3 张,Pro Image 每条最多 14 张,整组最多 1000 张。",referenceImagesTooLarge:"参考图总量过大。inline 参考图整组最多 128MB;大量参考图请改用 gs:// file_uri 或拆分任务。",tooManyOutputImages:"预计生成张数超过限制:每条最多 4 张,整组最多 200 张。",idempotencyConflict:"这次提交和之前的请求标识冲突,请刷新页面后重新提交。",notReady:"任务还没有完成,完成后才能下载。",outputDeleted:"这个任务的结果文件已经被清理,无法下载。",resultMissing:"结果文件不可用,可能是上游结果文件已清理、存储权限异常,或管理员迁移过存储配置。请联系管理员检查结果文件。",itemFailed:"这条明细没有成功图片,无法预览。",itemImageIndexOutOfRange:"这条明细没有可预览的图片。",downloadLimited:"当前下载请求太多,请稍后再试。",downloadTooLarge:"这个 ZIP 太大,已超过单次下载限制。请减少单次下载数量,或联系管理员调整批量下载上限。",deleteNotReady:"任务结束后才能删除记录。正在生成或结算中的任务请先等待完成。",disabled:"批量生图功能当前未开启。",authRequired:"当前 API Key 不可用或已失效,请重新选择密钥。",adminReference:"请把错误码和请求 ID 发给管理员排查。",errorReference:"错误信息",errorCodeRef:"错误码:{code}",requestIdRef:"请求 ID:{id}",httpStatusRef:"HTTP 状态:{status}"}},home:{viewOnGithub:"在 GitHub 上查看",viewDocs:"查看文档",docs:"文档",installGuide:"安装教程",releaseNotes:"版本发布",switchToLight:"切换到浅色模式",switchToDark:"切换到深色模式",dashboard:"控制台",login:"登录",getStarted:"立即开始",goToDashboard:"进入控制台",heroSubtitle:"一个密钥,畅用多个 AI 模型",heroDescription:"无需管理多个订阅账号,一站式接入 Claude、GPT、Gemini 等主流 AI 服务",tags:{subscriptionToApi:"订阅转 API",stickySession:"会话保持",realtimeBilling:"按量计费"},painPoints:{title:"你是否也遇到这些问题?",items:{expensive:{title:"订阅费用高",desc:"每个 AI 服务都要单独订阅,每月支出越来越多"},complex:{title:"多账号难管理",desc:"不同平台的账号、密钥分散各处,管理起来很麻烦"}
1,unstable:{title:"服务不稳定",desc:"单一账号容易触发限制,影响正常使用"},noControl:{title:"用量无法控制",desc:"不知道钱花在哪了,也无法限制团队成员的使用"}}},solutions:{title:"我们帮你解决",subtitle:"简单三步,开始省心使用 AI"},features:{unifiedGateway:"一键接入",unifiedGatewayDesc:"获取一个 API 密钥,即可调用所有已接入的 AI 模型,无需分别申请。",multiAccount:"稳定可靠",multiAccountDesc:"智能调度多个上游账号,自动切换和负载均衡,告别频繁报错。",balanceQuota:"用多少付多少",balanceQuotaDesc:"按实际使用量计费,支持设置配额上限,团队用量一目了然。"},comparison:{title:"为什么选择我们?",headers:{feature:"对比项",official:"官方订阅",us:"本平台"},items:{pricing:{feature:"付费方式",official:"固定月费,用不完也付",us:"按量付费,用多少付多少"},models:{feature:"模型选择",official:"单一服务商",us:"多模型随意切换"},management:{feature:"账号管理",official:"每个服务单独管理",us:"统一密钥,一站管理"},stability:{feature:"服务稳定性",official:"单账号易触发限制",us:"多账号池,自动切换"},control:{feature:"用量控制",official:"无法限制",us:"可设配额、查明细"}}},providers:{title:"已支持的 AI 模型",description:"一个 API,多种选择",supported:"已支持",soon:"即将推出",claude:"Claude",gemini:"Gemini",antigravity:"Antigravity",more:"更多"},nav:{benefits:"优势",features:"功能",products:"产品墙",howItWorks:"安装教程",pricing:"定价",faq:"常见问题"},hero:{brandSlogan:"AI 编程巴士",description:"在你的终端、IDE 或浏览器中直接使用 AI 编程助手。只需一个 API Key,即可接入 Claude、GPT、Gemini 等主流模型。",builtFor:"为 {word} 打造",typewriterWords:["高级程序员","AI 编程爱好者","AI 极客","独立产品开发者"]},backToTopHorn:"鸣笛并回到顶部",installCommand:{label:"快速配置",copied:"已复制",docsLink:"或查看安装教程"},stats:{uptime:"可用率",apiCalls:"API 调用",latencyOverhead:"延迟增加",modelsSupported:"支持模型"},featureShowcase:{title:"多端适配,随处可用",tabs:{terminal:{title:"终端",heading:"超强的终端体验",desc:"在终端中运行,与你喜爱的 IDE 和开发工具无缝协作,无需改变现有工作流。"},ide:{title:"IDE",heading:"原生 IDE 扩展",desc:"为 VS Code、Cursor、Windsurf 和 JetBrains IDE 提供原生扩展支持。"},slack:{title:"Slack",heading:"Slack 集成",desc:"在 Slack 对话中直接调用,让 AI 编程助手融入团队协作流程。"}}},capabilities:{tabs:{onboarding:{title:"代码上手"},triage:{title:"问题处理"},refactor:{title:"代码重构"}},onboarding:{feature1:{title:"快速理解代码库",desc:"自动分析整个代码库的架构、模块关系和关键路径,几分钟内建立全局认知。"},feature2:{title:"从 Issue 到 PR",desc:"直接从 GitHub Issue 出发,自动定位相关代码、生成修复方案并创建 Pull Request。"},feature3:{title:"强大的代码编辑",desc:"理解项目上下文后进行精准的跨文件修改,自动处理依赖关系和测试。"}},triage:{feature1:{title:"智能问题定位",desc:"自动分析错误日志和堆栈信息,定位到具体的代码行和根因。"},feature2:{title:"自动生成修复",desc:"不只是发现问题,还会生成完整的修复代码并验证测试通过。"},feature3:{title:"上下文感知",desc:"理解代码的完整上下文,避免头痛医头的临时方案。"}},refactor:{feature1:{title:"架构级重构",desc:"支持提取接口、拆分模块、调整依赖关系等大范围重构操作。"},feature2:{title:"安全迁移",desc:"重构过程中自动更新所有引用、调整测试、确保编译通过。"},feature3:{title:"渐进式改进",desc:"将大型重构拆解为安全的小步骤,每一步都可编译、可测试。"}}},powerFeatures:{statsCard:{label:"平台实力",uptime:"服务可用率",latency:"额外延迟",models:"支持模型"},groups:{intelligence:{title:"强大的 AI 能力",subtitle:"接入最前沿的大语言模型",point1:"Claude Opus/Sonnet 全系列深度推理",point2:"Codex 5.3 X-high、Gemini 3.1 最新模型",point3:"完整 Extended Thinking 思考链",point4:"原生上下文窗口,不做裁剪"},flexible:{title:"灵活的使用方式",subtitle:"适配你的工作流",point1:"兼容 OpenAI API 格式,一行配置",point2:"Claude Code / Codex CLI / Gemini CLI / Grok Build",point3:"VS Code、JetBrains 等 IDE 扩展",point4:"支持 MCP Server 和自定义工具链"},control:{title:"完全可控",subtitle:"用量和成本一目了然",point1:"实时用量监控和费用统计",point2:"灵活的配额管理和限制策略",point3:"多账号池自动调度和故障转移",point4:"Sticky Session 保持会话连续性"}}},integrations:{title:"在你习惯的工具中使用",subtitle:"一行配置,无缝接入你最爱的 AI 编程助手",claude:{
1name:"Claude Code",desc:"Anthropic 官方 CLI 编程助手",feature1:"支持 Extended Thinking 深度推理",feature2:"完整上下文窗口,不做裁剪",feature3:"自动上下文压缩,超长对话流畅续写"},codex:{name:"Codex CLI",desc:"OpenAI 官方 CLI 编程助手",feature1:"兼容 OpenAI API 格式",feature2:"支持 Codex 5.3 X-high 模型",feature3:"沙盒环境安全执行代码"},gemini:{name:"Gemini CLI",desc:"Google 官方 CLI 编程助手",feature1:"支持 Gemini 系列最新模型",feature2:"超长上下文窗口",feature3:"多模态理解能力"},grok:{name:"Grok Build",desc:"xAI 官方终端 AI 编程工具",feature1:"官方 Grok Build 二进制,非社区同名包",feature2:"OpenAI 兼容中转,一键指向 Code80",feature3:"支持 /model 远端模型目录拉取"},viewGuide:"查看安装教程"},trustLogos:{subtitle:"深度集成主流 AI 模型"},benefits:{title:"为什么选择我们",subtitle:"纯血订阅帐号转发,体验与官方一致",items:{pureSubscription:{title:"纯血订阅转发",desc:"真实 Claude Max / ChatGPT Plus/Pro / Google Plus/Ultra 订阅帐号直连,非逆向破解"},extendedThinking:{title:"深度思考",desc:"完整支持 Extended Thinking,复杂推理不打折"},noInterruption:{title:"零断流",desc:"官方协议转发,告别逆向渠道的频繁掉线和报错"},fullContext:{title:"上下文完整",desc:"与官方一致的上下文窗口,不做任何裁剪"},autoCompression:{title:"智能压缩",desc:"自动上下文压缩,超长对话也能流畅续写"},highAvailability:{title:"高可用调度",desc:"多帐号池自动切换与故障转移,服务持续在线"},stickySession:{title:"会话保持",desc:"Sticky Session 锁定同一帐号,长对话上下文不丢失"},oneLineIntegration:{title:"一行代码接入",desc:"兼容 OpenAI API 格式,换个地址就能用"},multiModel:{title:"多模型支持",desc:"Claude、GPT、Gemini、Grok 一站式管理,无需多平台切换"},realtimeMonitoring:{title:"实时监控",desc:"用量、费用、帐号状态一目了然"},payAsYouGo:{title:"按量付费",desc:"用多少付多少,无最低消费门槛"},flexibleQuota:{title:"灵活配额",desc:"按包月或余额设置使用额度,丰俭由人"}}},howItWorks:{title:"三步开始使用",subtitle:"从注册到使用,只需几分钟",step1:{title:"注册获取 API Key",desc:"注册账号并在控制台生成你的专属 API Key"},step2:{title:"安装 CLI 工具",desc:"选择你喜欢的 AI 编程助手并完成安装配置"},step3:{title:"开始编程",desc:"用 AI 助手提升你的编程效率"},showDetail:"查看详细安装教程",hideDetail:"收起详细教程",fullGuide:"查看完整安装教程"},pricing:{title:"定价方案",subtitle:"选择适合你的方案",freeMode:"免费使用",freeModeDesc:"当前系统为免费模式,直接注册即可使用所有功能",recommended:"推荐",days:"天",dailyLimit:"每日额度",monthlyLimit:"每月额度",subscribe:"立即订阅",getStarted:"注册使用",contactSales:"更多订阅方式,联系销售团队",contactWechat:"客服微信",perMonth:"/月",upgrade:"升级"},modelPricing:{title:"详细模型价格",subtitlePublic:"所有公开渠道与分组的默认倍率价格,登录后可查看你的专属倍率",subtitleAuth:"已按你的专属倍率折算实际扣费价格",tableTitle:"价格明细",subscribeBtn:"去订阅",groupHint:"选择分组后查看对应计费价格",emptyState:"暂未配置首页展示分组",emptyModels:"该分组在当前平台暂无可展示的模型",rateHint:"{rate}x 倍率 · 相当于约 {discount}",savePercent:"省 {percent}%",officialPricePrefix:"官方价格 ¥",officialUSDPrefix:"官方 $",colModel:"模型 ID",colInput:"输入价格",colOutput:"输出价格",colCacheWrite:"缓存创建",colCacheRead:"缓存读取",colSavings:"节省幅度",copy:"复制"},pricingComparison:{title:"比官方便宜多少?",subtitle:"与 Anthropic / OpenAI / Google 官方 API 和 Cursor 价格对比($/1M tokens)",cols:{model:"模型",official:"官方 API",platform:"本平台",cursor:"Cursor"},noData:"暂无对比数据",saveX:"省 {pct}%",perImage:"/张",perMillion:"/1M",savingsVsOfficial:"vs 官方",savingsVsCursor:"vs Cursor",disclaimer:"价格按当前公开分组最低倍率计算,仅供参考;实际费率以账户页显示为准。"}
1,testimonials:{title:"用户怎么说",subtitle:"来自真实用户的反馈"},gallery:{all:"全部",noImages:"暂无图片",sectionTitle:"订阅截图展示",sectionSubtitle:"真实帐号订阅截图"},productWall:{badge:"AI 编程巴士产品墙",title:"看看大家已经做出了什么",subtitle:"真实用户把 AI 编程巴士用在产品开发上,已经跑出了可上线、可访问、可获客的项目。你既能看到成果,也能把自己的产品挂上来获得曝光。",viewAll:"查看全部作品",publish:"发布我的产品",publishRegister:"注册并发布我的产品",stats:{approved:"已上墙作品",creators:"创作者人数",recent:"近 30 天新增",featured:"精选作品"},empty:"第一批作品正在路上。你可以成为第一位把产品挂到产品墙上的用户。",expand:"展开详情",collapse:"收起详情",modelsPrefix:"模型:",visit:"访问产品",page:{home:"首页",publish:"发布我的产品",publishRegister:"注册发布",heroBadge:"AI 编程巴士 Product Wall",heroTitle:"真实产品,比任何宣传都更有说服力",heroSubtitle:"这里展示的是用户借助 AI 编程巴士完成或显著加速的产品。你可以看到成果,也可以把自己的产品挂到这里,获得站外导流和站内背书。",statApproved:"作品总数",statCreators:"创作者",statRecent:"近 30 天新增",statFeatured:"精选作品",searchPlaceholder:"搜索产品名、简介、AI 说明",categoryPlaceholder:"分类,如 SaaS / 工具 / 内容站",sortFeatured:"推荐优先",sortLatest:"最新优先",filter:"筛选",emptyFiltered:"当前筛选下还没有作品。",durationPrefix:"周期:",publishedAt:"发布于 {date}"}},faq:{title:"常见问题",subtitle:"关于使用的常见疑问",items:{apiKey:{q:"什么是 API Key?如何获取?",a:'API Key 是访问 AI 服务的密钥。注册账号后,在控制台的"API 密钥"页面即可创建。每个 Key 可以设置独立的使用权限和额度。'},models:{q:"支持哪些 AI 模型?",a:"目前支持 Claude(Anthropic)、GPT(OpenAI)、Gemini(Google)等主流 AI 模型。支持的模型列表会持续更新。"},billing:{q:"如何计费?如何查看余额?",a:"按实际 API 调用的 token 使用量计费,价格与上游 API 官方定价一致,不额外加价。每次对话消耗的费用取决于输入和输出的 token 数量。登录控制台即可查看实时余额和每笔调用的详细使用记录。"},usage:{q:"额度能用多久?什么因素影响消耗速度?",a:"每次对话的实际花费取决于多个因素:所选模型(Opus 远贵于 Haiku)、对话长度和上下文窗口大小、是否命中缓存等。一段较长的多轮对话可能消耗数万 tokens,费用远高于一次简短提问。建议在控制台查看自己的历史使用记录,即可了解个人的实际消耗水平。"},whyCheap:{q:"是帐号中转吗?为什么价格这么便宜?",a:"是的,我们是帐号中转。团队成员都是资深 AI 编程玩家,深知中转平台的各种坑,所以从第一天起就坚持自己充值原生 Max 帐号进行转发,不做逆向、不走套娃的三方渠道,从源头保证服务质量和稳定性ã€
1‚我们不追求规模,只服务少量用户,目前定价在同类中非常低,实际上也是多家中转平台的上游供应商。AI 编程巴士聚焦服务企业老板、技术团队、超级个体和 KOC 等高价值用户——相信你用过一次,就很难再换回其他平台了。"},support:{q:"遇到问题如何联系客服?",a:"可以通过页面底部的联系方式或控制台中的反馈功能联系我们,通常会在 24 小时内回复。"},refund:{q:"支持退款吗?",a:"未使用的余额支持退款,请联系管理员处理。订阅套餐如因系统故障或封号等非用户原因导致无法正常使用,支持退还有效期内未消耗的部分,请联系管理员处理。"}}},finalCta:{title:"准备好开始了吗?",subtitle:"注册即可获取 API Key,立即体验最强 AI 编程助手",register:"立即注册"},cta:{title:"准备好开始了吗?",description:"注册即可获得免费试用额度,体验一站式 AI 服务",button:"免费注册"},footer:{allRightsReserved:"保留所有权利。",product:"产品",support:"支持",installGuide:"安装教程",releaseNotes:"版本发布",faq:"常见问题",contactUs:"联系我们",wechat:"微信客服",group:"用户社群",dashboard:"控制台",login:"登录",poweredBy:"AI API Gateway",brandTagline:"AI 编程巴士"}},keyUsage:{title:"API Key 用量查询",subtitle:"输入您的 API Key 以查看实时消费金额与使用状态",placeholder:"sk-ant-mirror-xxxxxxxxxxxx",query:"查询",querying:"查询中...",privacyNote:"您的 Key 仅在浏览器本地处理,不会被存储",dateRange:"统计范围:",dateRangeToday:"今日",dateRange7d:"7 天",dateRange30d:"30 天",dateRange90d:"90 天",dateRangeCustom:"自定义",apply:"应用",used:"已使用",detailInfo:"详细信息",tokenStats:"Token 统计",dailyDetail:"按日明细",modelStats:"模型用量统计",date:"日期",model:"模型",requests:"请求数",inputTokens:"输入 Tokens",outputTokens:"输出 Tokens",cacheCreationTokens:"缓存创建",cacheReadTokens:"缓存读取",cacheWriteTokens:"缓存写入",totalTokens:"总 Tokens",cost:"费用",quotaMode:"Key 限额模式",walletBalance:"钱包余额",totalQuota:"总额度",limit5h:"5 小时限额",limitDaily:"日限额",limit7d:"7 天限额",limitWeekly:"周限额",limitMonthly:"月限额",remainingQuota:"剩余额度",expiresAt:"过期时间",todayExpires:"(今日到期)",daysLeft:"({days} 天)",usedQuota:"已用额度",resetNow:"即将重置",subscriptionType:"订阅类型",billingType:"计费方式",subscriptionExpires:"订阅到期",todayRequests:"今日请求",todayInputTokens:"今日输入",todayOutputTokens:"今日输出",todayTokens:"今日 Tokens",todayCacheCreation:"今日缓存创建",todayCacheRead:"今日缓存读取",todayCost:"今日费用",rpmTpm:"RPM / TPM",totalRequests:"累计请求",totalInputTokens:"累计输入",totalOutputTokens:"累计输出",totalTokensLabel:"累计 Tokens",totalCacheCreation:"累计缓存创建",totalCacheRead:"累计缓存读取",totalCost:"累计费用",avgDuration:"平均耗时",enterApiKey:"请输入 API Key",querySuccess:"查询成功",queryFailed:"查询失败",queryFailedRetry:"查询失败,请稍后重试",noDailyUsage:"暂无按日用量数据"},setup:{title:"Code80 安装向导",description:"配置您的 Code80 实例",database:{title:"数据库配置",description:"连接到您的 PostgreSQL 数据库",host:"主机",port:"端口",username:"用户名",password:"密码",databaseName:"数据库名称",sslMode:"SSL 模式",passwordPlaceholder:"密码",ssl:{disable:"禁用",require:"要求",verifyCa:"验证 CA",verifyFull:"完全验证"}},redis:{title:"Redis 配置",description:"连接到您的 Redis 服务器",host:"主机",port:"端口",username:"用户名(可选)",password:"密码(可选)",database:"数据库",usernamePlaceholder:"默认用户留空",passwordPlaceholder:"密码",enableTls:"启用 TLS",enableTlsHint:"连接 Redis 时使用 TLS(公共 CA 证书)"},admin:{title:"管理员账户",description:"创建您的管理员账户",email:"邮箱",password:"密码",confirmPassword:"确认密码",passwordPlaceholder:"至少 6 个字符",confirmPasswordPlaceholder:"确认密码",passwordMismatch:"密码不匹配"},ready:{title:"准备安装",description:"检查您的配置并完成安装",database:"数据库",redis:"Redis",adminEmail
1:"管理员邮箱"},status:{testing:"测试中...",success:"连接成功",testConnection:"测试连接",installing:"安装中...",completeInstallation:"完成安装",completed:"安装完成!",redirecting:"正在跳转到登录页面...",restarting:"服务正在重启,请稍候...",timeout:"服务重启时间超出预期,请手动刷新页面。"}},common:{availableBalance:"可用余额",frozenBalance:"冻结金额",totalBalance:"总余额",login:"登录",loading:"加载中...",submitting:"提交中...",justNow:"刚刚",peakRateTooltip:"高峰倍率:{window}",peakRateImageNote:";token 计费的图片 token 同样适用,图片按次计费不受高峰影响",save:"保存",saved:"保存成功",deleted:"删除成功",cancel:"取消",delete:"删除",edit:"编辑",create:"创建",update:"更新",confirm:"确认",reset:"重置",search:"搜索",filter:"筛选",export:"导出",import:"导入",actions:"操作",status:"状态",name:"名称",email:"邮箱",password:"密码",submit:"提交",back:"返回",next:"下一步",yes:"是",no:"否",all:"全部",none:"无",selectAll:"全选",noData:"暂无数据",loadFailed:"加载失败",retry:"重试",expand:"展开",collapse:"收起",success:"成功",error:"错误",critical:"严重",warning:"警告",info:"提示",active:"启用",inactive:"禁用",more:"更多",close:"关闭",toggleMenu:"切换菜单",userMenu:"用户菜单",pageNotFound:"页面不存在",enabled:"已启用",disabled:"已禁用",total:"总计",balance:"余额",available:"可用",copiedToClipboard:"已复制到剪贴板",copied:"已复制",copyFailed:"复制失败",verifying:"验证中...",processing:"处理中...",contactSupport:"联系客服",add:"添加",apply:"应用",clear:"清除",creating:"创建中...",required:"必填",tryAgain:"请重试",previousPage:"上一页",previous:"上一页",nextPage:"下一页",invalidEmail:"请输入有效的邮箱地址",optional:"可选",selectOption:"请选择",searchPlaceholder:"搜索...",noOptionsFound:"无匹配选项",noGroupsAvailable:"无可用分组",unknownError:"发生未知错误",saving:"保存中...",selectedCount:"(已选 {count} 个)",refresh:"刷新",autoRefresh:{title:"自动刷新",enable:"启用自动刷新",countdown:"自动刷新: {seconds}s",seconds:"{n} 秒"},view:"查看",settings:"设置",chooseFile:"选择文件",copy:"复制",notAvailable:"不可用",notFound:"未找到",now:"现在",today:"今天",tomorrow:"明天",unknown:"未知",minutes:"分钟",showing:"显示",of:"共",upload:"上传",remove:"移除",operationFailed:"操作失败",fileReadFailed:"读取文件失败",fileTooLargeKb:"文件过大(最大 {max} KB)",selectImageFile:"请选择图片文件",sending:"发送中...",time:{never:"从未",justNow:"刚刚",minutesAgo:"{n}分钟前",hoursAgo:"{n}小时前",daysAgo:"{n}天前",countdown:{daysHours:"{d}d {h}h",hoursMinutes:"{h}h {m}m",minutes:"{m}m",withSuffix:"{time} 后解除"}}},contact:{qrcode:{wechat:"微信客服",group:"社群",scanWechat:"扫描二维码添加微信客服",scanGroup:"扫描二维码加入社群"}},invoiceNotice:{banner:{text:"支持开具发票,如需开票请联系客服",action:"联系客服"},reminder:{title:"支持开具发票",description:"如需开具发票,请联系客服微信办理。",viewQrcode:"联系客服",later:"稍后"}},adminCompliance:{title:"部署与运营合规确认",blockingNotice:"继续使用控制台前,须完成部署与运营合规确认。",riskNotice:"本确认用于以清晰、显著、可留痕的方式提示自部署实例的合规义务与运营风险。",version:"协议版本",openDocument:"在 GitHub 查看协议文件",documentSource:"协议正文来自本项目仓库中的 Markdown 文件。修改协议内容时必须同步递增协议版本;已确认的旧版本将失效,控制台使用者须重新确认。",inputLabel:"请逐字输入以下确认短语",inputPlaceholder:"输入确认短语以继续",inputMismatch:"确认短语不匹配,请逐字输入提示内容。",legalNote:"本确认用于明确自部署实例与开源项目、著作权人、贡献者及维护者之间的非关联关系和责任边界;部署、运营或控制相关实例的主体应独立承担其适用义务。",logout:"退出登录",accept:"确认并继续",accepted:"合规确认已记录",acceptFailed:"提交确认失败"},legal:{loadFailed:"文档加载失败",retryLater:"请稍后刷新页面重试。",notFound:"文档不存在",notFoundDescription:"当前条款文档不存在或已被管理员移除。",updatedAt:"更新日期:{date}",empty:"暂无正文内容",loginAgreement:"登录条款",adminCompl
1iance:"部署与运营合规承诺",loginAgreementPrompt:{checkboxPrefix:"我已阅读并同意",documentSeparator:"、",noticeTitle:"继续登录前需要先同意最新条款。",noticeDescription:"未同意前,账号密码输入和快捷登录会保持禁用。",viewTerms:"查看条款",dialogTitle:"条款更新通知",dialogDescription:"我们的服务条款已于 {date} 更新。在继续使用服务之前,请仔细阅读并同意以下条款。",recently:"近期",relatedDocuments:"相关文档",reject:"拒绝",accept:"同意并继续",loginRejectedWarning:"未同意最新条款前,无法输入账号密码或使用快捷登录。",loginRequiredWarning:"请先阅读并同意最新条款后再登录。",registerRejectedWarning:"未同意最新条款前,无法注册或使用快捷登录。",registerRequiredWarning:"请先阅读并同意最新条款后再注册。"}},nav:{batchImage:"批量生图",dashboard:"仪表盘",updates:"更新中心",announcements:"公告",apiKeys:"API 密钥",immersiveChat:"沉浸式聊天",usage:"使用记录",redeem:"兑换",affiliate:"推广中心",affiliateInviteRecords:"邀请记录",affiliateRebateRecords:"返利记录",affiliateTransferRecords:"提取记录",profile:"个人资料",users:"用户管理",groups:"分组管理",channels:"渠道管理",finance:"财务管理",availableChannels:"可用渠道",modelPlaza:"模型广场",modelPricing:"模型价格",subscriptions:"订阅管理",accounts:"账号管理",proxies:"IP管理",siteConfigs:"站点配置",redeemCodes:"兑换码",ops:"运维监控",adminGroupMonitor:"站点/分组状态监控",promoCodes:"优惠码",lottery:"抽奖活动",lotteryManagement:"抽奖管理",lotteryCoupons:"我的优惠券",dataManagement:"数据管理",settings:"系统设置",myAccount:"我的账户",lightMode:"浅色模式",darkMode:"深色模式",autoMode:"自动 (按时间)",collapse:"收起",expand:"展开",logout:"退出登录",github:"GitHub",mySubscriptions:"我的订阅",buySubscription:"购买订阅",myBalance:"我的余额",recharge:"充值",subscribe:"订阅",affiliateManage:"分销管理",rechargeOrders:"充值订单",systemCoupons:"系统优惠券",myProducts:"我的作品",enterprise:"企业管理",productWallReview:"产品墙审核",docs:"文档",tutorial:"教程",myOrders:"我的订单",orderManagement:"订单管理",paymentDashboard:"支付概览",paymentConfig:"支付配置",paymentPlans:"订阅套餐",channelManagement:"渠道管理",channelPricing:"渠道定价",channelMonitor:"渠道监控",channelStatus:"渠道状态",riskControl:"风控中心",securityAudit:"安全审计",contentModeration:"内容审计",promptAudit:"提示词审计",auditLogs:"操作日志",accountBindings:"账号定向绑定",growthOps:"增长运营",userValue:"用户价值评分",shadowGroupKpi:"影子分组 KPI",runtimeOverview:"运行态总览",imageGen:"图像生成",plugins:"插件"},enterprise:{nav:{overview:"企业总览",subUsers:"子账号",usageRecords:"使用记录",auditCenter:"审计与预警",settings:"企业设置",joinSettings:"域名自助加入",auditLogs:"审计日志",alertHistory:"预警历史"},overview:{title:"企业总览",mainBalance:"主账号余额",subUserCount:"子账号数",pending:"待审申请",pendingGoApprove:"去审批",aggregateQuota:"子账号额度使用(合计)",credit:"信用额度",creditLimit:"信用上限",creditAllocated:"已分配",creditUsed:"已动用",creditRemaining:"剩余",creditWarning:"企业正在使用信用额度,请尽快对公打款",noCredit:"平台尚未给本企业开通信用额度",manageSubUsers:"管理子账号",joinSettings:"企业设置",usageTrend:"用量趋势",topSubUsers:"子账号配额概览",topSubUsersEmpty:"还没有子账号",quotaUsage:"配额使用",quickActions:"快捷入口",manageSubUsersDesc:"新建、编辑、启停子账号",joinSettingsDesc:"配置域名自助注册规则与告警通知方式",viewAuditLogs:"审计与预警",viewAuditLogsDesc:"查看企业操作记录与预警åŽ
1†å²"},subUsers:{title:"子账号",create:"新建子账号",email:"邮箱",nickname:"昵称",role:"角色",monthlyLimit:"月度限额",lifetime:"生命周期",currentQuota:"当前配额",status:"状态",actions:"操作",usage:"用量",edit:"编辑",freeze:"禁用",unfreeze:"启用",freezeSuccess:"已禁用子账号「{email}」",unfreezeSuccess:"已启用子账号「{email}」",delete:"删除",searchPlaceholder:"邮箱 / 昵称",filterRoleAll:"全部角色",filterStatusAll:"全部状态",resendInvite:"重新发送邀请",resendInviteSuccess:"已重新发送邀请邮件到「{email}」",resendInviteNotPending:"该子账号已不再待激活,无需重新发送邀请",deleteConfirm:"确定删除子账号「{email}」?删除后该账号将被软删,历史用量保留。",empty:"还没有子账号,点击「新建子账号」创建第一个。",overLimit:"已进入超支",quotaUnallocated:"暂未分配额度",quotaRequests:"额度申请"},quotaAdjust:{button:"调整配额",title:"调整子账号配额",subUser:"子账号",currentLimit:"当前总额度",used:"已用",allocatable:"企业可分配",action:"增加 / 扣减",preview:"调整后总额度:${value}",belowUsed:"扣减后总额度不能低于已用 ${used}"},quotaRequest:{title:"申请增加额度",apply:"申请额度",remaining:"当前剩余额度",usedOfLimit:"已用 / 总额度",amount:"申请增加额度(USD)",amountPlaceholder:"希望增加的额度",amountInvalid:"请填写大于 0 的金额",reason:"申请理由",reasonPlaceholder:"说明为什么需要更多额度(可选)",submit:"提交申请",submitSuccess:"额度申请已提交,等待主账号审批",pendingHint:"你已有一笔待审批的额度申请(+${amount}),请等待主账号处理后再提交新的申请。",history:"申请记录",status:{pending:"待审批",approved:"已通过",rejected:"已拒绝"},queueTitle:"额度申请待审",queueEmpty:"暂无待审批的额度申请",subUser:"子账号",requested:"申请额度",reasonCol:"理由",requestedAt:"申请时间",approve:"通过",reject:"拒绝",approveTitle:"通过额度申请",approveAmount:"批准额度(USD)",approveAmountHint:"可批少于申请额;默认按申请额全批。",approveConfirm:"确认通过",rejectTitle:"拒绝额度申请",rejectNote:"拒绝说明(可选)",rejectConfirm:"确认拒绝",approveSuccess:"已通过额度申请,子账号额度已增加",rejectSuccess:"已拒绝额度申请",noReason:"(未填写理由)"},roles:{enterprise_admin:"运营",enterprise_operator:"员工",enterprise_viewer:"员工"},statuses:{pending:"待审批",active:"正常",frozen:"已禁用",revoked:"已删除"},drawer:{createTitle:"新建子账号",editTitle:"编辑子账号",email:"邮箱",password:"初始密码",passwordHint:"已预填默认密码(邮箱名中间4位 + {'@'}123);至少 8 位;子账号用邮箱+密码登录(不支持微信/第三方)",passwordTooShort:"初始密码至少需要 8 个字符",emailRequired:"请填写邮箱",emailTaken:"该邮箱已注册,子账号必须使用全新邮箱",emailChecking:"正在验证邮箱…",role:"企业角色",roleHint:"运营可查看所有成员用量;员工可以登录、查看自己的用量",allocationMode:"额度分配方式",allocationDynamic:"动态分配",allocationFixed:"固定分配",allocationDynamicHint:"不设独立额度,直接消耗主账号余额。累计/每日/超支额度均不可填。",allocationFixedHint:"为该子账号单独设定累计总额度、每日限额,按下方设置执行。",lifetimeLimit:"累计总额度(USD)",lifetimeHint:"该账号所有时间累计消费的上限(跨平台合计),留空=不限。用尽后需主账号上调。",lifetimeRequired:"固定分配必须设置累计总额度",lifetimeUsedFloor:"该账号已消费 ${used},新上限不应低于此值",quickAdjust:"快捷增减剩余额度",quickAdjustHint:"在当前总额度基础上直接增加(+)或扣减(-),立即生效。扣减不得低于已用量。",adjustAdd:"增加",adjustSub:"扣减",adjustAmountPlaceholder:"金额(USD)",adjustApply:"应用",adjustSuccess:"已调整子账号额度",adjustInvalid:"请填写大于 0 的金额",currentLimit:"当前总额度",dailyLimit:"每日限额(USD)",dailyHint:"该账号每自然日(UTC 0点重置)的消费上限,留空=不限。",monthlyLimits:"月度限额(按平台,USD)",monthlyTotal:"合计",subCreditLimit:"超支额度(USD)",subCreditHint:"让该员工用尽基础配额后还能继续用这么多,钱仍走主账号、对公打款到账后结清",creditPool:"企业信用上限 {limit} / 已分配 {allocated} / 本次可分配剩余 {remaining}",creditDisabled:"平台尚未给本企业开通信用额度",groups:"账号池授权",nicknamePlaceholder:"便于识别的昵称(可选)",quotaOverAllocated:"不能超过企业可分配额
1度 ${max}",create:"发送邀请",save:"保存",cancel:"取消",saved:"邀请邮件已发送,子账号验证邮箱后自动激活",updated:"已保存",savedHint:"邀请链接 7 天内有效,激活前账号处于「待激活」状态。",emailConfigRequired:"邮件服务未配置,请先在后台设置 SMTP 后再邀请子账号",emailSendFailed:"邀请邮件发送失败,请检查后台 SMTP 配置后重试"},bulkEdit:{button:"批量编辑",selected:"已选 {count} 个",clear:"清除",title:"批量编辑子账号",selectionInfo:"将对选中的 {count} 个子账号套用以下变更(仅勾选的项会被修改)。",groupsHint:"将整体替换选中子账号的账号池授权分组。",submit:"应用变更",saving:"保存中…",success:"已更新 {updated} 个子账号",partialResult:"已更新 {updated} 个,{failed} 个失败(多为超出可分配额度)"},acceptInvitation:{title:"激活企业子账号",subtitle:"请设置您的登录密码以完成账号激活",password:"设置密码",passwordPlaceholder:"至少 8 位字符",passwordConfirm:"确认密码",passwordMismatch:"两次输入的密码不一致",passwordTooShort:"密码至少需要 8 个字符",submit:"激活账号",success:"账号激活成功,即将跳转到登录页面…",invalidToken:"邀请链接无效或已过期,请联系企业管理员重新发送邀请",tokenRequired:"邀请链接缺少必要参数"},usage:{title:"子账号用量",lifetimeUsed:"配额已用",lifetimeLimit:"配额上限",creditLimit:"超支额度",back:"返回子账号列表"},join:{title:"域名自助加入",note:"仅适用于拥有企业专属域名邮箱的企业:员工用企业邮箱(如 you{'@'}acme.com)注册时自动归入本企业、进入待审队列。使用 Gmail、QQ、163 等常规邮箱的企业用不到此功能,请直接在「子账号」里邀请成员。",rulesTitle:"自助注册规则",domainLabel:"企业域名",domainPlaceholder:"如 acme.com(不含 {'@'})",emailLabel:"邮箱白名单",emailPlaceholder:"完整邮箱,如 bob{'@'}acme.com",add:"添加",ruleConflict:"该域名/邮箱已被占用",publicDomain:"公共邮箱域名只能添加到邮箱白名单",domainUnverified:"该域名需先通过 postmaster 邮箱验证后才能生效",pendingTitle:"子账号注册待审",pendingEmpty:"当前没有待审申请",pendingLoadFailed:"待审申请加载失败",matched:"命中规则",approve:"通过",reject:"拒绝",rejectConfirm:"拒绝后该用户成为独立账号,不再归属本企业。确定拒绝?",removeRuleTitle:"删除规则",removeRuleConfirm:"删除后符合该规则的员工将无法再自助注册。确定删除?",mainOnly:"仅主账号可配置自助注册规则",noRules:"尚未配置任何规则,员工无法自助注册",applicant:"申请人",noNickname:"未设置昵称",requestedAt:"申请时间",ruleTypeDomain:"域名",ruleTypeEmail:"邮箱",approveTitle:"通过注册申请",approveSuccess:"已通过,子账号已开通",rejectSuccess:"已拒绝该申请",selected:"已选 {count} 项",batchApprove:"批量通过",batchApproveTitle:"批量通过注册申请",batchApproveInfo:"将对选中的 {count} 个注册申请套用同一组角色、额度分配方式与账号池授权。",batchApproveConfirm:"通过 {count} 个",batchCreditHint:"固定分配时,每个子账号都会按此超支额度独立分配,请确认主账号信用额度充足。",batchApproveSuccess:"批量通过完成:成功 {approved} 个",batchApprovePartial:"批量通过完成:成功 {approved} 个,失败 {failed} 个"},auditLogs:{title:"审计日志",colOperator:"操作人",colTarget:"目标账号",colAction:"操作",colResource:"资源",colIP:"IP",colTime:"时间",empty:"暂无审计日志",filterAll:"全部操作",searchPlaceholder:"搜索操作人 / 目标账号",startDate:"起",endDate:"止",reset:"重置",totalCount:"共 {n} 条",toggleDetail:"展开/收起变更明细",noDetail:"无变更明细",userAgent:"设备",detailColumn:"变更明细",export:"导出 CSV",exporting:"导出中…",exportTruncated:"日志较多,仅导出最近 {n} 条",actions:{sub_user_create:"创建子账号",sub_user_update:"修改子账号",sub_user_revoke:"删除子账号",sub_user_group_update:"修改账号池授权",sub_user_quota_update:"重置配额",sub_user_detach:"移除子账号",sub_user_resend_invite:"重发邀请",join_rule_create:"新增加入规则",join_rule_delete:"删除加入规则",join_request_approve:"通过加入申请",quota_request_create:"提交额度申请",quota_request_approve:"通过额度申请",quota_request_reject:"拒绝额度申请",enterprise_credit_limit_update:"调整企业信用额度"},resources:{sub_user:"子账号",join_rule:"加入规则",join_request:"加入申请",quota_request:"额度申请",credit_limit:"信用额度"},fields:{email:"邮箱",sub_role:"角色",sub_status:"状态",allowed_groups:"授权账号池",quota_total_used:"已用累计额度",quota_total_limit:"总额度",rule_type:"规则类型",rule_value:"规则值",requested_amount:"申请额度",approved_amount:"批准额度",reason:"理由",note:"备注",credit_limit:"信用上限",delta:"变动"}},aggregateUsage:{totalQuota:"总额度",dailyQuota:"每日额度",hint:"合计仅统计设置了上限的子账号;存在不限额子账号时占比可能偏高。",status:{ok:"正常",warning:"接近上限",critical:"已超限"}}
1,alertHistory:{title:"预警历史",filterAll:"全部类型",empty:"暂无预警记录",colType:"类型",colDimension:"维度",colUsage:"用量 / 上限",colThreshold:"阈值",colSentVia:"通知渠道",colTime:"时间",types:{quota_lifetime:"子账号生命周期",quota_daily:"子账号每日",quota_aggregate:"聚合总量",credit_first_neg:"信用首次动用",credit_usage:"信用用量"},dimensions:{total:"生命周期",daily:"每日",credit:"信用"},channels:{email:"邮箱",wechat:"微信",feishu:"飞书"}},auditCenter:{title:"审计与预警",subtitle:"查看企业操作审计日志,以及配额/信用预警的发送历史。",tabLogs:"审计日志",tabAlerts:"预警历史"},settings:{title:"企业设置",subtitle:"管理企业自助注册规则与告警通知方式。",tabDomain:"域名自助加入",tabAlerts:"告警设置"},alertSettings:{note:"告警在子账号配额、聚合用量或企业信用跨越阈值(80% / 100%)时自动触发。可在此选择通知渠道与接收人。",typesTitle:"告警类型",typesDesc:"选择需要接收的告警类型,关闭的类型将不再发送,也不计入预警åŽ
1†å²ã€‚",typeHints:{quota_lifetime:"单个子账号生命周期配额用量跨越阈值时提醒",quota_daily:"单个子账号当日配额用量跨越阈值时提醒",quota_aggregate:"旗下子账号合计生命周期用量跨越阈值时提醒",credit_first_neg:"企业余额首次转负、开始动用信用额度时提醒",credit_usage:"企业信用额度用量跨越阈值时提醒"},emailTitle:"邮箱通知",emailDesc:"默认发送到企业主账号管理员邮箱;也可单独指定一个通知邮件人。",emailRecipientLabel:"通知邮件人",emailRecipientPlaceholder:"留空则发送到主账号管理员邮箱",emailRecipientHint:"填写后,告警邮件仅发送到该地址(不再发主账号邮箱)。",feishuTitle:"飞书群机器人",feishuDesc:"通过飞书自定义机器人 webhook,将告警推送到群聊。",feishuWebhookLabel:"Webhook 回调链接",feishuWebhookPlaceholder:"https://open.feishu.cn/open-apis/bot/v2/hook/...",feishuWebhookHint:"在飞书群「设置 → 群机器人 → 添加自定义机器人」中获取 webhook 地址。",feishuWebhookRequired:"启用飞书通知时必须填写 webhook 回调链接",saved:"告警设置已保存"},usageRecords:{title:"企业使用记录",subtitle:"聚合主账号与全部子账号的调用明细。请求数与费用同源统计,口径一致。",totalRequests:"总请求数",totalTokens:"总 Token",totalCost:"总费用",memberCount:"活跃成员",modelDistribution:"模型分布",groupDistribution:"分组使用分布",memberBreakdown:"员工 Token / 费用分布",ranking:"调用排行榜",rankingDesc:"按实际费用由高到低排序(含主账号)。",colModel:"模型",colGroup:"分组",colMember:"成员",colRequests:"请求数",colTokens:"Token",colCost:"费用",colShare:"占比",mainBadge:"主账号",noGroup:"未分组",noData:"所选时间范围内暂无调用记录"}},myProducts:{createTitle:"发布作品",editTitle:"编辑作品"},imageGen:{title:"图像生成",subtitle:"多模型生图 · 文本生成 + 图片编辑 · 异步生成(提交后可切换页面)· 历史持久化",apiKeyLabel:"API 密钥",apiKeyEmpty:"请先前往「API 密钥」页面创建密钥",modeGenerate:"生成",modeEdit:"编辑",modeVideo:"视频",video:{promptPlaceholder:"描述你想生成的视频,例如:一只柯基在海边奔跑,阳光洒在海面上,电影质感",resolution:"分辨率",duration:"时长",hint:"视频异步生成,耗时通常较长(数十秒到数分钟),可切换页面稍后回来查看。",generate:"生成视频"},form:{prompt:"图像描述",promptPlaceholder:"描述你想生成的图像,例如:一只橙色的猫坐在阳光明媚的窗台上,水彩画风格",model:"模型",unsupportedPlatform:"当前 API 密钥的分组平台暂不支持生图,请选择 OpenAI、Grok 或 Gemini 分组的密钥",unsupportedVideoPlatform:"当前 API 密钥的分组平台暂不支持视频生成,请选择 Grok 分组的密钥",n:"生成数量",size:"尺寸",sizeAuto:"自动",sizeSquare:"方形",sizeLandscape:"横向",sizePortrait:"纵向",sizeCustom:"自定义",customWidth:"宽",customHeight:"高",quality:"质量",qualityAuto:"自动",qualityLow:"低",qualityMedium:"中",qualityHigh:"高",outputFormat:"输出格式",compression:"压缩率",background:"背景",backgroundAuto:"自动",backgroundOpaque:"不透明",backgroundTransparent:"透明",moderation:"内容审核",moderationAuto:"自动",moderationLow:"宽松",streaming:"流式生成",streamingHint:"开启后可实时预览生成进度(仅 n=1 时生效)",partialImages:"预览帧数",generate:"生成图像",generating:"生成中...",stop:"停止生成",stopping:"停止中..."},edit:{uploadImages:"上传图片",uploadHint:"点击或拖拽上传,支持粘贴",maxImages:"最多 {n} å¼ ",removeImage:"移除",maskOptional:"蒙版(可选)",drawMask:"绘制蒙版",uploadMask:"上传蒙版",maskPreview:"蒙版预览",maskEditorTitle:"蒙版编辑器",brushSize:"笔刷大小",clearMask:"清空",undoMask:"撤销",saveMask:"保存蒙版",maskHint:"在需要修改的区域涂抹(标红区域将被重绘)",edit:"编辑图像",editing:"编辑中..."}
1,output:{empty:"输入描述后点击「生成图像」",emptyDesc:"支持自然语言描述,也可切换到编辑模式修改已有图片",download:"下载",sendToEdit:"发送到编辑",sendingToEdit:"获取图片中…",back:"返回",revisedPrompt:"优化后的提示词",grid:"网格",retentionNote:"生成的图片网站默认保留 30 天,请及时下载保存,过期后自动清理。",progress:"已生成 {done}/{total} 张,可切换到其他页面,完成后在历史记录中查看",generatingHint:"生成中,可继续提交新任务"},history:{title:"历史记录",status:{pending:"排队中",running:"生成中",succeeded:"成功",partial:"部分成功",failed:"失败",cancelled:"已取消"},collapse:"收起",expand:"展开",clear:"清空全部",confirmClear:"确定要清空所有历史记录和图片数据?此操作不可撤销。",noHistory:"暂无生成记录",viewPrompt:"查看提示词",viewCost:"查看成本",delete:"删除",download:"下载(多图打包 zip)",confirmDelete:"确定删除这条记录及其图片?",skipConfirm:"不再询问",cancel:"取消",cancelling:"取消中...",retry:"重试",avgCost:"均次",modeCreate:"生成",modeEdit:"编辑",modeVideo:"视频",images:"张",cost:"成本",time:"耗时",model:"模型",quality:"质量",background:"背景",moderation:"审核",costBreakdown:"成本明细",textTokens:"文本 Token",imageInTokens:"图片输入 Token",imageOutTokens:"图片输出 Token",estimatedCost:"预计费用"},errors:{noApiKey:"请先创建 API 密钥",generateFailed:"生成失败,请重试",uploadFailed:"上传失败",invalidMaskFormat:"蒙版必须是 PNG 格式",maskSizeMismatch:"蒙版尺寸必须与图片一致",sizeInvalid:"尺寸不合法"}},auth:{welcomeBack:"欢迎回来",signInToAccount:"登录您的账户以继续",signIn:"登录",signingIn:"登录中...",passkeySignIn:"使用 Passkey 登录",passkeySigningIn:"正在等待 Passkey...",passkeyCancelled:"已取消 Passkey 登录。",passkeyFailed:"Passkey 登录失败,请重试。",createAccount:"创建账户",signUpToStart:"注册以开始使用 {siteName}",signUp:"注册",processing:"处理中...",continue:"继续",rememberMe:"记住我",dontHaveAccount:"还没有账户?",alreadyHaveAccount:"已有账户?",registrationDisabled:"近期封号太过严重,为保障订阅用户使用体验,注册功能暂时关闭,如需注册购买,请联系管理员微信:20133213。",emailLabel:"邮箱",emailPlaceholder:"请输入邮箱",passwordLabel:"密码",passwordPlaceholder:"请输入密码",createPasswordPlaceholder:"创建一个安全的密码",passwordHint:"至少 6 个字符",emailRequired:"请输入邮箱",invalidEmail:"请输入有效的邮箱地址",emailDomainRegistrationLimit:"该邮箱域名无法注册新账户。请使用主流邮箱注册;如需使用企业邮箱,请联系客服添加域名白名单。",passwordRequired:"请输入密码",passwordMinLength:"密码至少需要 6 个字符",loginFailed:"登录失败,请检查您的凭据后重试。",errors:{USER_NOT_ACTIVE:"账号已被禁用"},registrationFailed:"注册失败,请重试。",emailSuffixNotAllowed:"该邮箱域名不在允许注册范围内。",emailSuffixNotAllowedWithAllowed:"该邮箱域名不被允许。可用域名:{suffixes}",emailSuffixAllowedMore:"等 {count} 项",loginSuccess:"登录成功!欢迎回来。",accountCreatedSuccess:"账户创建成功!欢迎使用 {siteName}。",reloginRequired:"会话已过期,请重新登录。",turnstileExpired:"验证已过期,请重试",turnstileFailed:"验证失败,请重试",captchaVerified:"验证已完成",captchaLoading:"正在加载验证码…",captchaClickToVerify:"点击完成人机验证",captchaVerifying:"验证中…",completeVerification:"请完成验证",verifyYourEmail:"验证您的邮箱",sessionExpired:"会话已过期",sessionExpiredDesc:"请返回注册页面重新开始。",verificationCode:"验证码",verificationCodeHint:"请输入发送到您邮箱的6位验证码",sendingCode:"发送中...",sendCode:"发送验证码",clickToResend:"点击重新发送验证码",resendCode:"重新发送验证码",sendCodeDesc:"我们将发送验证码到",codeSentSuccess:"验证码已发送!请查收您的邮箱。",codeSentSpamHint:"未收到?邮件可能被拦截,请先查看垃圾邮件箱;仍未收到可联系技术微信:20133213",verifying:"验证中...",verifyAndCreate:"验证并创建账户",resendCountdown:"{countdown}秒后可重新发送",backToRegistration:"返回注册",sendCodeFailed:"发送验证码失败,请重试。",verifyFailed:"验证失败,请重试。",codeRequired:"请输入验证码",invali
1dCode:"请输入有效的6位验证码",promoCodeLabel:"优惠码",promoCodePlaceholder:"输入优惠码(可选)",promoCodeValid:"有效!注册后将获得 ${amount} 赠送余额",promoCodeInvalid:"无效的优惠码",promoCodeNotFound:"优惠码不存在",promoCodeExpired:"此优惠码已过期",promoCodeDisabled:"此优惠码已被禁用",promoCodeMaxUsed:"此优惠码已达到使用上限",promoCodeAlreadyUsed:"您已使用过此优惠码",promoCodeValidating:"优惠码正在验证中,请稍候",promoCodeInvalidCannotRegister:"优惠码无效,请检查后重试或清空优惠码",invitationCodeLabel:"邀请码",invitationCodePlaceholder:"请输入邀请码",invitationCodeRequired:"请输入邀请码",invitationCodeValid:"邀请码有效",invitationCodeInvalid:"邀请码无效或已被使用",invitationCodeValidating:"正在验证邀请码...",invitationCodeInvalidCannotRegister:"邀请码无效,请检查后重试",referralCodeLabel:"推荐码",referralCodePlaceholder:"有推荐码?在此输入",referralCodeValid:"推荐码有效",referralCodeInvalid:"推荐码无效,请检查后重试",referralCodeBenefit:"通过推荐注册可获得 95 折充值券、¥20 充值立减券和 8 折订阅券",referralDialog:{title:"输入推荐码",description:"如果有朋友推荐你使用,输入推荐码即可获得新用户福利",skip:"跳过",confirm:"确认",bindFailed:"绑定推荐码失败,请稍后重试"},oauthOrContinue:"或使用邮箱密码继续",linuxdo:{signIn:"使用 Linux.do 登录",orContinue:"或使用邮箱密码继续",callbackTitle:"正在完成登录",callbackProcessing:"正在验证登录信息,请稍候...",callbackHint:"如果页面未自动跳转,请返回登录页重试。",callbackMissingToken:"登录信息缺失,请返回重试。",backToLogin:"返回登录",invitationRequired:"该 Linux.do 账号尚未注册,站点已开启邀请码注册,请输入邀请码以完成注册。",invalidPendingToken:"注册凭证已失效,请重新使用 Linux.do 登录。",completeRegistration:"完成注册",completing:"正在完成注册...",completeRegistrationFailed:"注册失败,请检查邀请码后重试。"},dingtalk:{signIn:"钉钉登录",callbackTitle:"正在完成钉钉登录",callbackProcessing:"正在验证钉钉登录信息,请稍候...",callbackHint:"如果页面未自动跳转,请返回登录页重试。",callbackMissingToken:"登录信息缺失,请返回重试。",backToLogin:"返回登录",invitationRequired:"该钉钉账号尚未注册,站点已开启邀请码注册,请输入邀请码以完成注册。",invalidPendingToken:"注册凭证已失效,请重新使用钉钉登录。",completeRegistration:"完成注册",completing:"正在完成注册...",completeRegistrationFailed:"注册失败,请检查邀请码后重试。",createAccountTitle:"创建钉钉账户",registrationDisabledRedirectToBind:"当前已禁止注册新账户,请使用已有账户邮箱和密码绑定钉钉登录",error:{title:"钉钉登录失败",csrf:"登录会话已过期,请重新扫码登录",corp_rejected:"您的钉钉账号不属于本企业,请联系管理员",dingtalk_not_enabled:"钉钉登录暂未启用",upstream_error:"钉钉服务暂时不可用,请稍后重试",missing_browser_session:"浏览器会话丢失,请重新登录",missing_params:"请求参数不完整",invalid_state:"登录状态异常",provider_error:"钉钉授权失败",session_error:"会话创建失败,请重试",retry:"重新登录"}},useEmailPassword:"使用邮箱密码继续",wechat:{signIn:"使用微信继续",orContinue:"或使用邮箱密码继续",modalTitle:"微信扫码登录",qrCodeAlt:"微信公众号二维码",noQrCode:"二维码未配置",scanTip:"使用微信扫描上方二维码即可登录",scanTipOfficial:"使用微信扫描上方二维码,关注公众号后发送【验证码】获取验证码",scanAutoTip:"使用微信扫描上方二维码,扫码即可自动登录",scanWaiting:"等待扫码...",scanConfirmed:"扫码成功,正在登录...",scanExpired:"二维码已过期",scanRefresh:"刷新二ç
1»´ç ",scanError:"扫码登录失败",codeLabel:"验证码",codePlaceholder:"请输入验证码",codeRequired:"请输入验证码",verify:"登录",verifying:"验证中...",verifyFailed:"验证失败,请检查验证码"},wechatBind:{title:"建议绑定微信账号",description:"为了您的账户安全,建议您绑定微信账号。绑定后可以使用微信快速登录,并获得更完善的服务体验。",benefit1:"微信扫码快速登录,免输密码",benefit2:"账号安全保障,双重验证",benefit3:"获得完整的服务功能访问权限",skip:"暂时跳过",bind:"立即绑定",success:"绑定成功!",bindFailed:"绑定失败,请重试"},emailBind:{title:"建议绑定邮箱",titleRequired:"请绑定邮箱",description:"为了您的账户安全,建议您绑定邮箱地址。绑定后可以使用邮箱密码登录,并获得更完善的服务体验。",descriptionRequired:"为保障账户安全,首次使用需绑定邮箱并设置密码。",benefit1:"邮箱密码登录,备用登录方式",benefit2:"接收重要通知和服务提醒",benefit3:"找回密码和账号安全保护",emailLabel:"邮箱地址",emailPlaceholder:"请输入邮箱地址",codeLabel:"验证码",codePlaceholder:"请输入验证码",codeRequired:"请输入验证码",sendCode:"发送验证码",codeSent:"验证码已发送",sendCodeFailed:"发送验证码失败",passwordLabel:"设置密码",passwordPlaceholder:"请输入密码(至少6位)",confirmPasswordLabel:"确认密码",confirmPasswordPlaceholder:"请再次输入密码",passwordRequired:"请输入密码",passwordMinLength:"密码至少需要6个字符",passwordMismatch:"两次输入的密码不一致",skip:"暂时跳过",bind:"立即绑定",merge:"验证并合并",binding:"绑定中...",success:"邮箱绑定成功!",mergeSuccess:"已将当前微信登录合并到原邮箱账号",bindFailed:"绑定失败,请重试",conflictTitle:"该邮箱已绑定已有账号",conflictDescription:"邮箱 {email} 已属于一个已有账号。",conflictMergeHint:"完成邮箱验证码校验后,系统会把当前微信登录关联到原账号,原账号密码保持不变。",conflictCleanupHint:"如果不想合并,也可以直接注销当前微信新注册账号。",assetTitle:"当前微信新账号资产",assetBalance:"剩余余额:{balance}",assetSubscription:"活跃订阅:{count}",assetSubscriptionExpiry:"最近到期时间:{date}",cleanupCurrentUser:"注销当前微信新号",cleaningUp:"注销中...",cleanupSuccess:"当前微信新号已注销",cleanupFailed:"注销当前微信新号失败"},emailOAuth:{signIn:"使用 {providerName} ç»§ç»­"},oidc:{signIn:"使用 {providerName} 登录",callbackTitle:"正在完成 {providerName} 登录",callbackProcessing:"正在验证 {providerName} 登录信息,请稍候...",callbackHint:"如果页面未自动跳转,请返回登录页重试。",callbackMissingToken:"登录信息缺失,请返回重试。",backToLogin:"返回登录",invitationRequired:"该 {providerName} 账号尚未注册,站点已开启邀请码注册,请输入邀请码以完成注册。",invalidPendingToken:"注册凭证已失效,请重新登录。",completeRegistration:"完成注册",completing:"正在完成注册...",completeRegistrationFailed:"注册失败,请检查邀请码后重试。"},oauthFlow:{profileDetailsTitle:"使用 {providerName} 资料",profileDetailsDescription:"选择是否将 {providerName} 的昵称或头像应用到当前账户。",useDisplayName:"使用昵称",useAvatar:"使用头像",avatarAlt:"{providerName} 头像",reviewProfileBeforeContinue:"请先确认 {providerName} 资料后再继续。",chooseHowToContinue:"选择后续操作",chooseAccountActionHint:"请选择绑定已有账户,或创建一个新账户。",suggestedEmail:"建议邮箱:{email}",bindExistingAccount:"绑定已有账户",createNewAccount:"创建新账户",createAccountHint:"请输入邮箱地址以创建账户并继续。",bindLoginHint:"登录一个已有账户以绑定此次 {providerName} 登录。",signInThenBindDescription:"请先登录已有账户,再将此次 {providerName} 登录绑定到该账户。",bindSignInToExistingAccount:"将此次 {providerName} 登录绑定到已有账户。",bindCurrentAccountTitle:"绑定当前账户",bindCurrentAccountDescription:"将此次 {providerName} 登录绑定到当前浏览器已登录的账户。",bindCurrentAccount:"绑定当前账户",logInAndBind:"登录并绑定",useDifferentEmail:"使用其他邮箱",backToOptions:"返回选项",yourAccount:"当前账户",totpHint:"请输入 {account} 的 6 位验证码,以完成此次 {providerName} 登录绑定。",verifyAndContinue:"验证并继续",wechatAvailabilityUnknown:"暂时无法确认微信登录可用性,请刷新后重试。",wechatSystemBrowserOnly:"当前微信登录流程仅支持在系统浏览器中继续。",wechatBrowserOnly:"当前微信登录流程仅支持在微信内置浏览器中继续。",wechatNotConfigured:"微信登录尚未配置。"},linuxdoCallbackPageTitle:"LinuxDo 登录回调",dingtalkCallbackPageTitle:"钉钉登录回调",dingtalkProviderName:"钉钉",oidcCallbackPageTitle:"OIDC 登录回调",oauthCallbackPageTitle:"OAuth 回调",wechatProviderName:"微信",wechatCallbackPageTitle:"微信登录回调",wechatPaymentCallbackPageTitle:"微信支付回调",wechatPayment:{callbackTitle:"正在恢复微信支付",callbackProcessing:"正在恢复微信支付...",backToPayment:"返回支付页",callbackMissingResumeToken:"微信支付回调缺少恢复令牌。"},oauth:{processingTitle:"正在完成登录",processingHint:"如果页面未自动跳转,请返回登录页重试。",callbackTitle:"OAuth 回调",callbackHint:"按需将授权码和状态值复制回后台授权流程。",invali
1dCallbackTitle:"无效的登录回调",invalidCallbackHint:"当前页面缺少有效的授权结果,请返回登录页重新发起快捷登录。",code:"授权码",state:"状态",fullUrl:"完整URL"},legalDocument:{loginButton:"登录",badge:"登录条款",updatedAt:"更新日期:{date}",loadError:"文档加载失败",loadErrorHint:"请稍后刷新页面重试。",notFound:"文档不存在",notFoundHint:"当前条款文档不存在或已被管理员移除。",noContent:"暂无正文内容",contentLoadError:"正文加载失败,请稍后重试。",documentTitles:{terms:"服务条款","usage-policy":"使用政策","supported-regions":"支持的国家和地区","service-specific-terms":"服务特定条款"}},agreementPrompt:{modalTitle:"条款更新通知",modalDescription:"我们的服务条款已于 {date} 更新。在继续使用服务之前,请仔细阅读并同意以下条款。",relatedDocuments:"相关文档",reject:"拒绝",agreeAndContinue:"同意并继续",viewTerms:"查看条款",checkboxLabel:"我已阅读并同意",checkboxSeparator:"、",bannerTitle:"继续登录前需要先同意最新条款。",bannerHint:"未同意前,账号密码输入和快捷登录会保持禁用。",documentTitles:{terms:"服务条款","usage-policy":"使用政策","supported-regions":"支持的国家和地区","service-specific-terms":"服务特定条款"}},forgotPassword:"忘记密码?",forgotPasswordTitle:"重置密码",forgotPasswordHint:"输入您的邮箱地址,我们将向您发送密码重置链接。",sendResetLink:"发送重置链接",sendingResetLink:"发送中...",sendResetLinkFailed:"发送重置链接失败,请重试。",resetEmailSent:"重置链接已发送",resetEmailSentHint:"如果该邮箱已注册,您将很快收到密码重置链接。请检查您的收件箱和垃圾邮件文件夹。",backToLogin:"返回登录",rememberedPassword:"想起密码了?",resetPasswordTitle:"设置新密码",resetPasswordHint:"请在下方输入您的新密码。",newPassword:"新密码",newPasswordPlaceholder:"输入新密码",confirmPassword:"确认密码",confirmPasswordPlaceholder:"再次输入新密码",confirmPasswordRequired:"请确认您的密码",passwordsDoNotMatch:"两次输入的密码不一致",resetPassword:"重置密码",resettingPassword:"重置中...",resetPasswordFailed:"重置密码失败,请重试。",passwordResetSuccess:"密码重置成功",passwordResetSuccessHint:"您的密码已重置。现在可以使用新密码登录。",invalidResetLink:"无效的重置链接",invalidResetLinkHint:"此密码重置链接无效或已过期。请重新请求一个新链接。",requestNewResetLink:"请求新的重置链接",invalidOrExpiredToken:"密码重置链接无效或已过期。请重新请求一个新链接。"},stepUp:{title:"需要二次验证",hint:"请输入身份验证器应用中的 6 位验证码以继续此敏感操作。",verifyFailed:"验证失败,请重试",notEnabled:"此操作需要开启二次验证,请先在个人资料中启用 TOTP。",adminApiKeyForbidden:"管理 API Key 无法执行此操作,请使用已通过二次验证的管理员会话。"},dashboard:{batchImageAgent:"批量生图助手",batchImageAgentDesc:"复制给 Agent 的任务说明",title:"仪表盘",welcomeMessage:"欢迎回来!这是您账户的概览。",viewMine:"我的",viewEnterprise:"企业",pendingApprovals:"有 {count} 项待审批(注册 / 额度申请)",loadFailed:"仪表盘数据加载失败",noData:"暂无仪表盘数据",enterpriseWallet:"企业钱包 / 信用",enterpriseAggUsage:"子账号用量聚合",enterpriseAggScope:"纳入聚合统计",balance:"余额",apiKeys:"API 密钥",todayRequests:"今日请求",todayCost:"今日消费",todayTokens:"今日 Token",totalTokens:"累计 Token",cacheToday:"今日缓存",performance:"性能指标",avgResponse:"平均响应",averageTime:"平均时间",timeRange:"时间范围",granularity:"粒度",day:"按天",hour:"按小时",modelDistribution:"模型分布",groupDistribution:"分组使用分布",platformBreakdown:"按平台拆分",platformBreakdownEmpty:"暂无平台用量",platformCount:"{count} 个平台",platformOther:"其他",platformQuota:{title:"配额用量",daily:"日",weekly:"周",monthly:"月(近30天)",resetsAt:"{time} 重置",noLimit:"不限制",disabled:"已禁用"},subQuota:{title:"我的额度",remaining:"剩余",used:"已用",unlimited:"不限",today:"今日",exhausted:"已耗尽",pending:"待审批",pendingHint:"请联系企业管理员审批并分配额
1度",payerInsufficient:"主账号额度不足",payerInsufficientHint:"企业主账号额度已用尽,API 请求将被拒绝,请联系企业管理员充值"},tokenUsageTrend:"Token 使用趋势",noDataAvailable:"暂无数据",model:"模型",group:"分组",noGroup:"无分组",requests:"请求",tokens:"Token",usage:"消费",standard:"标准",input:"输入",output:"输出",cache:"缓存",expiringSoon:"即将过期",firstBoostQuota:"体验额度剩余",firstBoostQuotaHint:"首充体验包:优先消耗、按更低倍率计价,比普通余额更耐用。用完后按正常规则计费。",recentUsage:"最近使用",last7Days:"近 7 天",noUsageRecords:"暂无使用记录",startUsingApi:"开始使用 API 后,您的使用历史将显示在这里。",viewAllUsage:"查看全部",quickActions:"快捷操作",createApiKey:"创建 API 密钥",generateNewKey:"生成新的 API 密钥",viewUsage:"查看使用记录",checkDetailedLogs:"查看详细的使用日志",redeemCode:"兑换码",addBalanceWithCode:"使用兑换码充值"},modelRadar:{title:"模型降智监控",description:"基于公开基准与社区反馈,追踪 GPT 各档位的能力波动与额度变化",subtitle:"数据来源于公开基准跑分与社区评分,每隔约 1 分钟刷新一次",lastUpdated:"数据更新于",fetchedAt:"本站同步于",refresh:"刷新",refreshing:"刷新中…",staleNotice:"上游数据暂时不可用,当前展示最近一次缓存结果",staleTooOld:"上游数据已超过 6 小时未更新,请谨慎参考",browserFallback:"服务器无法直连上游,已改用浏览器直连公开数据",loadError:"数据加载失败",prediction:"重置预测",recentEvents:"近期重要事件",envIncidents:"状态事故(24h)",envUpdates:"官方动态(24h)",envMentions:"社区提及(24h)",envAnomalies:"额度异常(24h)",envPressure:"投诉压力",iqTitle:"模型 IQ 跑分",passed:"通过",iqTrend:"IQ 趋势",mainConfig:"主档",communityTitle:"社区评分",communityFeelTitle:"社区体感分",communityFeelGuide:"体感分参考:9-10 明显好用,7-8 正常可用,5-6 勉强可用,3-4 体验较差,1-2 几乎不可用。",communityUnsupported:"不支持",votes:"人评分",communityTrend:"社区体感趋势",detailTitle:"项目明细",detailMetric:"项目",tasksTitle:"固定评测任务集",taskPass:"通过",taskFail:"未过",recommendationsTitle:"模型推荐",recommendationsIntro:"根据最新分布式众测结果,按使用场景给出实用选择。",recommendationsNote:"当前推荐以 Codex 订阅内可用模型为主;DeepSeek 采用独立 API 计费,将另行评估与推荐。",degradationTitle:"降智预警",efficiencyTitle:"智力效率",efficiencyActivity:"近24小时 {n} 次有效作答",efficiencyCostIq:"综合成本 × IQ",efficiencyHistory:"IQ 历史数据",efficiencyMinutes:"分钟",fastRadarTitle:"Fast 雷达",fastRadarHint:"从标准改成 Fast,以 2.5 倍的成本到底快了多少?",fastE2E:"体感加速 · E2E",fastTTFT:"首字延迟减少 · TTFT",fastTPS:"Token 生成速度加速 · TPS",fastSummaryE2E:"体感加速",fastSummaryTTFT:"首字延迟减少",fastSummaryTPS:"Token 生成速度加速",fastHistory:"Fast 加速历史曲线",fastFaster:"快",fastSlower:"慢"},groups:{subscription:"订阅",siteMonitor:{title:"站点状态",description:"各站点实时流量健康状态",recommended:"推荐",recommendedHint:"根据您当前的网络环境与站点拥堵情况,推荐使用此端点",probing:"测速中...",probeFailed:"不可达",latency:"延迟",status:{green:"通畅",yellow:"轻度拥堵",orange:"中度拥堵",red:"严重拥堵",unknown:"状态未知"}},groupMonitor:{title:"站点/分组状态监控",description:"查看站点流量健康状态与您有权限访问的分组实时服务状态",refreshing:"刷新中...",refresh:"刷新",lastUpdated:"数据更新时间",opsDisabled:"监控服务未启用,请联系管理员",noGroups:"暂无可访问的分组",sectionNav:"分组系列导航",status:{healthy:"正常",degraded:"延迟",unhealthy:"不可用",unknown:"未知"},overallStatus:{operational:"全部正常",degraded:"部分延迟",disrupted:"服务异常",unknown:"状态未知"},officialStatus:{title:"官方服务状态",claude:"Claude 官方",openai:"OpenAI 官方",gemini:"Gemini 官方",grok:"Grok 官方",updated:"官方更新于",viewPage:"查看官方状态页",viewDetail:"查看详情",components:"组件状态",noComponents:"暂无组件信息",incidents:"事件记录",noIncidents:"近期无事件",affects:"影响",startedAt:"开始于",resolvedAt:"恢复于",loadFailed:"加载失败,请稍后重试",unavailableDesc:"暂无法获取官方状态,可先打开官方状态页",indicator:{none:"运行正常",minor:"轻微故障",major:"重大故障",critical:"严重故障",unavailable:"暂无法获取"},impact:{none:"无影响",minor:"轻微",major:"重大",critical:"严重"},componentStatus:{operational:"正常",degraded_performance:"性能下降",partial_outage:"部分中断",major_outage:"严重中断",under_maintenance:"维护中"},incidentStatus:{investigating:"调查中",identified:"已定位",monitoring:"监控中",resolved:"已恢复",postmortem:"复盘"}},stats:{totalAccounts:"总账号数",available:"可用",rateLimit:"频率限制",error:"错误"},detail:"详情",history:"历史趋势",historyEmpty:"暂无历史数据",historyLast24h:"(近24小时)",availabilityRate:"可用率",availabilitySuccess:"成功",availabilityPeriod:"可用性区间",openNewWindow:"新窗口打开",autoRefreshUnit:"分钟 轮询",close:"关闭",accountTable:{name:"账号",status:"状态",available:"可用",rateLimited:"频率限制",error:"错误"}
1,snapshotTable:{time:"时间",availableAccounts:"可用账号"},alerts:{title:"告警规则",add:"添加规则",empty:"暂无告警规则",save:"保存",cancel:"取消",delete:"删除",edit:"编辑",confirmDelete:"确认删除该告警规则?",threshold:"阈值(%)",cooldownMins:"冷却时间(分钟)",enabled:"启用",disabled:"禁用",toggle:"启用告警",saved:"已保存",deleted:"已删除"}}},chat:{title:"沉浸式聊天",newConversation:"新建会话",placeholder:"发送消息…",emptyHistoryHint:"还没有对话,点击上方按钮开始。",welcomeTitle:"Hi, 有什么可以帮忙的?",historyHint:"会话历史保存在本浏览器,清理浏览器数据会一并清除。"},keys:{lastUsedIP:"最近使用 IP",title:"API 密钥",description:"管理您的 API 密钥和访问令牌",searchPlaceholder:"搜索名称或Key...",endpoints:{title:"API 端点",default:"默认",copied:"已复制",copiedHint:"已复制到剪贴板",clickToCopy:"点击可复制此端点",speedTest:"测速"},allGroups:"全部分组",allStatus:"全部状态",columnSettings:"列设置",columnAlwaysVisible:"该列固定显示,不可隐藏",createKey:"创建密钥",editKey:"编辑密钥",bulkEdit:{title:"批量编辑",selectedCount:"已选择 {count} 个密钥",selectKey:"选择密钥 {name}",clearSelection:"取消选择",hint:"勾选需要修改的字段,未勾选的字段保持原值。",limitHint:"输入 0 表示不限制;已用额度保持不变。",ipHint:"每行一个 IP 或 CIDR;留空将清空所选密钥的此项名单。",invalidLimit:"请输入大于或等于 0 的有效金额。",invalidExpiration:"请选择有效的过期时间,或勾选永久有效。",apply:"应用到 {count} 个密钥",success:"已更新 {count} 个密钥",partialFailure:"已更新 {success} 个密钥,{failed} 个失败",failureHint:"以下密钥更新失败,可修改设置后重试。再次提交只会更新失败的密钥。"},deleteKey:"删除密钥",deleteConfirmMessage:"确定要删除 '{name}' 吗?此操作无法撤销。",id:"ID",apiKey:"API 密钥",group:"分组",linkMonthlyGroup:"关联包月",linkMonthlyGroupHint:"开启后优先使用关联包月分组额度,用完再使用余额",linkMonthlyGroupUnavailable:"当前无可关联的全平台包月分组",linkMonthlyGroupUnavailableShort:"无包月分组",linkMonthlyGroupSubscriptionGroup:"该密钥已使用包月分组,无需手动关联",linkSubscriptionTitle:"关联包月订阅",linkSubscriptionHint:"选中并调整顺序后,按从上到下的优先级扣费",linkSubscriptionNoLinkable:"暂无可关联的全平台包月套餐,请先购买",linkSubscriptionMoveUp:"上移",linkSubscriptionMoveDown:"下移",linkSubscriptionBalance:"余额 {remaining} / {total} USD",linkSubscriptionExpiresAt:"到期 {date}",linkSubscriptionAutoOrderHint:"未选择时由系统按余额自动排序",linkSubscriptionInvalidSelection:"所选订阅已不可用,请重新选择",billingPreferenceTitle:"计费订阅优先级",billingPreferenceHint:"你在该分组下有多个可用套餐,勾选并排序后按从上到下的优先级扣费;优先套餐额度用尽会自动顺延",billingPreferenceDefaultOrderHint:"未选择时按系统默认顺序扣费(当前列表顺序)",currentConcurrency:"当前并发",noGroup:"无分组",searchGroup:"搜索分组...",noGroupFound:"未找到匹配的分组",billingMonthly:"包月",billingBalance:"余额",series:{yusan:"御三家",claude:"Claude",gpt:"GPT",grok:"Grok",gemini:"Gemini",default:"其他"},created:"创建时间",copyToClipboard:"复制到剪贴板",copied:"已复制!",importToCcSwitch:"导入到 CCS",enable:"启用",disable:"禁用",nameLabel:"名称",namePlaceholder:"我的 API 密钥",groupLabel:"分组",providerLabel:"厂商",providers:{anthropic:"Anthropic",openai:"OpenAI",domestic:"国产模型",other:"其他"},providerHints:{anthropic:"选择 Anthropic / Claude 的可用分组",openai:"选择 OpenAI / GPT 的可用分组",domestic:"包含 DeepSeek、Kimi、智谱 GLM、MiniMax",other:"包含 Gemini、Grok、Antigravity、OpenCode 和混合分组"},selectGroup:"选择分组",statusLabel:"状态",selectStatus:"选择状态",saving:"保存中...",noKeysYet:"暂无 API 密钥",createFirstKey:"创建æ
1‚¨çš„第一个 API 密钥以开始使用 API。",keyCreatedSuccess:"API 密钥创建成功",keyUpdatedSuccess:"API 密钥更新成功",keyDeletedSuccess:"API 密钥删除成功",keyEnabledSuccess:"API 密钥已启用",keyDisabledSuccess:"API 密钥已禁用",failedToLoad:"加载 API 密钥失败",failedToSave:"保存 API 密钥失败",failedToDelete:"删除 API 密钥失败",failedToUpdateStatus:"更新 API 密钥状态失败",clickToChangeGroup:"点击更换分组",groupChangedSuccess:"分组更换成功",failedToChangeGroup:"更换分组失败",linkMonthlyGroupEnabledSuccess:"已开启关联包月分组",linkMonthlyGroupDisabledSuccess:"已关闭关联包月分组",failedToToggleLinkMonthlyGroup:"切换关联包月分组失败",groupRequired:"请选择分组",usage:"用量",today:"今日",total:"近30天",quota:"额度",lastUsedAt:"上次使用时间",useKey:"使用密钥",useKeyModal:{title:"使用 API 密钥",description:"将以下环境变量添加到您的终端配置文件或直接在终端中运行。",copy:"复制",copied:"已复制",showKey:"显示密钥",hideKey:"隐藏密钥",note:"这些环境变量将在当前终端会话中生效。如需永久配置,请将其添加到 ~/.bashrc、~/.zshrc 或相应的配置文件中。",claudeSettingsHint:"用户级持久配置。此文件包含 API 密钥,请勿提交到项目仓库。",noGroupTitle:"请先分配分组",noGroupDescription:"æ­¤ API 密钥尚未分配分组,请先在密钥列表中点击分组列进行分配,然后才能查看使用配置。",openai:{description:"将以下配置文件添加到 Codex CLI 配置目录中。",authModeTitle:"Codex 认证模式",authModeDescription:"兼容模式保留旧版 Codex 配置;API Key Mode 用于授权客户端图片执行器。",authModeLegacy:"兼容模式",authModeApiKey:"API Key Mode",authModeApiKeyRestartNotice:"保存此配置后,必须完全退出并重启 Codex Desktop 或 CLI,然后新建 task,让客户端重新构建工具注册表。",configTomlHint:"请确保以下内容位于 config.toml 文件的开头部分",note:"请确保配置目录存在。macOS/Linux 用户可运行 mkdir -p ~/.codex 创建目录。",noteWindows:"按 Win+R,输入 %userprofile%\\.codex 打开配置目录。如目录不存在,请先手动创建。"},cliTabs:{claudeCode:"Claude Code",geminiCli:"Gemini CLI",codexCli:"Codex CLI",codexCliWs:"Codex CLI (WebSocket)",grokCli:"Grok CLI",opencode:"OpenCode"},antigravity:{description:"为 Antigravity 分组配置 API 访问。请根据您使用的客户端选择对应的配置方式。",claudeCode:"Claude Code",geminiCli:"Gemini CLI",claudeNote:"这些环境变量将在当前终端会话中生效。如需永久配置,请将其添加到 ~/.bashrc、~/.zshrc 或相应的配置文件中。",geminiNote:"这些环境变量将在当前终端会话中生效。如需永久配置,请将其添加到 ~/.bashrc、~/.zshrc 或相应的配置文件中。"},gemini:{description:"将以下环境变量添加到您的终端配置文件或直接在终端中运行,以配置 Gemini CLI 访问。",modelComment:"如果你有 Gemini 3 权限可以填:gemini-3.1-pro-preview",note:"这些环境变量将在当前终端会话中生效。如需永久配置,请将其添加到 ~/.bashrc、~/.zshrc 或相应的配置文件中。"},grok:{description:"配置 Grok Build、Claude Code、Codex 或 OpenCode,让请求通过当前 Sub2API Grok 分组发送。",claudeDescription:"配置 Claude Code,让 Messages API 请求通过当前 Sub2API Grok 分组发送。",codexDescription:"配置 Codex,让 Responses API 请求通过当前 Sub2API Grok 分组发送。",configTomlHint:"如已有 config.toml,请先备份再合并此模型配置。保存后运行 grok inspect 验证生效配置。",codexConfigTomlHint:"如已有 config.toml,请先备份再合并此服务商配置。",note:"保存为 ~/.grok/config.toml,然后运行 grok inspect,并在 /model 中选择 grok。",noteWindows:"保存为 %USERPROFILE%\\.grok\\config.toml,然后运行 grok inspect,并在 /model 中选择 grok。",claudeNote:"二选一即可:终端命令仅在当前会话生效;保存 settings.json 可作为用户级持久配置。",codexNote:"将 config.toml 保存到 ~/.codex,并在启动 Codex 前设置 SUB2API_API_KEY。",codexNoteWindows:"将 config.toml 保存到 %USERPROFILE%\\.codex,并在 PowerShell 中设置 SUB2API_API_KEY 后启动 Codex。"},deepseek:{description:"通过当前 DeepSeek 分组配置 Claude Code、Codex 或 OpenCode。",codexDescription:"使用 API Key 配置 Codex,并通过当前 DeepSeek 分组发送请求。",codexConfigTomlHint:"下载下方模型目录,将两个文件保存到 Codex 配置目录后重启 Codex。",codexNote:"启动 Codex 前先导出 SUB2API_API_KEY。下载的目录只包含模型元数据,不包含 API Key。"},minimax:{description:"通过当前 MiniMax 分组配置 Claude Code、Codex 或 OpenCode。",codexDescription:"使用 API Key 配置 Codex,并通过当前 MiniMax 分组发送请求。",codexConfigTomlHint:"下载下方模型目录,将两个文件保存到 Codex 配置目录后重启 Codex。",codexNote:"启动 Codex 前先导出 SUB2API_API_KEY。下载的目录只包含模型元数据,不包含 API Key。"},composite:{description:"通过当前 Composite 路由分组配置受支持的客户端。",codexDescription:"使用 API Key 和当前 Composite 分组的完整模型目录配置 Codex。",codexConfigTomlHint:"下载下方模型目录,将两个文件保存到 Codex 配置目录后重启 Codex。",codexNote:"启动 Codex 前先导出 SUB2API_API_KEY;分组会根据目录中选中的模型路由请求。"},routedCodex:{description:"使用当前路由分组的完整模型目录配置 Codex。",configTomlHint:"下载下方模型目录,将两个文件保存到 Codex 配置目录后重启 Codex。",note:"启动 Codex 前先导出 SUB2API_API_KEY。下载的目录只包含模型元数据,不包含 API Key。"},codexModelCatalog:{title:"Codex 模型目录",description:"使用当前 API Key 获取目录,并保存到 config.toml 引用的路径。",fetch:"获取目录",retry:"重试",download:"下载目录",modelsCount:"已获取 {count} 个模型",errorDescription:"无法使用当前 API Key 获取模型目录。"},opencode:{title:"OpenCode 配置示例",subtitle:"opencode.json",hint:"配置文件路径:~/.config/opencode/opencode.json(或 opencode.jsonc),不存在需手动创建。可使用默认 provider(openai/anthropic/google)或自定义 provider_id。API Key 支持直接配置或通过客户端 /connect 命令配置。示例仅供参考,模型与选项可按需调整。"}},customKeyLabel:"自定义密钥",customKeyPlaceholder:"输入自定义密钥(至少16个字符)",customKeyHint:"仅允许字母、数字、下划线和连字符,最少16个字符。",customKeyTooShort:"自定义密钥至少é
1œ€è¦16个字符",customKeyInvalidChars:"自定义密钥只能包含字母、数字、下划线和连字符",customKeyRequired:"请输入自定义密钥",ipRestriction:"IP 限制",ipWhitelist:"IP 白名单",ipWhitelistPlaceholder:`192.168.1.100
210.0.0.0/8`,ipWhitelistHint:"每行一个 IP 或 CIDR,设置后仅允许这些 IP 使用此密钥",ipBlacklist:"IP 黑名单",ipBlacklistPlaceholder:`1.2.3.4
35.6.0.0/16`,ipBlacklistHint:"每行一个 IP 或 CIDR,这些 IP 将被禁止使用此密钥",ipRestrictionEnabled:"已配置 IP 限制",ccSwitchNotInstalled:"CC-Switch 未安装或协议处理程序未注册。请先安装 CC-Switch 或手动复制 API 密钥。",ccsClientSelect:{title:"选择客户端",description:"请选择您要导入到 CC-Switch 的客户端类型:",claudeCode:"Claude Code",claudeCodeDesc:"导入为 Claude Code 配置",geminiCli:"Gemini CLI",geminiCliDesc:"导入为 Gemini CLI 配置"},quotaLimit:"额度限制",quotaAmount:"额度金额 (USD)",quotaAmountPlaceholder:"输入 USD 额度限制",quotaAmountHint:"设置此密钥可消费的最大金额。0 = 无限制。",quotaUsed:"已用额度",reset:"重置",resetQuotaUsed:"将已用额度重置为 0",resetQuotaTitle:"确认重置额度",resetQuotaConfirmMessage:'确定要将密钥 "{name}" 的已用额度(${used})重置为 0 吗?此操作不可撤销。',quotaResetSuccess:"额度重置成功",failedToResetQuota:"重置额度失败",rateLimitColumn:"速率限制",rateLimitSection:"速率限制",resetUsage:"重置",rateLimit5h:"5小时限额 (USD)",rateLimit1d:"日限额 (USD)",rateLimit7d:"7天限额 (USD)",rateLimitHint:"设置此密钥在指定时间窗口内的最大消费额。0 
3= 无限制。",rateLimitUsage:"速率限制用量",resetRateLimitUsage:"重置速率限制用量",resetRateLimitTitle:"确认重置速率限制",resetRateLimitConfirmMessage:'确定要重置密钥 "{name}" 的速率限制用量吗?所有时间窗口的已用额度将归零。此操作不可撤销。',rateLimitResetSuccess:"速率限制已重置",failedToResetRateLimit:"重置速率限制失败",resetNow:"即将重置",expiration:"密钥有效期",expiresInDays:"{days} 天",extendDays:"+{days} 天",customDate:"自定义",expirationDate:"过期时间",expirationDateHint:"选择此 API 密钥的过期时间。",currentExpiration:"当前过期时间",expiresAt:"过期时间",noExpiration:"永久有效",status:{active:"活跃",inactive:"已停用",quota_exhausted:"额度耗尽",expired:"已过期"}},usage:{latency:"延迟",latencyFirstToken:"首字",latencyDuration:"总耗时",title:"使用记录",description:"查看和分析您的 API 使用历史",costDetails:"费用明细",tokenDetails:"Token 明细",cacheTtlOverriddenHint:"缓存 TTL Override 已启用",cacheTtlOverriddenLabel:"TTL 替换",cacheTtlOverridden5m:"按 5m 计费",cacheTtlOverridden1h:"按 1h 计费",totalRequests:"总请求数",totalTokens:"总 Token",cacheTotal:"缓存",cacheBreakdown:"缓存 Token 明细",cacheCreationTokensLabel:"缓存创建",cacheReadTokensLabel:"缓存读取",totalCost:"总消费",standardCost:"标准",actualCost:"实际",accountCost:"成本",userBilled:"用户扣费",accountBilled:"账号计费",resetNow:"现在",resetPending:"待刷新",accountMultiplier:"账号倍率",avgDuration:"平均耗时",inSelectedRange:"所选范围内",perRequest:"每次请求",apiKeyFilter:"API 密钥",allApiKeys:"全部密钥",timeRange:"时间范围",exportCsv:"导出 CSV",exportExcel:"导出 Excel",exportingProgress:"正在导出数据...",exportedCount:"已导出 {current}/{total} 条",estimatedTime:"预计剩余时间:{time}",cancelExport:"取消导出",exportCancelled:"导出已取消",exporting:"导出中...",preparingExport:"正在准备导出...",model:"模型",requestedModel:"请求模型",upstreamModel:"上游模型",sentUpstreamModel:"发往上游",upstreamResponseModel:"上游响应",upstreamModelMismatch:"上游响应模型不一致",modelVariant:"疑似版本变体",modelMismatch:"模型不一致",mapping:"映射模型",reasoningEffort:"推理强度",requestedReasoningEffort:"请求推理强度",endpoint:"端点",endpointDistribution:"端点分布",inbound:"入站",upstream:"上游",path:"路径",inboundEndpoint:"入站端点",upstreamEndpoint:"上游端点",type:"类型",tokens:"Token",cost:"费用",firstToken:"首 Token",duration:"耗时",time:"时间",ws:"WS",stream:"流式",sync:"同步",nativeCompactionV2:"压缩",compactionFilter:"请求类别",allCompactionTypes:"全部请求",compactionOnly:"仅原生压缩",cyber:"安全策略",live:"Live",unknown:"未知",in:"输入",out:"输出",cacheHit:"缓存命中",cacheCreate:"缓存创建",cacheHitRate:"缓存命中率",inputTokenPrice:"输入单价",outputTokenPrice:"输出单价",perMillionTokens:"/ 1M Token",unitPrice:"单次价格",imageUnitPrice:"单张价格",imageTotalPrice:"图片总价",imageCount:"图片张数",imageBillingSize:"计费尺寸",imageInputSize:"输入尺寸",imageOutputSize:"输出尺寸",imageInputTokens:"图片输入 Token",imageInputTokenPrice:"图片输入单价",imageInputCost:"图片输入费用",imageOutputTokens:"图片输出 Token",imageOutputTokenPrice:"图片输出单价",imageOutputCost:"图片输出费用",imageSizeSource:"尺寸来源",imageSizeBreakdown:"尺寸明细",imageSizeSourceOutput:"上游输出",imageSizeSourceInput:"请求输入",imageSizeSourceDefault:"默认计费档位",imageSizeSourceLegacy:"历史记录",imageSizeSourceMissing:"未记录",imageSizeNotRecorded:"未记录",imageSizeLegacyUnstandardized:"历史非标准",imageSizeUnknown:"未知",cacheRead:"读取",cacheWrite:"写入",serviceTier:"服务档位",serviceTierPriority:"Fast",serviceTierUltrafast:"Ultrafast",serviceTierFlex:"Flex",serviceTierStandard:"Standard",rate:"倍率",original:"原始",officialReference:"官方参考价",officialReferenceUnavailable:"暂无可用官方参考价",referencePricingHint:"原始成本展示的是该次请求的标准成本;实际扣费会按倍率与计费策略计算。",billedSummaryHint:"按实际扣费汇总;单次请求可查看原始成本与倍率。",billed:"计费",noRecords:"未找到使用记录,请尝试调整筛选条件。",failedToLoad:"加载使用记录失败",noDataToExport:"没有可导出的数据",exportSuccess:"使用数据导出成功",exportFailed:"使用数据导出失败",exportExcelSuccess:"使用数据导出成功(Excel格式)",exp
3ortExcelFailed:"使用数据导出失败",imageUnit:"å¼ ",userAgent:"User-Agent",ipGeo:{fetch:"获取地区",fetching:"获取中...",failed:"获取失败",private:"内网地址",refreshTitle:"刷新地区信息",batchFetch:"批量获取地区",batchFetching:"获取中...",pending:"{count} 个 IP 待获取地区",batchFailed:"批量获取地区信息失败",detailOrg:"运营商",detailTimezone:"时区",detailAccuracy:"定位精度",detailCoordinates:"坐标"},tabs:{usage:"用量明细",errors:"错误请求",ranking:"用户排行"},errors:{time:"时间",model:"模型",endpoint:"端点",status:"状态码",category:"分类",platform:"平台",message:"错误信息",keyName:"Key 名称",keyDeleted:"已删除",allKeys:"全部 Key",modelPlaceholder:"搜索模型",allCategories:"全部分类",allStatuses:"全部状态码",empty:"暂无错误请求",failedToLoad:"加载错误请求失败",code:"错误码",retryable:"可重试",retryableTip:"该错误可稍后重试",actionHint:"建议操作",copyCode:"复制错误码",categories:{auth:"认证失败",rate_limit:"限流",quota:"余额/订阅",invalid_request:"参数错误",service_unavailable:"服务暂时不可用",upstream:"上游错误",internal:"平台错误",other:"其他",cyber:"安全策略"},detail:{title:"错误请求详情",responseBody:"上游响应内容",upstreamStatus:"上游状态码",loadFailed:"加载详情失败,请稍后重试",code:"错误码",actionHint:"建议操作",requestId:"请求 ID",copyRequestId:"复制请求 ID"},codes:{"C80-AUTH-001":{label:"API Key 无效",message:"API Key 无效或缺失,请检查客户端配置。",action:"核对 API Key 是否复制完整、未被删除,必要时在控制台重新生成。"},"C80-AUTH-002":{label:"API Key 已禁用",message:"API Key 已被禁用或过期。",action:"更换有效的 API Key,或联系管理员确认禁用原因。"},"C80-AUTH-003":{label:"无权访问分组",message:"当前 API Key 无权访问该分组,或分组已停用。",action:"联系管理员确认分组权限与状态。"},"C80-BIZ-BALANCE-001":{label:"余额/订阅不足",message:"账户余额不足或订阅已失效。",action:"充值或续订后重试。"},"C80-BIZ-QUOTA-001":{label:"配额用尽",message:"当前配额已用尽。",action:"等待额度刷新(日/周/月窗口)或升级套餐。"},"C80-BIZ-CONCURRENCY-001":{label:"并发超限",message:"并发请求过多,请稍候重试。",action:"等待进行中的请求完成,或降低客户端并发。"},"C80-BIZ-MODEL-CONCURRENCY-001":{label:"模型并发超限",message:"该模型当前请求量较大,请稍候重试。",action:"按 Retry-After 稍后重试,或临时改用其他模型。"},"C80-BIZ-DUPLICATE-001":{label:"重复请求",message:"相同请求仍在处理中,请稍候,不要重复发送。",action:"等待当前请求完成后再看结果,避免客户端密集自动重试。"},"C80-BIZ-RATELIMIT-001":{label:"请求频率超限",message:"请求频率超出每分钟上限,请稍候重试。",action:"降低客户端请求频率,或等待下一分钟窗口后重试。"},"C80-BIZ-CONTENT-001":{label:"内容审计拦截",message:"请求内容未通过内容审计。",action:"调整输入内容后重试;若确认内容正常请联系管理员。"},"C80-BIZ-PROMPT-AUDIT-001":{label:"提示词审计拦截",message:"请求内容未通过提示词安全审计。",action:"调整输入内容后重试;若确认内容正常请联系管理员。"},"C80-CAP-MODEL-001":{label:"模型不支持",message:"当前分组不支持请求的模型。",action:"检查模型 ID 是否拼写正确,或切换到分组支持的模型。"},"C80-CAP-ENDPOINT-001":{label:"接口不支持",message:"当前平台不支持该接口。",action:"换用平台支持的接口,或在客户端关闭该功能。"},"C80-CAP-PAYLOAD-001":{label:"请求体不兼容",message:"请求内容与目标平台不兼容。",action:"检查请求参数(工具定义、思考块、上下文长度等)后重试。"},"C80-CAP-POLICY-001":{label:"上游策略拒绝",message:"当前请求被上游安全策略拒绝。",action:"调整提示词或新建对话后重试。"},"C80-CAP-IMAGEGEN-001":{label:"图像生成未开启",message:"当前分组未开启图像生成功能。",action:"改用已开启图像生成的分组/API Key,或联系管理员为该分组开启。"},"C80-CAP-CLIENT-001":{label:"客户端类型受限",message:"当前分组仅允许 Claude Code 客户端访问。",action:"改用 Claude Code 客户端(/v1/messages),或换用不限客户端类型的分组/API Key。"},"C80-CAP-CONTINUATION-001":{label:"会话无法续链",message:"当前会话无法在此通道继续,请开一个新会话。",action:"在客户端开新会话后重试,不要带着旧的续链 ID 反复提交。"},"C80-ROUTE-NO-ACCOUNT-001":{label:"暂无可用容量",message:"当前模型暂无可用服务容量。",action:"稍后重试;若持续出现请联系管理员。"},"C80-ROUTE-MAPPING-001":{label:"模型暂不可用",message:"该模型暂不可用。",action:"更换模型重试;若确需此模型请联系管理员。"},"C80-ROUTE-WRONG-SITE-001":{label:"接入站点不匹配",message:"当前 API Key 所属分组由其他站点服务,请改用正确的接入地址。",action:"将客户端的接入地址改为该分组对应站点的域名;如不确定请联系管理员。"},"C80-UPSTREAM-AUTH-001":{label:"上游暂不可用",message:"上游服务暂时不可用,请稍后重试。",action:"稍后重试;若持续出现请联系管理员。"},"C80-UPSTREAM-RATE-001":{label:"上游限流",message:"上游服务限流,请稍后再试。",action:"等待后重试,或降低请求频率。"},"C80-UPSTREAM-NET-001":{label:"上游网络异常",message:"上游网络连接不稳定,请稍后重试。",action:"稍后重试;持续失败可尝试更换模型。"},"C80-UPSTREAM-5XX-001":{label:"上游服务异常",message:"上游服务暂时不可用,请稍后重试。",action:"稍后重试;若持续出现请联系管理员。"},"C80-UPSTREAM-REQ-001":{label:"上游拒绝请求",message:"上游拒绝了本次请求。",action:"新开会话或修改请求内容后重试;若持续出现请联系管理员。"},"C80-UPSTREAM-BILLING-001":{label:"服务通道暂不可用",message:"当前服务通道暂æ—
3¶ä¸å¯ç”¨ï¼Œè¯·è”系管理员处理。",action:"联系管理员处理;也可稍后重试或切换其他分组。"},"C80-CLIENT-CANCEL-001":{label:"请求已取消",message:"请求已被客户端取消。",action:"检查客户端超时与网络设置。"},"C80-CLIENT-CANCEL-TTFB-001":{label:"等待上游响应时取消",message:"请求在等待上游响应期间被取消。",action:"上游首字节较慢时可稍后重试,或适当调大客户端等待超时。"},"C80-CLIENT-CANCEL-MIDSTREAM-001":{label:"生成中途取消",message:"请求在生成过程中被客户端取消。",action:"检查客户端是否主动中止或网络中断。"},"C80-CLIENT-REQ-001":{label:"请求不完整",message:"请求不完整,请检查客户端是否正确发送了请求内容。",action:"确认请求包含有效 JSON 请求体和 model 字段;使用代理/网关时确认其未剥离请求体。"},"C80-CLIENT-IMAGES-REQ-001":{label:"图片请求格式错误",message:"图片请求格式不正确,接口未能识别图片参数。",action:"编辑接口支持三种格式:multipart/form-data 用 image 文件字段上传图片;JSON 用 images 数组、每项带 image_url 字段(支持 https 或 data URL);JSON 用 image 字段直接传 base64、data URL 或 https URL(字符串或数组均可)。请按其一重发。"},"C80-UPSTREAM-TTFB-001":{label:"上游首包超时",message:"上游首包响应过慢,请求已超时。",action:"稍后重试,或切换到响应更快的模型/分组;客户端 read timeout 建议不低于网关 failover 预算。"},"C80-UPSTREAM-PARTIAL-001":{label:"中途断流",message:"响应在传输中途中断,请重新发起请求。",action:"重新发起请求;若持续出现请携带请求 ID 联系管理员。"}
3,"C80-PLATFORM-INTERNAL-001":{label:"平台内部错误",message:"平台内部错误,请稍后重试。",action:"稍后重试;若持续出现请携带请求 ID 联系管理员。"},"C80-SYS-PROMPT-AUDIT-001":{label:"提示词审计不可用",message:"提示词安全审计暂时不可用,请稍后重试。",action:"稍后重试;若持续出现请携带请求 ID 联系管理员。"},"C80-RECOVERED-UPSTREAM-001":{label:"已自动恢复",message:"请求在重试后已成功,无需处理。",action:"无需处理。"},"C80-UNKNOWN-001":{label:"未分类错误",message:"请求处理失败。",action:"稍后重试;若持续出现请携带请求 ID 联系管理员。"},unknown:{label:"未分类错误",message:"请求处理失败。",action:"稍后重试;若持续出现请携带请求 ID 联系管理员。"}}}},balanceLots:{title:"余额明细",active:"有效",depleted:"已用完",expired:"已过期",allStatuses:"全部状态",expiresAt:"过期时间",expiredAt:"过期于",sourceRecharge:"充值",sourceRedeem:"兑换码",sourcePromo:"优惠码",sourceRegisterBonus:"注册赠送",sourceReferral:"邀请奖励",sourceAdjust:"管理员调整",sourceMigration:"历史迁移",sourceSubTransfer:"订阅结转",noLots:"暂无余额记录",expiryConfirmTitle:"余额有效期提醒",expiryConfirmMessage:"您的充值余额将用于消耗纯血 Claude Max 、ChatGPT pro、Gemini Ultra包月帐号额度(具体支持哪些模型,见API 密钥页面),受上游订阅周期限制,余额有效期为 {days} 天,到期后未使用的余额将自动清零,确认继续充值?",redeemExpiryConfirmMessage:"如果兑换码包含余额,充入的余额将用于消耗纯血 Claude Max 包月帐号额度,受上游订阅周期限制,有效期为 {days} 天,到期后未使用的余额将自动清零。确认继续?",clickToViewDetails:"点击查看余额明细",activeLotsTitle:"余额明细",noActiveLots:"暂无有效余额",viewAll:"查看全部",expiresToday:"今天到期",expiresIn:"{days} 天后到期",confirm:"确认",cancel:"取消"},monitorCommon:{status:{operational:"正常",degraded:"降级",failed:"失败",error:"错误",unknown:"-"},providers:{openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",grok:"Grok",antigravity:"Antigravity",kimi:"Kimi",zhipu:"智谱 GLM",deepseek:"DeepSeek",minimax:"MiniMax",opencode_go:"OpenCode"},checkMode:{probe:"探活",quota:"配额",quota_probe:"探活 + 配额"},quota:{unavailable:"配额信息不可用",resetSoon:"即将重置",windows:{"5h":"5 小时","7d":"7 天","7dSonnet":"7 天 Sonnet","7dFable":"7 天 Fable",weekly:"周",monthly:"月",daily:"日","30d":"30 天",total:"总量"},labels:{requests:"请求",tokens:"Token",shared:"共享",pro:"Pro",flash:"Flash"}},extraModelsHeader:"附加模型",extraModelsEmpty:"无附加模型",latencyEmpty:"-",availabilityPrefix:"可用性",dialogLatency:"对话延迟",endpointPing:"端点 PING",history60pts:"近 {n} 次记录",nextUpdateIn:"{n}s 后刷新",past:"PAST",now:"NOW",maintenancePaused:"维护中 · 已暂停时间线采集",extraModelsCount:"+ {n} 模型",pollEvery:"{n}s 轮询",updatedAt:"更新于 {time}",relativeSecondsAgo:"{n} 秒前",relativeMinutesAgo:"{n} 分钟前",relativeHoursAgo:"{n} 小时前",relativeDaysAgo:"{n} 天前"},channelStatus:{title:"渠道状态",description:"查看渠道可用性、延迟和近期状态",searchPlaceholder:"搜索渠道...",allProviders:"全部供应商",loadError:"加载渠道状态失败",detailLoadError:"加载渠道详情失败",detailTitle:"渠道详情",closeDetail:"关闭",windowTab:{"7d":"7 天","15d":"15 天","30d":"30 天"},overall:{operational:"OPERATIONAL",degraded:"DEGRADED",unavailable:"UNAVAILABLE"},columns:{name:"名称",provider:"供应商",groupName:"分组",primaryModel:"主模型",availability7d:"7 天可用率",latency:"延迟 (ms)"},detailColumns:{model:"模型",latestStatus:"最新状态",latestLatency:"最新延迟 (ms)",availability7d:"7 天可用率",availability15d:"15 天可用率",availability30d:"30 天可用率",avgLatency7d:"7 天平均延迟 (ms)"},empty:{title:"暂无可显示的渠道",description:"管理员尚未配置可监控的渠道。"}},availableChannels:{title:"可用渠道",description:"查看您可访问的渠道与其支持的模型、定价",searchPlaceholder:"搜索渠道或模型...",empty:"暂无可用渠道",noModels:"未配置模型",noPricing:"未配置定价",exclusive:"专属",public:"公开",exclusiveTooltip:"管理员授权给你的专属分组",publicTooltip:"对所有用户公开的分组",columns:{name:"渠道名",description:"描述",platform:"平台",groups:"我可访问的分组",supportedModels:"支持模型"},pricing:{billingMode:"计费模式",billingModeToken:"按 Token",billingModePerRequest:"按次",billingModeImage:"按图片",billingModeVideo:"按视频",inputPrice:"输入",outputPrice:"输出",cacheWritePrice:"缓存写入",cacheWrite5mPrice:"缓存写入(5m)",cacheWrite1hPrice:"缓存写入(1h)",cacheReadPrice:"缓存读取",imageInputPrice:"图片输入",imageOutputPrice:"图片输出",perRequestPrice:"每次请求",intervals:"阶梯定价",unitPerMillion:"/ 1M token",unitPerRequest:"/ 次"}},modelPricing:{title:"模型价格",description:"各平台分组价格总览,默认美元,可切换人民币。",searchPlaceholder:"搜索模型 / 分组 / 渠道 / 平台...",empty:"没有匹配的模型",noPricing:"未配置定价",customMultiplier:"专属",rowCount:"暂无数据 | 共 1 行 | 共 {count} 行",filters:{allPlatforms:"全部平台",allBilling:"全部计费"},columns:{model:"模型",platform:"平台",group:"分组",multiplier:"倍率",billingMode:"计费",input:"输入 / 1M",output:"输出 / 1M",cacheWrite:"缓存写入 / 1M",cacheRead:"缓存读取 / 1M",imageOutput:"图片输出",perRequest:"每次请求",channel:"渠道"},page:{rules:{label:"计价规则",exchangeRateTpl:"官方价格按 $1 = Â¥7 计算,本系统价格 $1 = Â¥{rate}(随系统调整)",formula:"分组价格 = 本系统($) × 分组倍率",exampleTpl:"示例:{model} 输入价,官方 Â¥{official},{group} Â¥{platform}"},priceList:{title:"价格列表",groupHint:"选择分组后,直接查看每个模型的价格。",officialHint:"查看按固定汇率折算的官方价格。",subscribeBtn:"去订阅",usdLabel:"$ 美元",cnyLabel:"Â¥ 人民币",groupModeBtn:"分组价格",officialModeBtn:"官方价格",officialNote:"官方价格按固定汇率 $1 = Â¥7 折算成人民币,仅用于和分组价格对比。",groupDescLabel:"分ç
3»„介绍:",noGroups:"当前平台暂无可展示的分组",noModels:"该分组在当前平台暂无可展示的模型"},table:{modelId:"模型 ID",modelName:"模型名称",inputPrice:"输入价格",outputPrice:"输出价格",cacheWrite:"缓存创建",cacheRead:"缓存读取",savings:"节省幅度",descriptionCol:"描述",officialRef:"官方价格 {price}",savePct:"省 {pct}%",multiplierDesc:"{mult}x 倍率·相当于约 {label}",copy:"复制"}}},redeem:{title:"兑换码",description:"输入兑换码以充值余额或增加并发数",currentBalance:"当前余额",concurrency:"并发数",requests:"请求",redeemCodeLabel:"兑换码",redeemCodePlaceholder:"请输入兑换码",redeemCodeHint:"兑换码区分大小写",redeeming:"兑换中...",redeemButton:"兑换",redeemSuccess:"兑换成功!",redeemFailed:"兑换失败",added:"已添加",concurrentRequests:"并发请求",newBalance:"新余额",newConcurrency:"新并发数",aboutCodes:"关于兑换码",codeRule1:"每个兑换码只能使用一次",codeRule2:"兑换码可以增加余额、并发数或试用权限",codeRule3:"如有兑换问题,请联系客服",codeRule4:"余额和并发数即时更新",recentActivity:"最近活动",historyWillAppear:"您的兑换历史将显示在这里",balanceAddedRedeem:"余额充值(兑换)",balanceAddedAffiliate:"余额充值(返利转入)",balanceAddedAdmin:"余额充值(管理员)",balanceDeductedAdmin:"余额扣除(管理员)",concurrencyAddedRedeem:"并发增加(兑换)",concurrencyAddedAdmin:"并发增加(管理员)",concurrencyReducedAdmin:"并发减少(管理员)",adminAdjustment:"管理员调整",wechatRecharge:"余额充值(微信支付)",wechatRefunded:"充值已退款(微信支付)",wechatPay:"微信支付",subscriptionAssigned:"订阅已分配",subscriptionAssignedDesc:"您已获得 {groupName} 的访问权限",subscriptionDays:"{days} 天",days:"天",codeRedeemSuccess:"兑换成功!",failedToRedeem:"兑换失败,请检查兑换码后重试。",historyLoadFailed:"加载兑换记录失败,请重试。",userRefreshFailed:"兑换成功,但账户信息刷新失败。",subscriptionRefreshFailed:"兑换成功,但订阅状态刷新失败。",pleaseEnterCode:"请输入兑换码"},profile:{title:"个人设置",description:"管理您的账户信息和设置",accountBalance:"账户余额",quotaRemaining:"配额剩余",concurrencyLimit:"并发限制",rpmLimit:"RPM 限制",rpmUnlimited:"不限制",memberSince:"注册时间",overviewTitle:"账户总览",overviewDescription:"快速查看账号状态、资料来源与常用设置。",basicsTitle:"资料与头像",basicsDescription:"维护公开展示信息,并保持头像与昵称风格一致。",linkedProfileSources:"资料来源",linkedProfileSourcesDescription:"部分头像和昵称可能同步自第三方登录方式。",securityTitle:"安全设置",securityDescription:"密码、双因素认证和通知提醒集中放在右侧。",administrator:"管理员",user:"用户",username:"用户名",email:"邮箱",status:"状态",role:"角色",enterUsername:"输入用户名",editProfile:"编辑个人资料",updateProfile:"更新资料",updating:"更新中...",updateSuccess:"资料更新成功",updateFailed:"资料更新失败",usernameRequired:"用户名不能为空",changePassword:"修改密码",currentPassword:"当前密码",newPassword:"新密码",confirmNewPassword:"确认新密码",passwordHint:"密码至少需要 8 个字符",changingPassword:"修改中...",changePasswordButton:"修改密码",passwordsNotMatch:"两次输入的密码不一致",passwordTooShort:"密码至少需要 8 个字符",passwordChangeSuccess:"密码修改成功",passwordChangeFailed:"密码修改失败",setPassword:"设置密码",setPasswordDescription:"您的账户通过第三方登录注册,尚未设置密码。设置密码后可以使用邮箱+密码登录。",setPasswordButton:"设置密码",settingPassword:"设置中...",setPasswordSuccess:"密码设置成功",setPasswordFailed:"密码设置失败",emailVerifyCode:"邮箱验证码",sendVerifyCode:"发送验证码",sendingVerifyCode:"发送中...",verifyCodeSent:"验证码已发送",verifyCodePlaceholder:"请输入验证码",verifyCodeCountdown:"{seconds}秒后重新发送",bindEmailFirst:"请先绑定真实邮箱后再设置
3密码",wechatBind:{title:"微信绑定",wechatAccount:"微信公众号",description:"绑定微信公众号后可使用微信扫码登录",bindButton:"绑定微信",modalTitle:"绑定微信公众号",binding:"绑定中...",bindSuccess:"微信绑定成功",bindFailed:"微信绑定失败",bound:"已绑定",boundStatus:"已绑定微信账号,可使用微信扫码登录",unbindButton:"解绑",unbindConfirmTitle:"确认解绑微信",unbindConfirmMessage:"解绑后将无法使用该微信账号登录,确定要解绑吗?",confirmUnbind:"确认解绑",unbinding:"解绑中...",unbindSuccess:"微信解绑成功",unbindFailed:"微信解绑失败"},emailBind:{title:"邮箱管理",bound:"已绑定",notBoundTitle:"未绑定邮箱",notBoundHint:"绑定邮箱后可接收使用报告、重置密码等",bindButton:"立即绑定",currentEmail:"当前邮箱",changeButton:"换绑邮箱",unbindButton:"解绑邮箱",unbindConfirmTitle:"确认解绑邮箱",unbindConfirmMessage:"解绑后将清除邮箱登录方式,只能通过微信登录,确认继续吗?",unbindSuccess:"邮箱解绑成功",unbindFailed:"解绑失败,请重试",unbinding:"解绑中...",confirmUnbind:"确认解绑",changeTitle:"换绑邮箱",changeDescription:"请输入新邮箱地址并完成验证",changeSuccess:"邮箱换绑成功",changeFailed:"换绑失败,请重试",changing:"换绑中...",confirm:"确认换绑",changePasswordLabel:"新密码(可选)",changePasswordPlaceholder:"留空则保持原密码不变",changePasswordHint:"可选:留空则继续使用原密码登录",changePasswordTooShort:"密码至少需要 6 个字符"},totp:{title:"双因素认证 (2FA)",description:"使用 Google Authenticator 等应用增强账户安全",enabled:"已启用",enabledAt:"启用时间",notEnabled:"未启用",notEnabledHint:"启用双因素认证可以增强账户安全性",enable:"启用",disable:"禁用",featureDisabled:"功能未开放",featureDisabledHint:"管理员尚未开放双因素认证功能",setupTitle:"设置双因素认证",setupStep1:"使用认证器应用扫描下方二维码",setupStep2:"输入应用显示的 6 位验证码",manualEntry:"无法扫码?手动输入密钥:",enterCode:"输入 6 位验证码",verify:"验证",setupFailed:"获取设置信息失败",verifyFailed:"验证码错误,请重试",enableSuccess:"双因素认证已启用",disableTitle:"禁用双因素认证",disableWarning:"禁用后,登录时将不再需要é
3ªŒè¯ç ã€‚这可能会降低您的账户安全性。",enterPassword:"请输入当前密码确认",confirmDisable:"确认禁用",disableSuccess:"双因素认证已禁用",disableFailed:"禁用失败,请检查密码是否正确",loginTitle:"双因素认证",loginHint:"请输入您认证器应用显示的 6 位验证码",loginFailed:"验证失败,请重试",verifyEmailFirst:"请先验证您的邮箱",verifyPasswordFirst:"请先验证您的身份",emailCode:"邮箱验证码",enterEmailCode:"请输入 6 位验证码",sendCode:"发送验证码",codeSent:"验证码已发送到您的邮箱",sendCodeFailed:"发送验证码失败"},passkey:{title:"Passkey",description:"使用面容 ID、触控 ID、Windows Hello 或安全密钥免密码登录。",add:"添加 Passkey",continue:"创建 Passkey",name:"Passkey 名称",namePlaceholder:"例如:MacBook 触控 ID",passwordPlaceholder:"输入当前登录密码以确认",empty:"尚未添加任何 Passkey。",synced:"已同步",createdAt:"创建于 {date}",lastUsed:"上次使用 {date}",featureDisabled:"管理员尚未配置 Passkey 功能。",unsupported:"当前浏览器或设备不支持 Passkey。",loadFailed:"加载 Passkey 失败。",added:"Passkey 已添加。",addFailed:"添加 Passkey 失败。",renamePrompt:"请输入新的 Passkey 名称",renamed:"Passkey 已重命名。",renameFailed:"重命名 Passkey 失败。",deleteTitle:"删除 Passkey",deleteConfirm:"删除“{name}”?删除后将无法再使用它登录。",deleted:"Passkey 已删除。",deleteFailed:"删除 Passkey 失败。"},usageReport:{title:"使用报告",description:"接收每日使用情况的邮件报告",featureDisabled:"功能未开放",featureDisabledHint:"管理员尚未开放使用报告功能",emailRequired:"需要绑定邮箱",emailRequiredHint:"请先在个人资料中绑定有效邮箱后再启用使用报告",enableReport:"启用每日报告",enableReportHint:"每天发送前一天的使用统计到您的邮箱",sendTime:"发送时间",sendTimeHint:"选择您希望收到报告的时间",timezone:"时区",sendTest:"发送测试报告",sendingTest:"发送中...",testSent:"测试报告已发送,请检查邮箱",testFailed:"发送测试报告失败",loadFailed:"加载配置失败",updateSuccess:"配置已更新",updateFailed:"更新配置失败"},balanceNotify:{title:"余额不足提醒",description:"当账户余额低于阈值时发送邮件提醒",enabled:"启用余额不足提醒",threshold:"自定义提醒阈值",thresholdHint:"留空使用系统默认值",thresholdPlaceholder:"输入金额",systemDefault:"系统默认值",extraEmails:"通知邮箱",extraEmailsHint:"必须添加并验证邮箱后,余额不足时才能收到提醒邮件",primaryEmail:"主邮箱",noExtraEmails:"暂无额外通知邮箱",enterEmail:"输入邮箱地址",addEmail:"添加邮箱",emailPlaceholder:"输入邮箱地址",sendCode:"发送验证码",resend:"重发",codeSent:"验证码已发送",codeSentTo:"验证码已发送到 {email}",enterCode:"输入验证码",codePlaceholder:"6位验证码",verify:"验证",emailAdded:"邮箱已添加",emailRemoved:"邮箱已移除",verifySuccess:"邮箱添加成功",removeEmail:"移除",removeSuccess:"邮箱已移除",emailDuplicate:"该邮箱已存在",maxEmailsReached:"已达到通知邮箱数量上限",unverified:"未验证",verified:"已验证"},privacyFilter:{title:"隐私过滤",description:"开启后,发送给上游 AI 服务的请求中检测到的敏感信息(邮箱、手机号、身份证号、银行卡号、IP、API 密钥等)会在转发前被替换为占位符(如 [邮箱]、[密钥]),替换不可逆。需管理员开启全局开关后才实际生效。",enabled:"启用隐私过滤",riskHint:"检测基于规则与熵值,可能误判长随机字符串(如 base64 数据、临时令ç‰
3Œï¼‰ï¼Œå½±å“åŒ…含此类内容的编程类请求,请按需开启。开关变更仅对新会话生效;进行中的对话保持原有策略,切换后建议新开会话。"},avatar:{title:"资料头像",description:"仅支持上传头像图片;静态图片会自动压缩到 20KB 以内后再保存。",uploadAction:"上传图片",uploadHint:"上传图片时会自动压缩静态图片到 20KB 以内,GIF 需自行控制在 20KB 以内",uploadRequired:"请先上传头像图片",saveSuccess:"头像已更新",deleteSuccess:"头像已删除",invalidType:"请选择图片文件",gifTooLarge:"GIF 头像必须在 20KB 以内",compressTooLarge:"无法将图片压缩到 20KB 以内,请换一张更小的图片",compressFailed:"压缩所选图片失败",readFailed:"读取所选图片失败",emptyDeleteHint:"当前没有可删除的头像"},authBindings:{title:"登录方式绑定",description:"查看当前绑定状态,并将更多第三方登录方式关联到这个账号。",bindAction:"绑定 {providerName}",bindSuccess:"账号绑定成功",emailPlaceholder:"输入邮箱地址",codePlaceholder:"输入验证码",passwordPlaceholder:"设置登录密码",replaceEmailPasswordPlaceholder:"输入当前密码",sendCodeAction:"发送验证码",manageEmailAction:"管理邮箱",hideEmailFormAction:"收起邮箱表单",confirmEmailBindAction:"绑定邮箱",confirmEmailReplaceAction:"更换主邮箱",codeSentTo:"验证码已发送到 {email}",replaceSuccess:"主邮箱已更新",unbindAction:"解绑",unbindSuccess:"{providerName} 已解绑",boundCount:"已关联 {count} 条记录",status:{bound:"已绑定",notBound:"未绑定"},providers:{email:"邮箱",linuxdo:"LinuxDo",dingtalk:"钉钉",oidc:"{providerName}",wechat:"微信"},notes:{emailManagedFromProfile:"主邮箱在资料表单中管理",canUnbind:"你可以解绑这个登录方式。",bindAnotherBeforeUnbind:"请先绑定其他登录方式,再解除当前绑定。"},source:{avatar:"头像当前来自 {providerName}",username:"昵称当前来自 {providerName}"}}},emailReminder:{title:"绑定邮箱",description:"绑定邮箱可以接收使用报告、重置密码等功能",bindNow:"立即绑定",later:"稍后提醒"},empty:{noData:"暂无数据"},table:{expandActions:"展开更多操作",collapseActions:"收起操作"},pagination:{showing:"显示",to:"至",of:"共",results:"条结果",page:"页",pageOf:"第 {page} / {total} 页",previous:"上一页",next:"下一页",perPage:"每页",goToPage:"跳转到第 {page} 页",jumpTo:"跳转页",jumpPlaceholder:"页码",jumpAction:"跳转"},errors:{somethingWentWrong:"出错了",pageNotFound:"页面未找到",unauthorized:"未授权",forbidden:"禁止访问",serverError:"服务器错误",networkError:"网络错误",timeout:"请求超时",tryAgain:"请重试"},dates:{today:"今天",yesterday:"昨天",last24Hours:"近 24 小时",thisWeek:"本周",lastWeek:"上周",thisMonth:"本月",lastMonth:"上月",last7Days:"近 7 天",last14Days:"近 14 天",last30Days:"近 30 天",custom:"自定义",startDate:"开始日期",endDate:"结束日期",apply:"应用",selectDateRange:"选择日期范围"},admin:{promptAudit:{title:"提示词审计",description:"通过 OpenAI 兼容 Qwen3Guard 节点异步复核或同步阻止用户输入;事件的完整提示词会入库保存,仅供管理员复核。",configVersion:"配置版本 v{version}",tabs:{config:"配置",events:"事件"},actions:{refresh:"刷新运行态",retry:"重试",Allow:"放行",Warn:"警告",Block:"阻止"},common:{actions:"操作",never:"从未"},mode:{off:"已关闭",async_audit:"异步只审计",blocking:"同步审计并阻止"},status:{disabled:"未启用",running:"运行中",degraded:"降级",error:"错误",healthy:"健康",failed:"失败",stale:"心跳过期"},decisions:{pass:"通过",flag:"标记",critical:"严重"},riskLevels:{low:"低",medium:"中",high:"高",critical:"严重"},scanners:{violent:"暴力",non_violent_illegal_acts:"非暴力违法行为",sexual_content_or_sexual_acts:"色情内容或性行为",pii:"个人身份信息",suicide_and_self_harm:"自杀与自残",unethical_acts:"不道德行为",politically_sensitive_topics:"政治敏感话题",copyright_violation:"版权侵犯",jailbreak:"越狱"},scannerDescriptions:{violent:"暴力或暴力威胁",non_violent_illegal_acts:"非暴力违法活动",sexual_content_or_sexual_acts:"色情内容或性行为",pii:"个人身份信息",suicide_and_self_harm:"自杀或自残",unethical_acts:"不道德行为",politically_sensitive_topics:"政治敏感话题",copyright_violation:"版权侵权",jailbreak:"提示注入或越狱尝试"},runtime:{title:"运行概览",description:"显示服务端当前生效状态;未保存的草稿不会改变这些数值。",process:"进程状态",mode:"生效模式",version:"生效 / 期望版本",workers:"活动 / 总 Worker",queue:"活动任务 / 容量",dependencies:"依赖",guardMetrics:"同步 Guard 指标",latest:"最近处理与错误",queueBreakdown:"queued {queued} · processing {processing} · retry {retry} · done {done} · failed {failed}",deliveryTotals:"累计入队 {enqueued} · 丢弃 {dropped} · 处理 {processed} · 失败 {failed}"},metrics:{total:"总计",allowed:"放行",flagged:"标记",blocked:"阻止",unavailable:"不可用",timeouts:"超时",failovers:"故障切换"},pool:{title:"审计池",description:"按顺序使用启用的 OpenAI 兼容节点;探测由服务端真实网络环境发起。",add:"新增节点",edit:"编辑节点",empty:"尚未配置审计节点。",node:"节点",model:"模型",limits:"超时 / 单片上限",credential:"凭据与探测",configured:"API Key 已配置",missing:"未配置 API Key",invali
3d:"API Key 无法解密,请重新输入",probe:"连接测试",probing:"探测中…",probeProgress:"配置校验 ✓ · 请求已发送 · 等待服务响应…",probeResult:"配置校验 ✓ · 请求 ✓ · HTTP {http} · {status} · {latency} ms",name:"节点名称",id:"稳定节点 ID",baseUrl:"Base URL",apiKey:"API Key",keepSecret:"留空以保留已保存的 API Key",reenterSecret:"已保存的 API Key 无法解密(加密密钥已变更),请重新输入",secretHint:"明文只在本次编辑内存中存在;保存成功后会立即清除。",clearSecret:"显式清除已保存的 API Key",timeout:"总超时(毫秒)",inputLimit:"单片 Unicode 字符上限",toggleNode:"切换节点 {name}",deleteConfirm:"从草稿中删除节点“{name}”?保存配置后生效。"},policy:{title:"审计策略",description:"配置适用分组、九类输入风险、Worker 与队列边界。",scope:"适用范围",allGroups:"全部分组",selectedGroups:"指定分组",searchGroups:"搜索分组",noGroups:"没有匹配分组",missingGroups:"配置中包含已删除的分组 ID",selectedCount:"已选择 {count} 个分组",scanners:"Qwen3Guard 输入风险分类",workerCount:"Worker 数量",queueCapacity:"持久队列容量",strategy:"节点策略",strategyHint:"按配置顺序优先尝试,必要时故障切换。"},saveBar:{enabled:"启用提示词审计",blocking:"同步阻止",blockingLatestTurnOnly:"仅审最新输入和上一轮输出",storePass:"保存安全事件",dirty:"有未保存的更改",synced:"配置已同步"},blockingConfirm:{title:"开启同步阻止?",message:"适用请求会在账号选择、计费和访问上游之前等待 Guard。命中 Block、Guard 不可用或响应非法时,请求都不会访问上游。",confirm:"理解风险并开启"},events:{title:"审计事件",description:"按身份、入口、风险、Hash 和时间复核事件,详情中可查看完整提示词。",decision:"判定",risk:"风险等级",endpoint:"入口",groupId:"分组 ID",userId:"用户 ID",apiKeyId:"API Key ID",keyword:"关键词",startAt:"开始时间",endAt:"结束时间",deleteSelected:"删除选中项({count})",deleteByFilter:"按筛选删除",filterDeleteDialogTitle:"按筛选删除审计事件",filterDeleteDialogDesc:"选择删除的时间范围与风险条件后即可执行删除;删除不可恢复。如需提前查看匹配数量,可先获取删除预览。",filterTimeRange:"删除时间范围",filterTimeRangeHint:"将删除所选截止时间之前产生的事件;预览后新产生的事件不受影响。",timePresets:{"1d":"1 天前","7d":"7 天前","30d":"30 天前","90d":"90 天前",all:"全部时间",custom:"自定义范围"},customRangeInvalid:"自定义范围需要有效的开始与结束时间,且开始早于结束。",moreConditions:"更多条件(入口 / 关键词 / 分组 / 用户)",filterDeletePreviewAction:"获取删除预览",filterDeletePreviewing:"正在生成预览…",filterDeleteNeedPreview:"可直接确认删除;如需提前查看匹配数量,可先获取删除预览。",filterDeleteConfirmInvalidRange:"请先选择有效的删除时间范围(自定义范围需开始早于结束)。",filterDeleteConfirmNoMatches:"当前筛选匹配 0 条事件,没有可删除的内容。",selectAll:"选择当前页全部事件",selectEvent:"选择事件 {id}",time:"时间",identity:"用户 / 邮箱 / API Key",user:"用户名",email:"用户邮箱",apiKey:"API Key 名称",group:"分组",route:"入口 / 模型",result:"判定 / 风险",preview:"脱敏预览",empty:"没有符合条件的事件。",passEventsDisabled:"当前未开启“保存安全事件”:安全请求仍会完成审计,但不会出现在事件列表中;Flag 和 Critical 风险事件仍会保存。",openConfiguration:"前往配置",detailTitle:"提示词审计事件详情",tabs:{summary:"审计摘要",risks:"具体风险",technical:"技术信息"},promptFull:"完整提示词(未脱敏)",promptFullHint:"完整提示词已随事件入库,仅供管理员复核触发内容;请按敏感数据妥善处理,切勿外泄。",guardReturn:"模型审计返回",guardReturnHint:"展示 Guard 归一化后的结构化结果(判定、分类、分数与脱敏证据),不含原始响应体。",riskSummaries:"风险摘要",evidence:"脱敏证据",score:"分数",categories:"分类",model:"模型",stage:"请求阶段",noRisks:"本事件没有派生风险摘要。",requestId:"Request ID",promptHash:"Prompt SHA-256",technical:{scanner:"扫描器",policy:"策略",guardEndpoint:"Guard 节点",config:"配置版本",chunks:"分片数",latency:"耗时",protocol:"协议"},deleteConfirmTitle:"删除审计事件?",deleteConfirmMessage:"将永久删除 {count} 条事件及符合条件的孤立任务。",filterDeleteCount:"服务端快照匹配 {count} 条事件。",snapshotMax:"快照最大事件 ID",expiresAt:"确认令牌过期时间",filterDeleteWarning:"只删除预览高水位内的事件;预览后产生的新事件会保留。筛选一旦变化,必须重新预览。",confirmFilterDelete:"确认永久删除"}
3,messages:{saved:"提示词审计配置已保存,明文 API Key 状态已清除。",probeSucceeded:"审计节点连接正常。",deleted:"已删除 {count} 条审计事件。"},errors:{loadConfig:"无法加载提示词审计配置。",loadRuntime:"无法加载提示词审计运行态。",loadGroups:"无法加载分组列表。",loadEvents:"无法加载审计事件。",loadDetail:"无法加载事件详情。",saveConfig:"配置保存失败。",probe:"节点探测失败。",delete:"事件删除失败。",previewDelete:"无法生成删除预览,请检查时间范围。",deleteConfirmation:"删除确认无效或已过期,请重新预览。",prompt_audit_config_conflict:"配置已被其他管理员更新。请重新加载服务端配置,再决定如何合并本地草稿。",prompt_audit_encryption_key_required:"未配置固定加密密钥,审计节点 API Key 将在服务重启后失效。请先设置 TOTP_ENCRYPTION_KEY 环境变量并重启服务。",prompt_guard_requires_audit_enabled:"开启同步阻止前必须先启用提示词审计。",prompt_audit_invalid_endpoint:"审计节点配置无效。",prompt_audit_endpoint_required:"启用审计前至少需要一个启用节点。",prompt_audit_groups_required:"指定分组模式至少需要选择一个分组。",prompt_audit_scanners_required:"至少需要启用一个风险分类。"}},groupMonitor:{title:"站点/分组状态监控(管理员)",description:"全局视角查看各站点实时流量与所有分组的可用性状态",totalGroups:"个分组",noGroups:"暂无分组数据"},siteMonitor:{title:"站点监控",description:"各站点实时请求量、RPM、TPM 与流量拥堵状态",configure:"站点配置",empty:"暂无站点配置。请先在「站点配置」中添加站点域名与服务器带宽。",currentRpm:"当前 RPM",currentTpm:"当前 TPM",avgResponse:"平均响应",traffic:"实时流量",windowRequests:"近 {minutes} 分钟请求量",bandwidth:"带宽",utilization:"带宽占用",bandwidthUnset:"未配置带宽",monthlyTraffic:"本月流量",monthlyUsed:"已用",monthlyLimitUnset:"未设置月流量额度",loadFailed:"站点监控数据加载失败",status:{green:"通畅",yellow:"轻度拥堵",orange:"中度拥堵",red:"严重拥堵",unknown:"未知"}},accountBindings:{title:"账号定向绑定",description:"把账号独占绑定给特定高价值用户,绑定窗口外恢复全员可调度",menuLabel:"定向绑定",accountId:"账号 ID",includeExpired:"包含已过期",create:"新建绑定",recommendUsers:"推荐用户",userId:"用户 ID",group:"作用分组",allGroups:"全部分组",groupHint:"选「全部分组」则在该账号所有分组内独占;选某分组则仅在该分组内独占,其他分组照常全员可用",mode:"模式",modeExclusive:"独占",modePreferred:"优先",timeRange:"起止时间",windows:"每日时段",note:"备注",addWindow:"添加时段",edit:"编辑",editTitle:"编辑绑定 #{id}",editSuccess:"绑定已更新",editFailed:"更新绑定失败",lockedFieldHint:"如需修改请撤销后重建",revoke:"撤销",revokeConfirm:"确认撤销绑定 #{id}?",noBindings:"该账号当前无 active 绑定",recommendationsTitle:"推荐高价值用户(已排除最近 30 天被绑过的)",recommendationsUse:"使用此用户",tier:"Tier",score:"评分",rechargeTotal:"累计充值",rechargeCount:"充值次数",distinctIp:"30d 独立 IP",bindingsForAccount:"账号 #{id} 的定向绑定",selectFromRecommend:"从推荐选择",currentBindings:"当前绑定",cancel:"取消",saving:"保存中…",saveSuccess:"绑定创建成功",saveFailed:"创建绑定失败",revokeSuccess:"已撤销绑定",revokeFailed:"撤销绑定失败",loadFailed:"加载数据失败",email:"邮箱",select:"选择",selectedUser:"已选:{email}",pickerTitle:"选择用户",pickerSearchPlaceholder:"输入邮箱或用户 ID 搜索",pickerNoResult:"没有匹配的用户",pickerNoRecommend:"暂无推荐用户",loading:"加载中…"},userValue:{title:"高价值用户榜",description:"每 6 小时由 user_value_scheduler 自动重算",tier:"Tier",tierAll:"全部",limit:"显示数",refresh:"刷新",recompute:"重算",activeSub:"活跃订阅",ipStability:"IP 稳定性",computedAt:"计算时间",userId:"用户 ID",username:"用户昵称",email:"邮箱",search:"搜索",searchPlaceholder:"用户 ID / 邮箱",score:"评分",rechargeTotal:"累计充值",consumeTotal:"累计消耗",rechargeCount:"充值次数",distinctIp:"30d 独立 IP",actions:"操作",emptyTitle:"暂无用户价值数据",emptyDesc:"系统每 6 小时自动重算榜单;若长期为ç©
3ºï¼Œè¯·ç¡®è®¤å·²æœ‰å……值/订阅/用量数据,或对目标用户手动重算",subscriptionCount:"订阅次数",balance:"剩余余额",subRemaining:"剩余订阅余额",lastRecharge:"最近充值",lastSubscription:"最近订阅",lastActive:"最近使用",detailRecharge:"充值明细",detailSubscription:"订阅明细",detailIp:"IP 明细",detailEmpty:"暂无明细",dOrderNo:"订单号",dAmount:"金额",dStatus:"状态",dMethod:"方式",dTime:"时间",dGroup:"分组",dUsage:"本月用量",dExpires:"到期",dIp:"IP",dCount:"请求数",dLastSeen:"最近时间",detailTruncated:"仅显示最近 {shown} 条,共 {total} 条"},runtimeOverview:{title:"运行态总览",description:"账号定向绑定 + 影子分组毕业状态机的实时快照",bindingsSection:"账号定向绑定",shadowSection:"影子分组运行态",activeBindings:"当前 active 绑定数",activeAccounts:"被绑定的账号数",activeUsers:"被绑定的用户数",modeBreakdown:"按模式分布",mainGroup:"主分组",targetGroup:"目标分组",remark:"规则备注",totalUsers:"总用户",ungraduated:"未毕业",graduated:"已毕业",totalHits:"累计命中",sumAmount:"累计消费 (元)",sumTokens:"累计 Token",lastHit:"最近一次命中",empty:"暂无数据",refresh:"刷新",manageAccounts:"管理账号",viewKpi:"查看转化 KPI",configureRule:"配置规则",graduationRule:"毕业条件",gradAmount:"消费≥{n}元",gradDays:"首次命中后{n}天",gradTokens:"Token≥{n}",graduationHelpDesc:"「毕业」指用户在影子分组累计消费金额、停留天数或 Token 任一超过预设阈值后,自动退出该规则、请求回到主分组路由;「未毕业」即仍在影子分组内被改路由。阈值在主分组的影子规则里配置。",bindingDetails:"绑定明细",showDetails:"查看明细",hideDetails:"收起明细",allGroups:"全部分组",colAccountName:"账号",colUsername:"用户",colEmail:"邮箱",colMode:"模式",colScope:"作用分组",colWindows:"生效时段",colExpiresAt:"到期时间",bindingDetailsEmptyTitle:"暂无绑定明细",bindingDetailsEmptyDesc:"当前没有 active 的定向绑定",bindingsEmptyTitle:"暂无 active 绑定",bindingsEmptyDesc:"在账号管理中对某个账号「更多 → 定向绑定」即可创建定向绑定",shadowEmptyTitle:"暂无影子分组运行数据",shadowEmptyDesc:"影子分组被命中并计费后,这里会显示各规则的累计与毕业情况"},shadowGroupKpi:{title:"影子分组转化率",description:"每日 04:00 由 shadow_group_kpi_scheduler 重算昨日数据",shadowId:"Shadow ID",shadowIdPlaceholder:"选择影子分组",filterByShadow:"影子分组(可选)",allShadows:"全部影子分组",range:"范围",range7d:"7 天",range30d:"30 天",range90d:"90 天",query:"查询",date:"日期",totalHits:"命中数",distinctUsers:"独立用户",bucketA:"A æ¡¶",bucketB:"B æ¡¶",bucketAHelp:"灰度命中、被改路由到影子目标分组的实验组",bucketBHelp:"灰度未命中、仍留在主分组的对照组(按 traffic_percent 分流)",recharge7d:"7d 充值 (人/元)",recharge30d:"30d 充值 (人/元)",graduated:"毕业人数",empty:"暂无 KPI 数据",promptTitle:"请选择影子分组",promptDesc:"从左上方选择一个影子分组并查询,即可查看其每日转化 KPI",emptyTitle:"该影子分组暂无 KPI 数据",emptyDesc:"KPI 每日 04:00 重算昨日数据;新规则需等待命中与重算后才会有数据",noShadowTitle:"暂无影子分组",noShadowDesc:"当前没有被命中过的影子分组;配置并产生命中后即可在此查询"},dashboard:{batchImage:"批量生图",batchImageDesc:"提交任务、复制 Agent 调用说明",groupPricing:"分组定价",groupPricingDesc:"设置批量折扣和冻结比例",title:"管理控制台",description:"系统概览与统计数据",apiKeys:"API 密钥",totalApiKeys:"API 密钥总数",activeApiKeys:"活跃密钥",users:"用户",paidUsers:"付费用户数",paidOverview:{title:"付费概览",empty:"暂无付费数据",viewDetail:"查看明细",usersSection:"付费用户(去重人数)",usersHint:"均为去重人数,同一用户多次支付只计 1 人",coreSection:"核心指标(去重人数)",totalUsers:"总付费用户",totalSubUsers:"总订阅用户",todayNewPaid:"今日新增付费",todayNewSub:"今日新增订阅",convSection:"转化与复购",convRate:"累计转化率",todayConvRate:"今日转化率",todayConvRateHint:"今日新增付费 / 今日新增注册",convRatio:"转化比",convRatioHint:"每 1 位付费用户对应的注册用户数",repurchaseRate:"总复购率",repurchaseUsers:"复购用户",breakdownSection:"用户构成(新购 / 复购)",breakdownHint:"付费 ≥ 2 笔计为复购,助力活动运营决策",rechargeBreakdown:"充值用户",subscriptionBreakdown:"订阅用户",firstTime:"首充",newSub:"新订阅",repurchase:"复购",rechargeUsers:"充值用户",subscriptionUsers:"订阅用户",todayPaid:"今日新增",overlapLabel:"其中既充值又订阅:",overlapUnit:"人",overlapHint:"(重叠人数)",countSection:"付费次数(订单笔数)",countHint:"含重复支付,不去重",rechargeCount:"充值次数",subscriptionCount:"订阅次数",per
3User:"人均 {n} 次",repeatHint:"人均次数 > 1,存在用户重复支付",gotoUserValue:"用户价值榜",gotoRecharge:"充值订单",gotoSubscription:"订阅管理"},perfDialog:{performanceTitle:"实时性能指标",responseTitle:"平均响应时间",performanceHint:"按分钟聚合的实时 RPM / TPM 曲线;可切换到「今天 / 近 N 天 / 自定义区间」并开启环比",responseHint:"按分钟聚合的平均响应时间曲线;可切换固定维度或自定义区间并开启环比",rpm:"RPM(每分钟请求数)",tpm:"TPM(每分钟 Token 数)",rpmHour:"每小时请求数",tpmHour:"每小时 Token 数",rpmDay:"每日请求数",tpmDay:"每日 Token 数",avgResponse:"平均响应(毫秒)",window:"时间窗口",liveWindow:"实时(近 N 分钟)",minutes:"近 {n} 分钟",currentRpm:"当前 RPM",currentTpm:"当前 TPM",currentResponse:"当前平均响应",peakRpm:"峰值 RPM",peakTpm:"峰值 TPM",peakResponse:"峰值响应",peakBandwidth:"峰值带宽",peakAt:"出现于",currentBandwidth:"当前",bandwidth:"带宽",bandwidthChart:"带宽(全站合计,进 + 出)",bandwidthUnavailable:"带宽数据只保留当日的分钟级采集,「实时(近 N 分钟)」与「今天」之外的范围无法统计峰值带宽",comparePeak:"对比峰值",autoRefresh:"自动刷新",rangeHint:"单日按分钟展示,近 14 天内按小时、更长按天;勾选「环比对比」叠加等长窗口曲线",empty:"所选时间窗口内暂无数据",loadFailed:"加载性能数据失败",siteBreakdown:"分站点指标",siteBreakdownHint:"分站点数据取自各站点域名的分钟级采集,仅「实时(近 N 分钟)」与「今天」可用;峰值带宽为窗口内最高的完整分钟,不含进行中的当前分钟",siteCol:"站点",siteWindowRequests:"请求量",siteUtilization:"带宽占用",sitePeakBandwidth:"峰值带宽",siteEmpty:"暂无站点数据。请在「站点配置」中添加站点域名与服务器带宽。"},metricDialog:{viewTrend:"查看趋势",range:"时间范围",today:"今天",yesterday:"昨天",last7d:"近 7 天",last14d:"近 14 天",last30d:"近 1 个月",last90d:"近 3 个月",customDay:"某一天",customRange:"某天到某天",compare:"环比对比",prevDay:"前一天",prevPeriod:"上一周期",currentTotal:"本期合计",compareTotal:"对比合计",peak:"峰值",momChange:"环比",newFromZero:"新增",samePeriodHint:"「今天」按同时段(截至当前小时/分钟)与对比日环比,口径一致",rangeHint:"单日按小时展示,多日按天展示;可勾选「环比对比」做等长区间或单日对比",empty:"所选区间暂无数据",loadFailed:"加载趋势数据失败"},totalUsers:"用户总数",activeUsers:"活跃用户",accounts:"账号",totalAccounts:"账号总数",activeAccounts:"活跃账号",todayRequests:"今日请求",totalRequests:"总请求数",todayCost:"今日消费",totalCost:"总消费",actual:"实际",standard:"标准",accountCost:"成本",todayTokens:"今日 Token",totalTokens:"总 Token",input:"输入",output:"输出",cacheToday:"今日缓存",performance:"性能指标",avgResponse:"平均响应",averageTime:"平均时间",timeRange:"时间范围",granularity:"粒度",day:"按天",hour:"按小时",modelDistribution:"模型分布",groupDistribution:"分组使用分布",metricTokens:"按 Token",metricActualCost:"按实际消费",tokenUsageTrend:"Token 使用趋势",noDataAvailable:"暂无数据",model:"模型",group:"分组",noGroup:"无分组",requests:"请求",tokens:"Token",cache:"缓存",recentUsage:"最近使用",viewModelDistribution:"模型分布",viewSpendingRanking:"用户消费榜",spendingRankingTitle:"用户消费榜",spendingRankingUser:"用户",spendingRankingRequests:"请求",spendingRankingTokens:"Token",spendingRankingSpend:"消费",spendingRankingOther:"其他",spendingRankingUsage:"用量",spendShort:"消费",requestsShort:"请求",tokensShort:"Token",last7Days:"近 7 天",noUsageRecords:"暂无使用记录",startUsingApi:"开始使用 API 后,使用历史将显示在这里。",viewAllUsage:"查看全部",quickActions:"快捷操作",manageUsers:"管理用户",viewUserAccounts:"查看和管理用户账户",manageAccounts:"管理账号",configureAiAccounts:"配置 AI 平台账号",systemSettings:"系统设置",configureSystem:"配置系统设置",failedToLoad:"加载仪表盘数据失败"},userDashboard:{tabs:{overview:"概览",subscriptions:"订阅",affiliate:"分销"},currentSubscriptions:"当前订阅套餐",historySubscriptions:"订阅变更历史",noCurrentSubscriptions:"暂无当前订阅套餐",billingBreakdownTitle:"消耗来源拆分",billingBreakdownToday:"今日",billingBreakdownTotal:"累计",billingBreakdownBalance:"余额扣费",billingBreakdownSubscription:"订阅扣费",noHistorySubscriptions:"暂无订阅历史",noExpiration:"无到期时间",loadSubscriptionsFailed:"加载订阅数据失败",loadSubscriptionHistoryFailed:"加载订阅历史失败",loadInvitesFailed:"加载邀请明细失败",loadCommissionsF
3ailed:"加载佣金明细失败",columns:{plan:"套餐",status:"状态",startedAt:"开始时间",expiresAt:"到期时间",remainingQuota:"剩余额度",eventType:"事件",orderNo:"订单号",statusChange:"状态变化",startedAtChange:"开始时间变化",expiresAtChange:"到期时间变化",createdAt:"记录时间",notes:"备注"},filters:{all:"全部",effective:"有效",pending:"待定",pendingConfirm:"待确认",confirmed:"已确认",allPlans:"全部套餐",orderNoPlaceholder:"输入订单号筛选"},subscriptionStatus:{active:"生效中",expired:"已过期",quotaExhausted:"额度用尽",revoked:"已撤销",upgraded:"已升级"},historyEventType:{purchase:"购买",renewal:"续费",quotaReset:"额度重置",upgrade:"升级",autoExpire:"自动到期",windowReset:"窗口自动重置",transfer:"订阅结转"},timeline:{newSubscription:"新开通",start:"开始",expire:"到期",order:"订单"},affiliate:{totalEarnings:"累计收益",effectiveInvites:"有效邀请",tier:"分销等级",invites:"邀请明细",commissions:"佣金明细",noInvites:"暂无邀请明细",noCommissions:"暂无佣金明细",columns:{invitee:"被邀用户",registeredAt:"注册时间",firstCharge:"首充金额",contributed:"贡献佣金",status:"状态",sourceUser:"来源用户",type:"类型",amount:"金额",rate:"佣金率",createdAt:"时间"},sourceType:{register:"注册",recharge:"充值",subscriptionPurchase:"首购",subscriptionUpgrade:"升级订阅",subscriptionRenewal:"续费",kolBonus:"KOL奖励"}}},backup:{title:"数据库备份",description:"全量数据库备份到 S3 兼容存储,支持定时备份与恢复",s3:{title:"S3 存储配置",description:"配置 S3 兼容存储(支持 Cloudflare R2)",descriptionPrefix:"配置 S3 兼容存储(支持",descriptionSuffix:")",enabled:"启用 S3 存储",endpoint:"端点地址",region:"区域",bucket:"存储桶",prefix:"Key 前缀",accessKeyId:"Access Key ID",secretAccessKey:"Secret Access Key",secretConfigured:"已配置,留空保持不变",forcePathStyle:"强制路径风格",testConnection:"测试连接",testSuccess:"S3 连接测试成功",testFailed:"S3 连接测试失败",saved:"S3 配置已保存"},imageStorage:{title:"异步生图对象存储",description:"开启后,异步生图接口可用,生成结果转存到对象存储,只把短链接写入 Redis。与备份共用同一套 S3 客户端,保存后立即生效,无需重启。",enabled:"启用异步生图",reuseBackupS3:"复用上方备份的 S3 配置(只用不同的存储桶/前缀)",bucket:"存储桶",bucketInherited:"留空则沿用备份存储桶",prefix:"Key 前缀",publicBaseUrl:"公开访问域名",publicBaseUrlPlaceholder:"留空则返回预签名临时链接",presignExpiryHours:"预签名链接有效期(小时)",saved:"异步生图对象存储配置已保存"},schedule:{title:"定时备份",description:"配置自动定时备份",enabled:"启用定时备份",cronExpr:"Cron 表达式",cronHint:'例如 "0 2 * * *" 表示每天凌晨 2 点',retainDays:"备份过期天数",retainDaysHint:"普通备份超过此天数后自动删除,0 = 不按天数清理",retainCount:"最大保留份数",retainCountHint:"最多保留的普通备份数量,0 = 不按份数清理",ordinaryRetention:"普通备份保留",ordinaryHint:"达到任一清理条件时,清理最旧的普通备份;月度归档独立保留。",preview:"保留效果",previewBoth:"最近 {days} 天内最多保留 {count} 份普通备份。",previewDays:"保留最近 {days} 天的普通备份,份数不限。",previewCount:"保留最新 {count} 份普通备份,天数不限。",previewUnlimited:"普通备份不自动清理。",saved:"定时备份配置已保存"},archive:{title:"月度归档",enabled:"启用",dates:"归档日期(可多选)",selectDates:"请至少选择一个归档日期",selectedDates:"已选择 {count} 个日期",day:"{day} 日",monthEnd:"月末",done:"完成",datesHint:"按备份计划的时区与备份开始日期匹配,每个日期归档首份成功的定时备份。",retention:"归档保留方式",count:"归档保留数量",copies:"份",forever:"永久保留",foreverHint:"所有新归档均永久保留;已有永久归档不会因配置变更被自动删除。",countHint:"所有选定日期的非永久归档合计计数,超出时清理最旧归档。",fallbackHint:"当日无成功备份时,顺延至本月下次成功备份;当月没有所选日期时按月末处理,同一份备份只计一份。",independentHint:"归档不额外执行备份,不占普通备份名额;本月无后续成功备份则不归档。",disabledHint:"关闭后停止产生新归档,已有归档继续按原保留方式管理。",invali
3dRetention:"保留天数和份数须为非负整数;非永久归档须填写至少 1 份。",preview:"每月 {dates} 各归档一份,{retention}。",retainLatest:"合计保留最近 {count} 份",badge:"月度归档",deleteConfirm:"这是月度归档备份。确定要解除归档保护并永久删除此备份吗?此操作无法撤销。"},operations:{title:"备份记录",description:"创建手动备份和管理已有备份记录",createBackup:"创建备份",backing:"备份中...",backupCreated:"备份创建成功",expireDays:"过期天数",alreadyInProgress:"已有备份或恢复任务正在进行中",backupRunning:"备份任务仍在执行中",backupFailed:"备份失败",restoreRunning:"恢复任务仍在执行中",restoreFailed:"恢复失败"},columns:{status:"状态",fileName:"文件名",size:"大小",parts:"分卷数",expiresAt:"过期时间",triggeredBy:"触发方式",startedAt:"开始时间",actions:"操作"},status:{pending:"等待中",running:"执行中",completed:"已完成",failed:"失败"},trigger:{manual:"手动",scheduled:"定时"},neverExpire:"永不过期",empty:"暂无备份记录",actions:{download:"下载",downloadParts:"下载分卷",downloadPartsHint:"请按顺序下载全部分卷后拼接 gzip 字节流:Linux/macOS 使用 cat payload.part-* > backup.sql.gz;Windows 使用 copy /b payload.part-000001+payload.part-000002 backup.sql.gz。",partLabel:"第 {index} 卷",downloadFailed:"下载地址为空",restore:"恢复",restoreConfirm:"确定要从此备份恢复吗?这将覆盖当前数据库!",restorePasswordPrompt:"请输入管理员密码以确认恢复操作",restoreSuccess:"数据库恢复成功",deleteConfirm:"确定要删除此备份吗?",deleted:"备份已删除"},r2Guide:{title:"Cloudflare R2 配置教程",intro:"Cloudflare R2 提供 S3 兼容的对象存储,免费额度为 10GB 存储 + 每月 100 万次 A 类请求,非常适合数据库备份。",step1:{title:"创建 R2 存储桶",line1:"登录 Cloudflare Dashboard (dash.cloudflare.com),左侧菜单选择「R2 对象存储」",line2:"点击「创建存储桶」,输入名称(如 sub2api-backups),选择区域",line3:"点击创建完成"},step2:{title:"创建 API 令牌",line1:"在 R2 页面,点击右上角「管理 R2 API 令牌」",line2:"点击「创建 API 令牌」,权限选择「对象读和写」",line3:"建议指定存储桶范围(仅允许访问备份桶,更安全)",line4:"创建后会显示 Access Key ID 和 Secret Access Key",warning:"Secret Access Key 只会显示一次,请立即复制保存!"},step3:{title:"获取 S3 端点地址",desc:"在 R2 概览页面找到你的账户 ID(在 URL 或右侧面板中),端点格式为:",accountId:"你的账户 ID"},step4:{title:"填写以下配置",checkEnabled:"勾选",bucketValue:"你创建的存储桶名称",fromStep2:"第 2 步获取的值",unchecked:"不勾选"},freeTier:"R2 免费额度:10GB 存储 + 每月 100 万次 A 类请求 + 1000 万次 B 类请求,对数据库备份完全够用。"}},dataManagement:{title:"数据管理",description:"统一管理数据管理代理状态、对象存储配置和备份任务",agent:{title:"数据管理代理状态",description:"系统会自动探测固定 Unix Socket,仅在可连通时启用数据管理功能。",enabled:"数据管理代理已就绪,可继续进行数据管理操作。",disabled:"数据管理代理不可用,当前仅可查看诊断信息。",socketPath:"Socket 路径",version:"版本",status:"状态",uptime:"运行时长",reasonLabel:"不可用原因",reason:{DATA_MANAGEMENT_AGENT_SOCKET_MISSING:"未检测到数据管理 Socket 文件",DATA_MANAGEMENT_AGENT_UNAVAILABLE:"数据管理代理不可连通",BACKUP_AGENT_SOCKET_MISSING:"未检测到备份 Socket 文件",BACKUP_AGENT_UNAVAILABLE:"备份代理不可连通",UNKNOWN:"未知原因"}},sections:{config:{title:"备份配置",description:"配置备份源、保留策略与 S3 存储参数。"},s3:{title:"S3 对象存储",description:"配置并测试备份产物上传到标准 S3 对象存储。"},backup:{title:"备份操作",description:"触发 PostgreSQL、Redis 与全量备份任务。"},history:{title:"备份历史",description:"查看备份任务执行状态、错误与产物信息。"}},form:{sourceMode:"源模式",backupRoot:"备份根目录",activePostgresProfile:"当前激活 PostgreSQL 配置",activeRedisProfile:"当前激活 Redis 配置",activeS3Profile:"当前激活 S3 账号",retentionDays:"保留天数",keepLast:"至少保留最近任务数",uploadToS3:"上传到 S3",useActivePostgresProfile:"使用当前激活 PostgreSQL 配置",useActiveRedisProfile:"使用当前激活 Redis 配置",useActiveS3Profile:"使用当前激活账号",idempotencyKey:"幂等键(可选)",secretConfigured:"已配置,留空不变",source:{profileID:"配置 ID(唯一)",profileName:"配置名称",setActive:"创建后立即设为激活配置"},postgres:{title:"PostgreSQL",host:"主机",port:"端口",user:"用户名",password:"密码",database:"数据库",sslMode:"SSL 模式",containerName:"容器名(docker_exec 模式)"},redis:{title:"Redis",addr:"地址(host:port)",username:"用户名",password:"密码",db:"数据库编号",containerName:"容器名(docker_exec 模式)"},s3:{enabled:"启用 S3 上传",profileID:"账号 ID(唯一)",profileName:"账号名称",endpoint:"Endpoint(可选)",region:"Region",bucket:"Bucket",accessKeyID:"Access Key ID",secretAccessKey:"Secret Acce
3ss Key",prefix:"对象前缀",forcePathStyle:"强制 path-style",useSSL:"使用 SSL",setActive:"创建后立即设为激活账号"}},sourceProfiles:{createTitle:"创建数据源配置",editTitle:"编辑数据源配置",empty:"暂无配置,请先创建",deleteConfirm:"确定删除配置 {profileID} 吗?",columns:{profile:"配置",active:"激活状态",connection:"连接信息",database:"数据库",updatedAt:"更新时间",actions:"操作"}},s3Profiles:{createTitle:"创建 S3 账号",editTitle:"编辑 S3 账号",empty:"暂无 S3 账号,请先创建",editHint:"点击“编辑”将在右侧抽屉中修改账号信息。",deleteConfirm:"确定删除 S3 账号 {profileID} 吗?",columns:{profile:"账号",active:"激活状态",storage:"存储配置",updatedAt:"更新时间",actions:"操作"}},history:{total:"共 {count} 条",empty:"暂无备份任务",columns:{jobID:"任务 ID",type:"类型",status:"状态",triggeredBy:"触发人",pgProfile:"PostgreSQL 配置",redisProfile:"Redis 配置",s3Profile:"S3 账号",finishedAt:"完成时间",artifact:"产物",error:"错误"},status:{queued:"排队中",running:"执行中",succeeded:"成功",failed:"失败",partial_succeeded:"部分成功"}},actions:{refresh:"刷新状态",disabledHint:"请先启动 datamanagementd 并确认 Socket 可连通。",reloadConfig:"加载配置",reloadSourceProfiles:"刷新数据源配置",reloadProfiles:"刷新账号列表",newSourceProfile:"新建数据源配置",saveConfig:"保存配置",configSaved:"配置保存成功",testS3:"测试 S3 连接",s3TestOK:"S3 连接测试成功",s3TestFailed:"S3 连接测试失败",newProfile:"新建账号",saveProfile:"保存账号",activateProfile:"设为激活",profileIDRequired:"请输入账号 ID",profileNameRequired:"请输入账号名称",profileSelectRequired:"请先选择要编辑的账号",profileCreated:"S3 账号创建成功",profileSaved:"S3 账号保存成功",profileActivated:"S3 账号已切换为激活",profileDeleted:"S3 账号删除成功",sourceProfileCreated:"数据源配置创建成功",sourceProfileSaved:"数据源配置保存成功",sourceProfileActivated:"数据源配置已切换为激活",sourceProfileDeleted:"数据源配置删除成功",createBackup:"创建备份任务",jobCreated:"备份任务已创建:{jobID}({status})",refreshJobs:"刷新任务",loadMore:"加载更多"}},affiliates:{invitesDescription:"查看全站邀请关系和被邀请用户累计返利",rebatesDescription:"查看每一笔产生返利的充值订单",transfersDescription:"查看返利额度转入账户余额的提取流水",errors:{loadFailed:"加载推广中心记录失败"},records:{search:"搜索",searchPlaceholder:"邮箱、用户名、用户 ID、订单号",startAt:"开始日期",endAt:"结束日期",inviter:"邀请人",invitee:"被邀请人",user:"用户",affCode:"邀请码",order:"订单",totalRebate:"累计返利",orderAmount:"充值金额",payAmount:"支付金额",rebateAmount:"返利金额",paymentType:"支付方式",orderStatus:"订单状态",transferAmount:"提取金额",balanceAfter:"提取后余额",availableQuotaAfter:"提取后可提",frozenQuotaAfter:"提取后冻结",historyQuotaAfter:"提取后历史返利",invitedAt:"邀请时间",rebatedAt:"返利时间",transferredAt:"提取时间"},overview:{title:"用户返利概览",affCode:"邀请码",rebateRate:"返利比例",invitedCount:"邀请人数",rebatedInviteeCount:"已产生返利人数",availableQuota:"可提余额",historyQuota:"历史返利"}},users:{creditLimit:{menuItem:"企业信用额度",title:"企业信用额度",hint:"给企业主账号发放信用上限(USD)。企业可在上限内给子账号分配超支额度。下调不得低于已分配总额。"},title:"用户管理",description:"管理用户账户和权限",createUser:"创建用户",bulkDelete:{action:"批量删除({count})",title:"删除已选用户",confirm:"确定删除已选的 {count} 个用户吗?此操作无法撤销。管理员账号无法删除。",success:"已删除 {count} 个用户",failed:"{count} 个用户删除失败,已保留选中,可重试。"},bulkLimits:{action:"批量设置限制({count})",title:"批量设置用户限制",selectedCount:"已选择 {count} 个用户",selectionLimit:"一次最多选择 {max} 个用户。",selectUser:"选择 {email}",enableConcurrency:"修改并发数",enableRPMLimit:"修改 RPM 限制",unlimited:"不限制",nonNegativeInteger:"请输入非负整数。",apply:"应用限制",applying:"应用中...",concurrencyValue:"并发数:{value}",rpmValue:"RPM:{value}",rpmUnlimitedValue:"RPM:不限制",confirm:`确定覆盖 {count} 个用户的限制吗?
4{fields}`,success:"已更新 {count} 个用户的限制",failed:"批量更新用户限制失败"},editUser:"编辑用户",deleteUser:"删除用户",deleteConfirmMessage:"确定要删除用户 '{email}' 吗?此操作无法撤销。",searchPlaceholder:"邮箱/用户名/备注/API Key 模糊搜索...",searchUsers:"邮箱/用户名/备注/API Key 模糊搜索",roleFilter:"角色筛选",allRoles:"全部角色",allStatus:"全部状态",allGroups:"全部分ç
4»„",searchGroups:"搜索分组...",fuzzySearch:"模糊搜索",apiKeyGroupFilter:"API Key 分组",apiKeyGroupExclusive:"专用分组",apiKeyGroupPublic:"公开分组",apiKeyGroupSubscription:"订阅分组",apiKeyGroupDisabled:"已禁用分组",authorizedGroupFilter:"授权分组",allAuthorizedGroups:"全部授权分组",searchAuthorizedGroups:"搜索授权分组...",allApiKeyGroups:"全部 API Key 分组",searchApiKeyGroups:"搜索 API Key 分组...",statusFilter:"状态筛选",subscriptionGroupFilter:"订阅分组",allSubscriptionGroups:"全部订阅分组",subscriptionStatusFilter:"订阅生效状态",subscriptionStatusAll:"全部订阅状态",subscriptionStatusActive:"生效中",subscriptionStatusInactive:"未生效",allStatuses:"全部状态",batchAssignGroup:"批量分配分组",batchIssueCoupons:"批量发券",batchAssignDialogTitle:"批量分配分组",batchAssignByCurrentFilters:"将按当前筛选条件匹配用户并分配目标分组(例如:筛选“生效中订阅”后批量分配)。",batchAssignTargetGroup:"目标分组",batchAssignTargetPlaceholder:"请选择目标分组",batchAssignNoGroups:"暂无可分配的标准分组",batchAssignConfirm:"确认分配",batchAssigning:"分配中...",batchAssignTargetRequired:"请选择目标分组",batchAssignConfirmAllWarning:"当前未设置任何筛选条件,将对全部用户执行批量分配。是否继续?",batchAssignSuccess:"批量分配完成:匹配 {matched},成功 {assigned},失败 {failed}",batchAssignFailed:"批量分配失败",admin:"管理员",user:"用户",disabled:"禁用",email:"邮箱",password:"密码",username:"用户名",notes:"备注",enterEmail:"请输入邮箱",enterPassword:"请输入密码",enterUsername:"请输入用户名(选填)",enterNotes:"请输入备注(仅管理员可见)",notesHint:"此备注仅对管理员可见",enterNewPassword:"请输入新密码(选填)",leaveEmptyToKeep:"留空则保持原密码不变",generatePassword:"生成随机密码",copyPassword:"复制密码",passwordCopied:"密码已复制",creating:"创建中...",updating:"更新中...",columns:{user:"用户",id:"ID",email:"邮箱",username:"用户名",notes:"备注",role:"角色",groups:"分组",subscriptions:"订阅分组",balance:"余额",balancePlatformQuota:"余额(平台配额)",usage:"用量",usageAnthropic:"用量 (Claude)",usageOpenAI:"用量 (OpenAI)",usageGemini:"用量 (Gemini)",usageAntigravity:"用量 (Antigravity)",concurrency:"并发数",status:"状态",lastActive:"最后活跃时间",lastUsed:"最后使用时间",created:"创建时间",actions:"操作"},today:"今日",total:"近30天",sortBy:"排序方式",sortCurrentPageOnly:"仅对本页数据排序",noSubscription:"暂无订阅",publicGroupCount:"+{count} 公开",exclusiveLabel:"专属",publicLabel:"公开",daysRemaining:"{days}天",expired:"已过期",disable:"禁用",enable:"启用",disableUser:"禁用用户",enableUser:"启用用户",viewApiKeys:"查看 API 密钥",groups:"分组",apiKeys:"API密钥",userApiKeys:"用户 API 密钥",noApiKeys:"此用户暂无 API 密钥",group:"分组",none:"无",groupChangedSuccess:"分组修改成功",groupChangedWithGrant:"分组修改成功,已自动为用户添加「{group}」分组权限",groupChangeFailed:"分组修改失败",noUsersYet:"暂无用户",createFirstUser:"创建您的第一个用户以开始使用系统",userCreated:"用户创建成功",userUpdated:"用户更新成功",userDeleted:"用户删除成功",userEnabled:"用户已启用",userDisabled:"用户已禁用",failedToLoad:"加载用户列表失败",failedToCreate:"创建用户失败",failedToUpdate:"更新用户失败",failedToDelete:"删除用户失败",failedToToggle:"更新用户状态失败",failedToLoadApiKeys:"加载用户 API 密钥失败",deleteConfirm:"确定要删除用户 '{email}' 吗?此操作无法撤销。",roles:{admin:"管理员",user:"用户",operator:"运营"},setRole:{title:"设置用户角色",warningTitle:"高危操作",warningSetOperator:"您即将授予 {email} 运营角色,该用户将获得账号管理页面的完整查看和编辑权限。",warningRevokeOperator:"您即将撤销 {email} 的运营角色,该用户将无法访问账号管理页面。",targetUser:"操作目标",currentRole:"角色变更",operatorPermissions:"运营角色权限范围:",permission1:"可查看和编辑账号管理页面(/admin/accounts)",permission2:"不具备用户管理、系统设置等其他管理员权限",adminPasswordLabel:"管理员登录密码",adminPasswordPlaceholder:"请输入您的登录密码进行验证",adminPasswordHint:"需输入当前管理员账号的登录密码以确认此高危操作",confirm:"确认执行",setOperator:"设置运营角色",revokeOperator:"撤销运营角色",successSetOperator:"已成功授予 {email} 运营角色",successRevokeOperator:"已成功撤销 {email} 的运营角色",errorWrongPassword:"管理员密码验证失败,请重新输入",errorNoPermission:"您没有权限执行此操作,仅特定管理员账号可设置运营角色",errorFailed:"设置角色失败,请稍后重试"},forceMergeWeChat:{menu:"强制合并到邮箱…",title:"强制合并合成微信账号",description:"将合成微信账号 {email} 合并到目标邮箱账号。系统会把当前微信 openid 改绑到目标邮箱账号,原合成账号会被停用。",warning:"此操作会跳过常规的「初始状态」校验。原合成账号上的余额、订阅、用量记录不会迁移,将随账号停用而不可访问。请确认对方资产可以放弃。",targetEmail:"目标邮箱",targetEmailPlaceholder:"已注册并未绑定其他微信的邮箱账号",adminPassword:"管理员登录密码",adminPasswordPlaceholder:"请输入您的登录密码以确认此高危操作",adminPasswordHint:"需输入当前管理员账号的登录密码以确认;操作会写入审计日志",confirm:"确认强制合并",merging:"合并中…",success:"已强制合并微信账号",failed:"强制合并失败,请稍后重试"},form:{emailLabel:"邮箱",emailPlaceholder:"请输入邮箱",usernameLabel:"用户名",usernamePlaceholder:"请输入用户名(选填)",notesLabel:"备注",notesPlaceholder:"请输入备注(仅管理员可见)",notesHint:"此备注仅对管理员可见",passwordLabel:"密码",passwordPlaceholder:"请输入密码(留空则不修改)",roleLabel:"è
4§’色",selectRole:"选择角色",balanceLabel:"余额",concurrencyLabel:"并发数",statusLabel:"状态",selectStatus:"选择状态",rpmLimit:"每分钟请求数 (RPM)",rpmLimitPlaceholder:"0 表示不限制",rpmLimitHint:"该用户每分钟最大请求数,0 = 不限制;仅在所用分组未设置 rpm_limit 时作为兜底生效"},adjustBalance:"调整余额",adjustConcurrency:"调整并发数",adjustmentAmount:"调整金额",adjustmentAmountHint:"正数增加,负数减少",currentBalance:"当前余额",currentConcurrency:"当前并发数",saving:"保存中...",noUsers:"暂无用户",noUsersDescription:"创建您的第一个用户以开始使用系统。",userCreatedSuccess:"用户创建成功",userUpdatedSuccess:"用户更新成功",userDeletedSuccess:"用户删除成功",balanceAdjustedSuccess:"余额调整成功",concurrencyAdjustedSuccess:"并发数调整成功",failedToSave:"保存用户失败",failedToAdjust:"调整失败",emailRequired:"请输入邮箱",concurrencyMin:"并发数不能小于1",amountRequired:"请输入有效金额",insufficientBalance:"余额不足",setAllowedGroups:"设置允许分组",allowedGroupsHint:"选择此用户可以使用的标准分组。订阅类型分组请在订阅管理中配置。",noStandardGroups:"暂无标准分组",allowAllGroups:"允许全部分组",allowAllGroupsHint:"用户可以使用任何非专属分组",allowedGroupsUpdated:"允许分组更新成功",failedToLoadGroups:"加载分组列表失败",failedToUpdateAllowedGroups:"更新允许分组失败",groupConfig:"用户分组配置",groupConfigHint:"为用户 {email} 配置专属分组倍率(覆盖分组默认倍率)",exclusiveGroups:"专属分组",publicGroups:"公开分组(默认可用)",restrictPublicGroups:"限制可访问的公开分组",restrictPublicGroupsHint:"开启后,该用户仅能使用下方勾选的公开分组;关闭则可使用全部公开分组。",publicGroupsRestricted:"公开分组(已限制)",defaultRate:"默认倍率",customRate:"专属倍率",useDefaultRate:"使用默认",customRatePlaceholder:"留空使用默认",groupConfigUpdated:"分组配置更新成功",replaceGroup:"替换分组",clickToReplace:"点击替换分组",replaceGroupTitle:"替换专属分组",replaceGroupHint:"选择新分组替换「{old}」,将自动迁移绑定的 Key 并更新分组权限",replaceGroupConfirm:"确认替换",replaceGroupSuccess:"分组替换成功,已迁移 {count} 个 Key",selectNewGroup:"请选择目标分组",noOtherGroups:"没有其他可用的专属分组",deposit:"充值",withdraw:"退款",depositAmount:"充值金额",withdrawAmount:"退款金额",withdrawAll:"全部",depositNotesPlaceholder:"例如:新用户注册奖励、活动充值、补偿充值等",withdrawNotesPlaceholder:"例如:服务问题退款、错误充值退回、账户注销退款等",notesOptional:"备注为可选项,有助于未来查账",amountHint:"请输入正数金额",newBalance:"操作后余额",depositing:"充值中...",withdrawing:"退款中...",confirmDeposit:"确认充值",confirmWithdraw:"确认退款",depositSuccess:"充值成功",withdrawSuccess:"退款成功",failedToDeposit:"充值失败",failedToWithdraw:"退款失败",useDepositWithdrawButtons:"请使用充值/退款按钮调整余额",balanceHistory:"充值记录",balanceHistoryTip:"点击查看充值记录",columnAlwaysVisible:"该列固定显示,不可隐藏",platformBreakdown:"按平台拆分",platformBreakdownEmpty:"暂无平台明细",platformBreakdownHint:"悬浮查看各平台用量",platformOther:"其他",balanceHistoryTitle:"用户充值和并发变动记录",noBalanceHistory:"暂无变动记录",allTypes:"全部类型",typeBalance:"余额(兑换码)",typeAffiliateBalance:"余额(返利转入)",typeAdminBalance:"余额(管理员调整)",typeWechatRecharge:"余额(微信充值)",typeConcurrency:"并发(兑换码)",typeAdminConcurrency:"并发(管理员调整)",typeSubscription:"订阅",failedToLoadBalanceHistory:"加载余额记录失败",createdAt:"创建时间",totalRecharged:"总充值",balanceLots:"余额批次",balanceLotsTitle:"用户余额批次明细",noBalanceLots:"暂无余额批次记录",balanceLotActive:"有效",balanceLotDepleted:"已用完",balanceLotExpired:"已过期",balanceLotExpiresAt:"过期时间",balanceLotExpiredAt:"过期于",balanceLotSourceRecharge:"充值",balanceLotSourceRedeem:"兑换码",balanceLotSourcePromo:"优惠码",balanceLotSourceAdjust:"管理员调整",balanceLotSourceMigration:"历史迁移",balanceLotSourceSubTransfer:"订阅结转",balanceLotAdjustExpiry:"延期/减期",balanceLotAdjustExpiryDays:"调整天数",balanceLotAdjustExpiryHint:"正数延长、负数缩短;缩短到过去的时间将在下个整点被系统清零",balanceLotExtend:"延长",balanceLotShorten:"缩短",balanceLotNewExpiry:"调整后过期时间",balanceLotAdjustExpirySuccess:"批次过期时间已更新",balanceLotAdjustExpiryFailed:"调整批次过期时间失败",filterSettings:"筛选设置",columnSettings:"列设置",filterValue:"输入值",attributes:{title:"用户属性配置",description:"配置用户的自定义属性字段",configButton:"属性配置",addAttribute:"添加属性",editAttribute:"编辑属性",deleteAttribute:"删除属性",deleteConfirm:"确定要删除属性 '{name}' 吗?所有用户的该属性值将被删除。",noAttributes:"暂无自定义属性",noAttributesHint:"点击上方按钮添加自定义属性",key:"属性键",keyHint:"用于程序引用,只能包含字母、数字和下划线",name:"显示名称",nameHint:"在表单中显示的名称",type:"属性类型",fieldDescription:"描述",fieldDescriptionHint:"属性的说明文字",placeholder:"占位符",placeholderHint:"输入框的提示文字",required:"必填",enabled:"启用",options:"选项配置",optionsHint:"用于单选/多选类型",addOption:"添加选项",optionValue:"选项值",optionLabel:"显示文本",validation:"验证规则",minLength:"最小长度",maxLength:"最大长度",min:"最小值",max:"最大值",pattern:"正则表达式",patternMessage:"验证失败提示",types:{text:"单行文本",textarea:"多行文本",number:"数字",email:"邮箱",url:"链接",date:"日期",select:"单选",multi_select:"多选"}
4,created:"属性创建成功",updated:"属性更新成功",deleted:"属性删除成功",reordered:"属性排序更新成功",failedToLoad:"加载属性列表失败",failedToCreate:"创建属性失败",failedToUpdate:"更新属性失败",keyRequired:"请输入属性键",nameRequired:"请输入显示名称",optionsRequired:"请至少添加一个选项",failedToDelete:"删除属性失败",failedToReorder:"更新排序失败",keyExists:"属性键已存在",dragToReorder:"拖拽排序"},platformQuota:{menuItem:"平台限额",title:"平台限额",subtitle:"为用户 {email} 配置各上游平台的日 / 周 / 月用量上限",columns:{platform:"平台",daily:"日 (USD)",weekly:"周 (USD)",monthly:"月 (USD, 30天滚动)",usage:"当前用量"},placeholder:"不限制",save:"保存",saving:"保存中...",cancel:"取消",clearAll:"全部清空(取消所有限额)",clearAllConfirm:'确认清空全部平台的日 / 周 / 月限额?所有平台将变为"无限额",本地无法撤销,需要在保存前手动重填。',reset:{button:"重置该窗口",unavailable:"该平台未配置限额,没有可重置的用量窗口",confirm:"确认重置该用户 {platform} 平台的 {window} 用量?此操作立即生效。",success:"已重置 {platform} {window} 用量",failed:"重置失败"},updateSuccess:"平台限额已更新",updateFailed:"保存失败",loadFailed:"加载失败",hint:"留空 = 不限制该窗口。",windowDaily:"日",windowWeekly:"周",windowMonthly:"月",cellNotConfigured:"未配置",cellColumnTooltip:"仅展示已设限额的平台",subscriptionWarning:"此用户有活跃订阅,平台限额仅在余额(标准)模式下生效,订阅模式请求不受此限额约束。",invalidNumber:"以下字段填写不是合法数字,请修正后再保存:{fields}"},modelConcurrency:{menuItem:"模型并发",title:"用户 × 模型限速",subtitle:"为用户 {email} 配置指定模型的并发上限和每分钟请求上限。空规则 = 不启用叠加闸门,仅受用户总并发约束。",hint:"并发超出排队等待,不会先 429。每分钟请求上限超出则直接 429。留空或填 0 表示不限制次数。通配符只允许末尾 *,例如 gpt-5.6-* 。精确匹配优先于更长的通配。此配置不影响用户总并发(users.concurrency)。",columns:{pattern:"模型 / 通配",max:"并发上限",rpm:"每分钟请求上限"},patternPlaceholder:"gpt-5.6-luna",maxPlaceholder:"20",rpmPlaceholder:"不限制",add:"添加规则",remove:"删除",empty:"暂无规则。保存空列表即关闭该用户的模型叠加闸门。",save:"保存",saving:"保存中...",cancel:"取消",updateSuccess:"模型限速已更新",updateFailed:"保存失败",loadFailed:"加载失败",patternRequired:"请填写模型名称或通配规则",invalidMax:"{pattern} 的并发上限必须是 1–10000 的整数",invalidRPM:"{pattern} 的每分钟请求上限必须是 0–100000 的整数,0 表示不限制"}},groups:{videoPricing:{title:"视频生成计费",description:"配置 Grok 视频生成的每秒单价(USD/秒),留空则使用官方默认每秒价(各分辨率同价:grok-imagine-video $0.05/s,grok-imagine-video-1.5 $0.08/s)",independentMultiplier:"视频倍率独立",videoMultiplier:"视频独立倍率",modeHint:"视频按秒计费:费用 = 每秒价格 × 时长(1-15 秒,未指定默认 8 秒)。默认叠加当前分组有效倍率;开启独立倍率后改用视频独立倍率。",finalPricePreview:"最终每秒价格预览",notConfigured:"未配置"},webSearchPricing:{title:"Codex 网页搜索计费",pricePerCall:"搜索单次价格(USD/次)",pricePerCallHint:"留空使用默认价 $0.01/次(官方定价 $10/1000 次);填 0 表示免费。实际扣费会叠加分组费率倍数。",finalPricePreview:"应用当前倍率后的单次价格:{price}"},modelPricing:{title:"分组逐模型定价",description:"匹配模型后覆盖渠道和内置价格。长上下文阶梯沿用官方/预设价卡,无需再手填区间。音频可用按次层级配置 realtime、tts、stt。",add:"添加模型价格",tooltip:"为当前分组单独设置模型单价。命中规则的模型会覆盖渠道价和系统内置价;未命中的模型仍走原有价格。适合给个别贵价或促销模型单独调价。",longContext:"启用长上下文阶梯定价",longContextHint:"勾选后按渠道区间或官方预设阶梯计费;关闭后默认按第一档,账号显式开启时除外。",longContextTooltip:"部分模型在超长上下文时会上浮单价。开启后按官方或渠道阶梯加价;关闭后一律按第一档计费,除非该账号单独开启了长上下文计费。"}
4,title:"分组管理",description:"管理 API 密钥分组和费率配置",searchGroups:"搜索分组...",createGroup:"创建分组",editGroup:"编辑分组",deleteGroup:"删除分组",duplicate:"复制",duplicating:"复制中",duplicateSuccess:"分组已复制为「{name}」,已默认停用,请确认配置后再启用",duplicateFailed:"复制分组失败",sortOrder:"排序",columnSettings:"列设置",sortOrderHint:"拖拽分组调整显示顺序,排在前面的分组会优先显示",sortOrderUpdated:"排序已更新",failedToUpdateSortOrder:"更新排序失败",deleteConfirm:"确定要删除分组 '{name}' 吗?所有关联的 API 密钥将不再属于任何分组。",deleteConfirmSubscription:"确定要删除订阅分组 '{name}' 吗?此操作会让所有绑定此订阅的用户的 API Key 失效,并删除所有相关的订阅记录。此操作无法撤销。",columns:{name:"名称",id:"ID",platform:"平台",rateMultiplier:"费率倍数",rpmOverride:"RPM 覆盖",rpmOverrideHint:"该用户在此分组的 RPM 上限;留空 = 使用分组默认;0 = 不限制",rateDefault:"默认",rpmDefault:"默认",exclusive:"独占",type:"类型",showOnHome:"首页",priority:"优先级",apiKeys:"API 密钥数",accounts:"账号数",capacity:"容量",usage:"用量",status:"状态",actions:"操作",billingType:"计费类型",userName:"用户名",userEmail:"邮箱",userNotes:"备注",userStatus:"状态"},form:{name:"名称",description:"描述",platform:"平台",rateMultiplier:"费率倍数",status:"状态",exclusive:"专属分组",nameLabel:"分组名称",namePlaceholder:"请输入分组名称",descriptionLabel:"描述",descriptionPlaceholder:"请输入描述(可选)",rateMultiplierLabel:"费率倍数",rateMultiplierHint:"1.0 = 标准费率,0.5 = 半价,2.0 = 双倍",rpmLimit:"每分钟请求数 (RPM)",rpmLimitPlaceholder:"0 表示不限制",rpmLimitHint:"每用户在本分组每分钟最大请求数,0 = 不限制;一旦设置即接管该用户的限流(覆盖用户级 rpm_limit)",servingSite:"服务站点",servingSitePlaceholder:"primary",servingSiteHint:"多站部署:primary=主站;填写 edge 站的 site.name(如 edge-107)后该分组只由对应站点调度,用户须使用该站点的接入域名",maxReasoningEffort:"推理强度上限",maxReasoningEffortUnlimited:"不限制(跟随请求)",maxReasoningEffortHint:"仅限制客户端主动请求的 Anthropic/OpenAI 推理强度;Composite 分组按实际目标平台生效。不会为缺省请求主动开启推理。上限优先级高于推理强度映射。",maxReasoningEffortOverLimit:"超限访问控制",maxReasoningEffortOverLimitDowngrade:"超过上限时自动降档",maxReasoningEffortOverLimitDeny:"拒绝访问",maxReasoningEffortOverLimitHint:"设置上限后生效。自动降档会将超过上限的请求改写为上限值后转发;拒绝访问则直接返回错误。",reasoningEffortMappings:"推理强度映射",reasoningEffortMappingsHint:"类型和模型均可留空,表示匹配全部模型。同一类型和模型下可添加多条请求值映射,例如前缀 gpt 同时将 high、xhigh 转到 medium。转发值可选拒绝,命中对应请求值时直接返回错误。精确优先于前后缀,更长前后缀优先。",addReasoningEffortMapping:"添加映射",addReasoningEffortPair:"添加请求值",removeReasoningEffortMapping:"删除映射",removeReasoningEffortPair:"删除请求值",reasoningEffortMatchType:"类型",reasoningEffortModel:"模型",reasoningEffortMatchExact:"精确",reasoningEffortMatchPrefix:"前缀",reasoningEffortMatchSuffix:"后缀",reasoningEffortMatchTypePlaceholder:"全匹配",reasoningEffortModelPlaceholder:"留空则全部 / gpt / gpt-5.4",reasoningEffortFrom:"请求值",reasoningEffortTo:"转发值",reasoningEffortToDeny:"拒绝",reasoningEffortFromPlaceholder:"请选择 A",reasoningEffortToPlaceholder:"请选择 B",fromRequired:"请选择请求值 A",toRequired:"请选择转发值 B",unsupportedFrom:"请求值不受当前平台支持",unsupportedTo:"转发值不受当前平台支持",unsupportedMatchType:"匹配类型仅支持精确、前缀或后缀",duplicateFrom:"同一模型范围内请求值不能重复",duplicateScope:"类型和模型组合不能重复",exclusiveLabel:"专属分组",exclusiveHint:"专属分组,可以手动指定给用户",platformLabel:"平台限制",platformPlaceholder:"选择平台(留空则不限制)",accountsLabel:"指定账号",accountsPlaceholder:"选择账号(留空则不限制)",priorityLabel:"优先级",priorityHint:"数值越小优先级越高,用于账号调度",statusLabel:"状态"},exclusiveObj:{yes:"是",no:"否"},exclusive:"专属",exclusiveHint:"专属分组,可以手动指定给特定用户",exclusiveTooltip:{title:"什么是专属分组?",description:"开启后,用户在创建 API Key 时将无法看到此分组。只有管理员手动将用户分配到此分组后,用户才能使用。",example:"使用场景:",exampleContent:"公开分组费率 0.8,您可以创建一个费率 0.7 的专属分组,手动分配给 VIP 用户,让他们享受更优惠的价格。"},rateMultiplierHint:"1.0 = 标准费率,0.5 = 半价,2.0 = 双倍",platforms:{all:"全部平台",anthropic:"Anthropic",openai:"OpenAI",gemini:"Gemini",antigravity:"Antigravity",grok:"Grok",kimi:"Kimi",zhipu:"Zhipu GLM",deepseek:"DeepSeek",minimax:"MiniMax",opencode_go:"OpenCode",composite:"Composite"},saving:"保存中...",noGroups:"暂无分组",noGroupsDescription:"创建分组以更好地管理 API 密钥和费率。",groupCreatedSuccess:"分组创建成功",groupUpdatedSuccess:"分组更新成功",groupDeletedSuccess:"分组删除成功",failedToLoad:"加载分组列表失败",failedToSave:"保存分组失败",failedToDelete:"删除分组失败",allPlatforms:"全部平台",allStatus:"全部状态",allGroups:"全部分ç
4»„",accountsAvailable:"可用账号",accountsRateLimited:"限流账号",accountsTotal:"总账号",accountsUnit:"个",accountsModalTitle:"分组账号列表",accountsModalSubtitle:"{name} · 共 {count} 个账号",accountsModalEmpty:"该分组下暂无账号",accountsModalSelected:"已选择 {count} 个账号",accountsModalSelectCurrentPage:"选择当前页账号",accountsModalSelectAccount:"选择账号 {name}",accountsModalRemoveBtn:"移除",accountsModalRemoveConfirmTitle:"从分组移除账号",accountsModalRemoveConfirmText:"确定将账号「{name}」从分组「{group}」中移除吗?账号本身不会被删除,仅解除绑定关系。",accountsModalRemoveSuccess:"已从分组中移除账号",accountsModalRemoveFailed:"移除失败",accountsModalBulkRemoveBtn:"批量移除",accountsModalBulkRemoveConfirmTitle:"批量移除账号",accountsModalBulkRemoveConfirmText:"确定将选中的 {count} 个账号从分组「{group}」中移除吗?账号本身不会被删除,仅解除绑定关系。",accountsModalBulkRemoveSuccess:"已从分组中移除 {count} 个账号",accountsModalBulkRemovePartial:"已移除 {success} 个账号,{failed} 个移除失败",accountsModalBulkRemoveNoSelection:"请先选择要移除的账号",accountsModalSearch:"搜索账号名称...",accountsModalViewTip:"点击查看分组内账号",usageToday:"今日",usageYesterday:"昨日",usageTotal:"累计",exclusiveFilter:"专属",nonExclusive:"公开",public:"公开",rateAndAccounts:"{rate}x 费率 · {count} 个账号",accountsCount:"{count} 个账号",rateLabel:"倍率",accountFilters:{title:"账号过滤控制",oauthOnly:"仅允许 OAuth 账号",oauthOnlyEnabled:"已启用 — 排除 API Key 类型账号",privacySetOnly:"仅允许隐私保护已设置的账号",privacySetOnlyEnabled:"已启用 — Privacy 未设置的账号将被排除",disabled:"未启用"},enterGroupName:"请输入分组名称",optionalDescription:"可选描述",platformHint:"选择此分组关联的平台",showOnHome:"首页展示",showOnHomeHint:"在首页价格区展示该分组",homeDisplayPlatforms:"首页展示平台",homeDisplayPlatformsHint:"勾选该分组在哪些 tab 出现;都不勾时沿用「平台」字段(platform=all 会同时出现在三个 tab)",homeDisplayCnyPerUsd:"首页展示汇率(¥/$)",homeDisplayCnyPerUsdHint:"仅余额计费分组需要填,对外展示「实际多少元 1 美元」。订阅套餐留空,系统会自动按套餐价÷额度计算;改套餐价首页自动跟随",allowedDomains:{title:"可见站点",hint:"留空 = 对全部站点开放。配置后该分组仅在所列域名的站点可见/可购买/可绑定/可兑换;已绑定的 API Key 与已购订阅不受影响,网关 API 请求也不受限制。",inputPlaceholder:"输入域名回车添加,或从站点配置候选中选择",emptySelection:"未限制站点(对全部站点开放)"},allPlatform:{platformHint:"全平台分组用于订阅售卖和统一计费,不直接承载运行时账号。",runtimeNotice:"全平台分组不会出现在 API Key 可绑定分组中,也不应复制运行时账号或承载平台专属调度配置。",subscriptionHint:"全平台分组必须使用“订阅(配额)”计费。",platformPriority:"平台调度优先级",platformPriorityHint:"当模型可由多个平台账号提供时,系统会优先尝试列表靠前的平台。",platformPriorityPerPlatformHint:"每个平台可独立开启:开启后,该平台家族的模型(按模型名前缀归属)按本列表从上到下的顺序跨平台调度,从排最前的平台开始尝试(即使是默认顺序也生效);关闭则该家族不应用平台优先级,沿用按模型名前缀的路由。未识别前缀的模型在任一平台开启时按顺序调度。",platformPriorityRowOn:"已开启:{family}按本列表从上到下的顺序跨平台调度,当前最先尝试 {first}",platformPriorityRowOff:"已关闭:{family}沿用按模型名前缀的路由",platformPriorityFamily:{openai:"GPT 家族模型(gpt-* / chatgpt-* / codex-* / o1 / o3 / o4)",anthropic:"Claude 家族模型(claude-*)",gemini:"Gemini 家族模型(gemini-*)"},platformPriorityGrokNote:"grok-* 模型始终只落 Grok 账号,非 grok 模型也永远不会落 Grok 账号,双向硬隔离,不受开关与排序影响。",platformPriorityAntigravityNote:"无自有模型家族;作为 Claude/Gemini 家族的溢出候选按此排序参与调度。"},platformNotEditable:"创建后不可更改平台",platformEditWarning:"更改平台可能影响路由和计费行为,请谨慎操作",noGroupsYet:"暂无分组",createFirstGroup:"创建æ
4‚¨çš„第一个分组来组织 API 密钥。",creating:"创建中...",updating:"更新中...",limitDay:"日",limitWeek:"周",limitMonth:"月",groupCreated:"分组创建成功",groupUpdated:"分组更新成功",groupDeleted:"分组删除成功",failedToCreate:"创建分组失败",failedToUpdate:"更新分组失败",nameRequired:"请输入分组名称",rateMultipliers:"专属倍率",rateMultipliersTitle:"分组专属倍率管理",addUserRate:"添加用户专属倍率",rpmOverrides:"专属 RPM",rpmOverridesTitle:"分组专属 RPM 管理",addUserRpm:"添加用户专属 RPM",noRpmOverrides:"暂无用户设置了专属 RPM",rpmSaved:"专属 RPM 已保存",groupRpmDefault:"分组默认 RPM",searchUserPlaceholder:"搜索用户邮箱...",noRateMultipliers:"暂无用户设置了专属倍率",rateUpdated:"专属倍率已更新",rateDeleted:"专属倍率已删除",rateAdded:"专属倍率已添加",clearAll:"全部清空",confirmClearAll:"确定要清空该分组所有用户的专属倍率设置吗?此操作不可撤销。",rateCleared:"已清空所有专属倍率",batchAdjust:"批量调整倍率",multiplierFactor:"乘数",applyMultiplier:"应用",rateAdjusted:"倍率已批量调整",rateSaved:"专属倍率已保存",finalRate:"最终倍率",unsavedChanges:"有未保存的修改",revertChanges:"撤销修改",userInfo:"用户信息",subscription:{title:"订阅设置",type:"计费类型",typeHint:"标准计费从用户余额扣除。订阅模式使用配额限制。",typeNotEditable:"分组创建后无法修改计费类型。",standard:"标准(余额)",subscription:"订阅(配额)",billingBinding:"计费包月分组(可多选)",billingBindingHint:"可跨平台同时绑定多个包月分组;命中任一有效订阅即按包月额度计费。",noBillingBinding:"不绑定(按余额计费)",billingBindingShort:"绑定包月:{name}",dailyLimit:"每日限额(USD)",weeklyLimit:"每周限额(USD)",monthlyLimit:"每月限额(USD)",defaultValidityDays:"默认有效期(天)",validityHint:"分配给用户时订阅的有效天数",noLimit:"无限制",allowCarryover:"允许用户结转",allowCarryoverHint:"勾选后,用户可以将此订阅分组的剩余额度结转到新订阅"},purchasable:{enable:"允许用户自助购买",enableHint:'启用后,用户可在"我的订阅"页面直接购买此套餐',price:"价格(人民币)",pricePlaceholder:"请输入价格,如 399",displayOrder:"显示顺序",displayOrderHint:"数值越小越靠前显示(0 最前;同前缀套餐会排在同一组内)",displayName:"购买页展示名",displayNamePlaceholder:"如:基础套餐、企业套餐(留空用默认名)",displayNameHint:"覆盖购买页卡片标题;留空时回落到默认档位名(基础/标准/进阶套餐…)",displayTag:"购买页标签",displayTagPlaceholder:"如:轻度使用、团队首选(留空用默认标签)",displayTagHint:"覆盖购买页卡片左上角角标;留空时回落到默认档位标签(入门使用/重度使用…)。注意:这不是「购买前条款」——条款只在点立即开通后的确认弹窗里展示。",description:"购买页描述",descriptionPlaceholder:"展示给用户的套餐说明(可选)",dailySaleLimit:"每日开放名额",dailySaleLimitPlaceholder:"0 表示不限量",dailySaleLimitHint:"用于控制当天最多可下单的名额,售罄后前台会展示“明天再来”提示",purchaseTerms:"购买前条款",purchaseTermsPlaceholder:"留空则使用系统默认文案,可按套餐补充特殊说明",purchaseTermsHint:"建议用清晰、克制的说明减少误解,不建议写成强硬警告",upgradeValueMode:{title:"升级抵扣规则",time:"按剩余时间折算",quota:"按剩余额度折算",hints:{time:"适合按有效期衰减价值的套餐,升级时按剩余天数比例折算。",quota:"适合总月额度套餐,升级时按剩余可用额度比例折算。"}},upgradeEnabled:{title:"允许升级抵扣",hints:{enabled:"开启后,用户已有同系列低档位订阅时,可按当前规则抵扣剩余价值升级。注意:同系列的每个档位分组都需要开启此开关。",disabled:"关闭后,不提供升级抵扣;用户如需更高档位,应直接购买新套餐。"}},upgradeSeriesKey:{title:"升级系列标识",placeholder:"如 gptpro(留空则按名称等启发式匹配)",hint:"同ç
4³»åˆ—各档位填写相同标识即可互相升级,不再要求名称/折算模式/有效期完全一致。留空沿用旧的自动匹配。"},renewEnabled:{title:"允许续费",hint:"开启后,已订阅用户可提前续费:续费价 = 套餐价 − 剩余价值(额度优先折算,额度用尽剩余价值为 0),支付后从当天重新起算 30 天、额度满额重置。"},renewQuotaThreshold:{title:"剩余额度门槛(USD)",hint:"月剩余额度 ≤ 该值时才展示续费入口;留空表示不启用此门槛。"},renewDaysThreshold:{title:"剩余天数门槛(天)",hint:"剩余天数 ≤ 该值时才展示续费入口;留空表示不启用此门槛。两个门槛任一满足即可续费,均留空则随时可续费。"},renewThresholdPlaceholder:"留空 = 不启用",saleAudience:{title:"开放购买对象",allUsers:"面向所有用户",existingSubscribers:"仅已包月过的用户",activeSubscribers:"仅当前有效包月用户",specificUsers:"指定特定用户",searchPlaceholder:"按用户 ID / 邮箱 / 昵称搜索",selectedCount:"已选 {count} 人",emptySelection:"尚未选择用户,搜索并点击添加",loadFailed:"指定用户名单加载失败,请重试后再保存,以免误清空名单",notReadyKept:"指定用户名单未成功加载,已跳过该项以保留原有名单;其余修改已保存",hints:{all_users:"任何已登录用户都能看到并购买该套餐。",existing_subscribers:"适合老客专享、续费专享或内测返场场景。",active_subscribers:"适合升级档位、加价购或仅面向当前订阅用户开放。",specific_users:"仅下方名单中的用户能在购买页看到并购买该套餐,其他用户与访客均不可见。"}}},imagePricing:{allowBatchImageGeneration:"允许当前分组批量生图",batchDiscountMultiplier:"批量生图折扣倍率",batchHoldMultiplier:"批量冻结价格比例",batchSectionHint:"批量生图仅影响批量任务:结算价格会叠加批量折扣倍率,提交时冻结金额按普通生图原价 × 批量冻结价格比例计算。参考图也会产生上游输入 token 消耗,建议批量生图折扣倍率设置大于 0.5。",batchDisabledHint:"请先开启当前分组生图,才能开启批量生图。",batchGeminiOnlyHint:"批量生图当前仅支持 Gemini 分组。",title:"图片生成计费",description:"配置图片生成能力和图片基础单价,留空则使用默认价格",allowImageGeneration:"允许当前分组生图",independentMultiplier:"生图倍率独立",imageMultiplier:"生图独立倍率",modeHint:"默认关闭独立倍率时,图片费用 = 图片价格 × 当前分组有效倍率;开启独立倍率后,图片费用 = 图片价格 × 生图独立倍率。",finalPricePreview:"最终单张价格预览",notConfigured:"未配置"},peakRate:{enable:"启用高峰倍率",peakStart:"高峰开始",peakEnd:"高峰结束",peakMultiplier:"高峰倍率",multiplierHint:"作用于 token 计费倍率;token 计费的图片 token 同样适用,0 表示高峰 token 请求按 0 倍计费"},profitControl:{enable:"启用利润控制",enabledHint:'调度时ä»
4…允许"账号倍率 ≤ 请求实际下游倍率 ×(1 − 最低毛利率 − 安全缓冲)"的账号进入候选池;账号倍率可手工维护或由探测同步,既有排序、粘性与熔断在合格账号间照常工作。图片/视频调度暂不参与。',disabledHint:"关闭后调度不做利润过滤,账号倍率高于下游倍率的账号也会被选中,可能产生亏损请求。",minMargin:"最低毛利率(%)",minMarginHint:"百分比输入,如 30 表示 30%;后端按小数存储",safetyBuffer:"安全缓冲(%)",safetyBufferHint:"与最低毛利率相加后从下游倍率中扣除,默认 0",marginRangeError:"最低毛利率应在 0 到 99.99 之间",bufferRangeError:"安全缓冲应在 0 到 99.99 之间",sumTooHigh:"最低毛利率与安全缓冲之和必须小于 100%,否则将排除全部账号"},modelAllowlist:{title:"模型白名单",hint:"开启后,不在白名单中的模型会被拒绝(404 model_not_found),模型列表接口也只展示白名单内的模型。条目支持精确模型 ID 与任意位置的 * 通配(如 gpt-*-codex)。注意:Claude Code 会用 haiku 系小模型做标题/摘要等探测,/messages/count_tokens 同样受白名单控制,请一并勾选所需的小模型。",loading:"正在加载候选模型...",empty:"暂无候选模型,可在下方手工添加条目",selectedSummary:"已选 {selected} / {total}",selectAll:"全选",invertSelection:"反选",wildcardTag:"通配",customPlaceholder:"自定义条目,如 gpt-*-codex 或 claude-*",addCustom:"添加",emptySelectionError:"模型白名单已开启,请至少选择或添加一个模型条目",errors:{empty:"请输入模型条目",duplicate:"该条目已存在"}},codexModelsManifest:{title:"固定账号获取模型列表",hint:"开启后,普通模型列表与 Codex Model Manifest 均优先从选定账号获取并合并,再应用账号映射和分组列表过滤;限流/过载中的选定账号仍会被使用。",enable:"使用特定账号获取模型列表",enabledHint:"账号来源限定为当前分组内的 OpenAI 账号,最多选择 10 个。",disabledHint:"未启用:普通列表使用本地映射或默认模型;Codex 优先使用本地目录,无本地目录时由调度器选账。",accounts:"选定账号",searchPlaceholder:"搜索账号(当前分组内 OpenAI 账号)",searchEmpty:"未找到匹配账号",fallback:"选定账号全部不可用时回退调度器",fallbackHint:"关闭时返回 503 / 上游错误;开启时回退到现有调度器选账路径。",selectAtLeastOne:"开启固定账号后至少选择一个账号"},compositeRoutes:{action:"路由",title:"Composite 路由",titleWithGroup:"Composite 路由:{name}",routes:"已保存路由",empty:"暂无 Composite 路由",publicModel:"公开模型",target:"目标",scope:"范围",priority:"优先级",addRoute:"添加路由",editRoute:"编辑路由",matchType:"匹配方式",endpoint:"端点",targetPlatform:"目标平台",upstreamModel:"上游模型",upstreamModelHint:"留空表示透传原始请求模型:前缀匹配下每个命中模型各自原样转发(如 deepseek-v4-flash、deepseek-v4-pro 分别转发);填写则所有命中请求都固定转发该模型。",notes:"备注",enabled:"启用",preview:"预览",matched:"已匹配",notMatched:"未匹配",publicModelRequired:"请输入公开模型",routeCreated:"Composite 路由已创建",routeUpdated:"Composite 路由已更新",routeDeleted:"Composite 路由已删除",failedToLoad:"加载 Composite 路由失败",failedToSave:"保存 Composite 路由失败",failedToDelete:"删除 Composite 路由失败",failedToPreview:"预览 Composite 路由失败",deleteConfirm:"确定删除此 Composite 路由?",endpoints:{any:"任意",messages:"Messages",countTokens:"Count Tokens",responses:"Responses",chatCompletions:"Chat Completions",embeddings:"Embeddings",images:"Images",gemini:"Gemini 原生"},match:{exact:"精确",prefix:"前缀"},sources:{route:"路由",detector:"内置识别"}},claudeCode:{title:"Claude Code 客户端限制",tooltip:"启用后,此分组仅允许 Claude Code 官方客户端访问。非 Claude Code 请求将被拒绝或降级到指定分组。",enabled:"仅限 Claude Code",disabled:"允许所有客户端",fallbackGroup:"降级分组",fallbackHint:"非 Claude Code 请求将使用此分组,留空则直接拒绝",noFallback:"不降级(直接拒绝)"},openaiMessages:{title:"OpenAI Messages 调度配置",allowDispatch:"允许 /v1/messages 调度",allowDispatchHint:"启用后,此 OpenAI / 全平台分组的 API Key 可以通过 /v1/messages 端点调度到 OpenAI 链路",defaultModel:"默认映射模型",defaultModelPlaceholder:"ä¾
4‹å¦‚: gpt-4.1",defaultModelHint:"当账号未配置模型映射时,所有请求模型将映射到此模型",familyMappingTitle:"系列默认映射",familyMappingHint:"当请求命中 Opus(含 Fable)、Sonnet、Haiku 系列时,会优先使用这里配置的目标模型。1M Claude 应对齐 gpt-5.6-sol(不要填 terra);Haiku 用 gpt-5.6-luna。Claude 分组不会保存这些字段。",opusModel:"Opus 映射模型",opusModelPlaceholder:"例如: gpt-5.6-sol",sonnetModel:"Sonnet 映射模型",sonnetModelPlaceholder:"例如: gpt-5.6-sol",haikuModel:"Haiku 映射模型",haikuModelPlaceholder:"例如: gpt-5.6-luna",exactMappingTitle:"精确模型覆盖",exactMappingHint:"精确 Claude 模型覆盖优先级高于系列默认映射,可将某个具体 Claude 模型单独映射到不同的目标模型。",noExactMappings:"暂无精确模型覆盖规则",addExactMapping:"添加精确映射",removeExactMapping:"删除此映射",claudeModel:"Claude 模型",claudeModelPlaceholder:"例如: claude-sonnet-4-5-20250929",targetModel:"目标模型",targetModelPlaceholder:"例如: gpt-5.6-sol"},openaiLive:{title:"OpenAI Live",allow:"允许访问 Live",hint:"启用后,此 OpenAI 分组的 API Key 可以创建并控制 Live 语音会话。默认关闭。运行服务端必须是 Apple Silicon Mac,并安装官方 ChatGPT App;客户端平台不受限制。",unsupportedTitle:"当前服务端不支持 Live",unsupportedMessage:"当前服务端无法生成 Live 所需的设备证明,即使开启也不能使用。是否仍然开启?",enableAnyway:"仍然开启"},openaiFast:{title:"OpenAI Fast 模式",force:"强制使用 Fast(priority)",hint:"开启后,此分组的 OpenAI 请求会强制写入 service_tier=priority;全局 Fast/Flex 策略仍可过滤或拦截。保存后新请求立即生效,已建立的 WebSocket 会话需重连。",free:"免费 Fast",freeHint:"该分组的 Fast 请求仍使用 priority 档位,但客户实际费用按同一请求的 Standard 价格计算。"},invalidRequestFallback:{title:"无效请求兜底分组",hint:"当此 Anthropic/Antigravity 分组遇到可恢复错误时,会优先切换到该同族分组重试;不可恢复错误不会触发。留空表示不启用第一层兜底。",noFallback:"不兜底"},accountExhaustionFallback:{title:"账号耗尽兜底分组",hint:"当第一层同族兜底仍失败,且失败属于账号耗尽/容量类错误时,请求才会转发至指定的 OpenAI 分组(需开启 Messages 调度)。留空则不启用第二层跨平台兜底。",noFallback:"不兜底"},copyAccounts:{title:"从分组复制账号",tooltip:"选择一个或多个相同平台的分组,创建后会自动将这些分组的所有账号绑定到新分组(去重)。",tooltipEdit:"选择一个或多个相同平台的分组,保存后当前分组的账号会被替换为这些分组的账号(去重)。",selectPlaceholder:"选择分组以复制其账号...",hint:"可选多个分组,账号会自动去重",hintEdit:"注意:这会替换当前分组的所有账号绑定"},modelRouting:{title:"模型路由配置",tooltip:"配置特定模型请求优先路由到指定账号。支持通配符匹配,如 claude-opus-* 匹配所有 opus 模型。",enabled:"已启用",disabled:"已禁用",disabledHint:"启用后,配置的路由规则才会生效",addRule:"添加路由规则",modelPattern:"模型模式",modelPatternPlaceholder:"claude-opus-*",modelPatternHint:"支持 * 通配符,如 claude-opus-* 匹配所有 opus 模型",accounts:"优先账号",selectAccounts:"选择账号",noAccounts:"此分组暂无账号",loadingAccounts:"加载账号中...",removeRule:"删除规则",noRules:"暂无路由规则",noRulesHint:"添加路由规则以将特定模型请求优先路由到指定账号",searchAccountPlaceholder:"搜索账号...",accountsHint:"选择此模型模式优先使用的账号"},mcpXml:{title:"MCP XML 协议注入",tooltip:"启用后,当请求包含 MCP 工具时,会在 system prompt 中注入 XML 格式调用协议提示词。关闭此选项可避免对某些客户端造成干扰。",enabled:"已启用",disabled:"已禁用"},supportedScopes:{title:"支持的模型系列",tooltip:"选择此分组支持的模型系列。未勾选的系列将不会被路由到此分组。",claude:"Claude",geminiText:"Gemini Text",geminiImage:"Gemini Image",hint:"至少选择一个模型系列"},shadowGroups:{title:"影子分组",description:"在指定时段针对特定人群,将本分组请求改路由到其他余额型分组(使用其调度与模型映射)。多条条目按优先级 desc 取最先命中。",empty:"暂无影子分组配置",add:"添加影子分组",entryTitle:"影子分组 #{index}",priorityHint:"多条条目时段冲突时,优先级高者先命中",targetGroup:"目标分组",targetGroupPlaceholder:"选择余额型分组",targetGroupHint:"仅能选择计费类型为「余额」的æ´
4»è·ƒåˆ†ç»„,不能为当前分组自身",priority:"优先级",forceTakeover:"开启顶替主分组",forceTakeoverHint:"关闭时本条影子分组不会生效",serviceWindows:"服务时间段",serviceWindowsHint:"本地时区。结束时间 ≤ 开始时间 视为跨零点(如 22:00~02:00)",addWindow:"添加时间段",audience:"服务人群",excludedUsers:"排除用户",excludedUsersHint:"名单内用户命中本条时保持主分组,不做影子替换(优先于服务人群)。仅对本条影子分组生效。",remark:"备注",remarkPlaceholder:"可选,给运营同事的提示",fineTune:"精细化运营",fineTuneHint:'可选:灰度分流 + 自动毕业。零值即"不启用",老配置自动向后兼容。',trafficPercent:"灰度比例 (%)",trafficPercentHint:"0 或 100 = 全量命中;1-99 = 按 hash(用户ID, 规则ID) 决定 A/B 桶,对照组用于度量转化提升",maxConsumedAmount:"毕业阈值:累计消费金额 (元)",maxConsumedAmountHint:"用户在影子组累计扣费达到该值后自动回主分组,0/留空表示不限",maxDaysAfterFirstHit:"毕业阈值:首次命中后天数",maxDaysAfterFirstHitHint:"首次命中起 N 天后自动回主分组,0 表示不限",maxTokensConsumed:"毕业阈值:累计消费 Token 数",maxTokensConsumedHint:"累计 token 数达到后自动回主分组,0 表示不限"}},availableChannels:{title:"可用渠道",description:"按渠道聚合查看关联分组与支持模型(已展开通配符)",searchPlaceholder:"搜索渠道或模型...",columns:{name:"渠道名",status:"状态",billingSource:"计费模型来源",groups:"关联分组",supportedModels:"支持模型"},empty:"暂无数据",noGroups:"未关联分组",noModels:"未配置模型映射",noPricing:"未配置定价",statusActive:"启用",statusDisabled:"停用",billingSource:{requested:"请求模型",upstream:"上游模型",channel_mapped:"映射后模型"},pricing:{billingMode:"计费模式",billingModeToken:"按 Token",billingModePerRequest:"按次",billingModeImage:"按图片",billingModeVideo:"按视频",inputPrice:"输入",outputPrice:"输出",cacheWritePrice:"缓存写入",cacheWrite5mPrice:"缓存写入(5m)",cacheWrite1hPrice:"缓存写入(1h)",cacheReadPrice:"缓存读取",imageOutputPrice:"图片输出",perRequestPrice:"每次请求",intervals:"阶梯定价",unitPerMillion:"/ 1M token",unitPerRequest:"/ 次"}},channels:{title:"渠道管理",description:"管理渠道和自定义模型定价",noGroupsSelected:"请为 {platform} 至少选择一个分组",emptyModelsInPricing:"请为 {platform} 定价规则至少添加一个模型",searchChannels:"搜索渠道...",createChannel:"创建渠道",editChannel:"编辑渠道",deleteChannel:"删除渠道",statusActive:"启用",statusDisabled:"停用",allStatus:"全部状态",groupsUnit:"个分组",pricingUnit:"条定价",noChannelsYet:"暂无渠道",createFirstChannel:"创建第一个渠道来管理模型定价",loadError:"加载渠道列表失败",createSuccess:"渠道创建成功",updateSuccess:"渠道更新成功",deleteSuccess:"渠道删除成功",createError:"创建渠道失败",updateError:"更新渠道失败",deleteError:"删除渠道失败",nameRequired:"请输入渠道名称",duplicateModels:"模型「{0}」在多个定价条目中重复",modelConflict:"模型模式 '{model1}' 和 '{model2}' 冲突:匹配范围重叠。模型名称按大小写不敏感匹配,已有条目已覆盖其所有大小写变体,无需重复添加。",mappingConflict:"模型映射源 '{model1}' 和 '{model2}' 冲突:匹配范围重叠。源模式按大小写不敏感匹配,已有条目已覆盖其所有大小写变体。",intervalValidation:{negativeMin:"区间 #{index}:最小 token 数({value})不能为负数",maxPositive:"区间 #{index}:最大 token 数({value})必须大于 0",maxGreaterThanMin:"区间 #{index}:最大 token 数({max})必须大于最小 token 数({min})",negativePrice:"区间 #{index}:{field}不能为负数",multiplierPositive:"区间 #{index}:{field}必须大于 0",unboundedLast:"区间 #{index}:无上限区间(最大 token 数为空)必须放在最后",overlap:"区间 #{previousIndex} 和 #{currentIndex} 重叠:前一个上界({previousMax})大于当前下界({currentMin})",price:{inputPrice:"输入价格",outputPrice:"输出价格",cacheWritePrice:"缓存写入价格",cacheWrite1hPrice:"1h 缓存写入价格",cacheReadPrice:"缓存读取价格",perRequestPrice:"单次价格"}},timePricingValidation:{timezone:"请选择有效的 IANA 时区",format:"开始时间和结束时间必须使用 HH:mm:ss 格式",range:"开始时间必须早于结束时间;跨午夜请拆分为两个时间段",overlap:"时间段不能重叠",multiplier:"倍率必须大于 0,且最多保留两位小数"},deleteConfirm:"确定要删除渠道「{name}」吗?此操作不可撤销。",columns:{name:"名称",description:"描述",status:"状态",groups:"分组",pricing:"定价",createdAt:"创建时间",actions:"操作"},billingMode:{token:"Token",perRequest:"按次",image:"图片(按次)",video:"视频(按秒)"},form:{name:"名称",namePlaceholder:"输入渠道名称",description:"描述",descriptionPlaceholder:"可选描述",status:"状态",groups:"关联分组",noGroupsAvailable:"暂无可用分组",inOtherChannel:"已属于「{name}」",modelPricing:"模型定价",models:"模型列表",modelsPlaceholder:"输入完整模型名后按回车添加",modelInputHint:"按回车添加,支持粘贴批量导入",billingMode:"计费模式",defaultPrices:"默认价格(未命中区间时使用)",inputPrice:"输入",outputPrice:"输出",cacheWritePrice:"缓存写入",cacheWrite5mPrice:"缓存写入(5m)",cacheWrite1hPrice:"缓存写入(1h)",cacheReadPrice:"缓存读取",cacheWritePriceShort:"缓存写",cacheWrite5mPriceShort:"缓存写 5m",cacheWrite1hPriceShort:"缓存写 1h",cacheReadPriceShort:"缓存读",imageInputPrice:"图片输入",imageTokenPrice:"图片输出",imageOutputPrice:"图片输出价格",videoPrice:"视频单价",unitPerSecond:"/ 秒",pricePlaceholder:"默认",fastMultiplier:"Fast 倍率",flexMultiplier:"Flex 倍率",reasoningEffortMultipliers:"自定义思考等级倍率(可选)",reasoningEffortMultipliersHint:"按请求最终转发的思考等级,对整次请求的费用与额度消耗应用对应倍率。未配置的等级按 1 倍计费,可与其他计费倍率叠加。",reasoningEffortMultiplierLabel:"{effort} 思考等级倍率",reasoningEffortMultiplierDefault:"默认 1",clearReasoningEffortMultipliers:"清空倍率",reasoningEffortMultiplierPositive:"{effort} 思考等级倍率必须为大于 0 的有限数字",reasoningEffortLevelInvalid:"不支持的思考等级:{effort}",maxReasoningEffortMultiplier:"Max 推理倍率",fable51DefaultMaxReasoningMultiplier:"默认 3",multiplierPlaceholder:"未配置",multiplierPositive:"Fast/Flex 倍率必须为大于 0 的有限数字",inputMultiplier:"输入倍率",outputMultiplier:"输出倍率",cacheWriteMultiplier:"缓存写倍率",cacheReadMultiplier:"缓存读倍率",intervals:"上下文区间定价(可选)",timePricing:"时间段
4定价(可选)",timezone:"时区",addTimePeriod:"添加时间段",startTime:"开始时间",endTime:"结束时间",multiplier:"倍率",removeTimePeriod:"删除时间段",minTokens:"最小",maxTokens:"最大",inclusive:"(含)",addInterval:"添加区间",requestTiers:"按次计费层级",imageTiers:"图片计费层级(按次)",videoTiers:"视频分辨率层级(按秒)",addTier:"添加层级",noTiersYet:"暂无层级,点击添加配置按次计费价格",noPricingRules:'暂无定价规则,点击"添加"创建',perRequestPrice:"单次价格",perRequestPriceRequired:"按次/图片计费模式必须设置默认价格或至少一个计费层级",tierLabel:"层级",resolution:"分辨率",modelMapping:"模型映射",modelMappingHint:"将请求中的模型名映射为实际模型名。在账号级别映射之前执行。",noMappingRules:'暂无映射规则,点击"添加"创建',mappingSource:"源模型",mappingTarget:"目标模型",billingModelSource:"计费基准",billingModelSourceChannelMapped:"以渠道映射后的模型计费",billingModelSourceRequested:"以请求模型计费",billingModelSourceUpstream:"以最终模型计费",billingModelSourceResponse:"按上游响应模型计费",billingModelSourceHint:"控制使用哪个模型名称进行定价查找",selectedCount:"已选 {count} 个",searchGroups:"搜索分组...",noGroupsMatch:"没有匹配的分组",restrictModels:"限制模型",restrictModelsHint:"开启后,仅允许模型定价列表中的模型。不在列表中的模型请求将被拒绝。",defaultPerRequestPrice:"默认单次价格(未命中层级时使用)",defaultImagePrice:"默认图片价格(未命中层级时使用)",defaultVideoPrice:"默认视频每秒价格(未命中层级时使用)",platformConfig:"平台配置",webSearchEmulation:"Web Search 模拟",webSearchEmulationHint:"⚠️ 开启后该渠道下所有 Anthropic 分组的账号将自动拦截 web_search 请求,请谨慎操作",webSearchEmulationGlobalDisabled:"请先在系统设置 → 网关 → Web Search 模拟中启用全局开关",codexImageGenerationBridge:"Codex 图片生成桥接",codexImageGenerationBridgeHint:"开启后,OpenAI 分组仅会为非 Responses Lite 的 Codex /responses 文本请求自动注入 hosted image_generation 工具。桥接不会为 Responses Lite 注入工具;本地 image_gen 的处理由客户端和账号策略决定。仅在路由账号支持图片生成时开启。",bedrockCCCompat:"Bedrock CC 兼容",bedrockCCCompatHint:"⚠️ 开启后,该渠道下 Bedrock 账号的请求将进行 Claude Code 兼容处理(thinking 类型转换、tool_use ID 清理)",basicSettings:"基础设置",addPlatform:"添加平台",noPlatforms:'点击"添加平台"开始配置渠道',mappingCount:"条映射",pricingEntry:"定价配置",noModels:"未添加模型",applyPricingToAccountStats:"应用模型定价到账号统计",applyPricingToAccountStatsDesc:"启用后,未被自定义规则匹配的请求将使用模型定价文件中的标准价格计算账号统计费用",accountStatsPricingRules:"自定义账号统计定价规则",addRule:"添加规则",noRulesConfigured:"未配置自定义规则,将使用上方的模型定价。",ruleName:"规则名称(可选)",ruleGroups:"分组",ruleAccounts:"账号",searchAccountPlaceholder:"搜索账号...",ruleAccountsHint:"留空表示匹配所有账号",ruleModelPricing:"模型定价",noGroupsInChannel:"上方平台标签页中未选择分组",unnamed:"未命名",syncLatestModels:"同步最新模型",syncingModels:"同步中...",syncModelsSuccess:"已同步 {count} 个新模型",syncModelsAlreadyUpToDate:"模型列表已是最新",syncModelsError:"同步模型失败"}},finance:{title:"财务管理",description:"T+0 平台盈利分析 · 每日自动汇算",last7Days:"近7天",last30Days:"近30天",last90Days:"近90天",recalculate:"重算数据",recalculating:"重算中...",recalculateSuccess:"重算已启动,稍候刷新即可查看最新数据",recalculateError:"重算请求失败",totalRevenue:"总收入",grossProfit:"毛利润",netProfit:"净利润",totalCost:"总成本",totalRequests:"总请求数",totalTokens:"Token 用量",profitTrend:"净利润趋势",periodLabel:"时间范围",noData:"暂无数据,请点击重算数据",revenueBreakdown:"收入构成",costBreakdown:"成本构成",rechargeRevenue:"充値收入",subscriptionRevenue:"订阅收入",accountBreakdown:"账号成本明细",noAccountData:"暂无账号成本数据"},riskControl:{engine:"审计引擎",activeEngine:"当前生效引擎:{engine}",engineUnavailable:"当前引擎没有可用 Key,API 审计不可用;失败请求按现有策略放行。",typeSafeNotice:"TypeSafe AI 仅审文字,图片不外发也不审核。阈值为待校准初值;公共拦截、通知、封禁策略不会随引擎切换而关闭。",typeSafeThresholds:"默认阈值与 OpenAI 一致,但两者分数含义不同。请结合实际审核结果调整各类别阈值。",auditSource:"审计来源",skippedImages:"未审图片:{count}",legacyAuditSource:"OpenAI(历史记录未保存审核模型版本)",title:"风控中心",description:"配置内容审计策略并查看审核记录",loadFailed:"加载风控中心失败",saveFailed:"保存内容审计配置失败",logsFailed:"加载审核记录失败",saved:"内容审计配置已保存",refresh:"刷新",config:"内容审计配置",configHint:"调用所选审计引擎进行请求内容评分,命中阈值后按模式处理。",openSettings:"内容审计设置",settingsTitle:"内容审计设置",refreshStatus:"刷新状态",records:"审核记录",recordsHint:"展示命中、æ
4‹¦æˆªã€å¼‚常和已采样记录。",saveConfig:"保存内容审计配置",statusFailed:"加载运行状态失败",enabled:"开启内容审计",enabledHint:"关闭后即使风控中心菜单启用,也不会审核网关请求。",mode:"全局模式",modePreBlock:"前置拦截",modePreBlockDesc:"每次请求先同步审核最新用户输入,命中后立即拒绝请求。",modeObserve:"仅观察",modeObserveDesc:"请求直接放行,最新用户输入进入异步审核队列;命中后只记录、通知和按规则累计。",modeOff:"关闭",modeOffDesc:"不执行内容审计,也不会写入审核记录。",baseUrl:"Base URL",model:"模型名",proxy:"代理",proxyHint:"选择代理后,内容审计请求将通过该代理出口 IP 访问 OpenAI;选择「无代理」则直连。",backupProxy:"副代理(备用)",channels:"审计渠道",channelsHint:"已配置 {count} 个渠道,共 {keys} 个 key。审计请求会轮询所有渠道下的 key。",addChannel:"添加渠道",channelsEmpty:"尚未配置审计渠道",channelsEmptyHint:"点击「添加渠道」配置官方或中转渠道及其 key。",channelNamePlaceholder:"渠道名称(如 官方、中转A)",channelTypeOfficial:"官方",channelTypeRelay:"中转",removeChannel:"删除渠道",channelKeyCount:"{count} 个 key",newKeysPlaceholder:"新增 key,每行一个",testChannel:"测试渠道",apiKey:"API Key",apiKeys:"API Keys",apiKeyCount:"{count} 个 Key",apiKeyPlaceholder:"请输入 API Key",apiKeysPlaceholder:"新增 API Key,每行一个;保存后会追加到已保存 Key",apiKeysPlaceholderReplace:"覆盖保存 API Key,每行一个;保存后会替换全部已保存 Key",apiKeysPlaceholderKeep:"新增 API Key,每行一个;保存后会追加到已保存 Key",apiKeysHint:"当前已保存 {count} 个 Key;输入区只用于新增,保存时会增量追加并自动去重。",apiKeysWriteMode:"写入方式",apiKeysModeAppend:"增量添加",apiKeysModeReplace:"覆盖保存",apiKeysModeAppendHint:"默认模式:保存时追加输入区 Key,并保留已保存 Key。",apiKeysModeReplaceHint:"覆盖模式:保存时用输入区 Key 替换全部已保存 Key。",apiKeysReplaceWarning:"覆盖模式",apiKeysReplaceNoInput:"覆盖保存至少需要输入 1 个 API Key",apiKeyPlaceholderKeep:"留空保持不变",apiKeyWillClear:"保存后清除已配置 Key",apiKeyConfigured:"已配置",apiKeyTemporary:"待保存",apiKeyPendingDelete:"待删除",apiKeyPendingDeleteCount:"待删除 {count} 个 Key",deleteApiKey:"删除这个 Key",undoDeleteApiKey:"撤销删除",inputApiKeyCount:"输入区 {count} 个 Key",storedApiKeyCount:"已保存 {count} 个 Key",testInputApiKeys:"测试输入区 Key",testStoredApiKeys:"测试已保存 Key",testContentWithStoredApiKey:"用已保存 Key 试跑内容",testingApiKeys:"测试中",apiKeyTestNoInput:"请先输入需要测试的 API Key",apiKeyTestDone:"Key 测试完成,共 {count} 个",apiKeyTestFailed:"测试审计 API Key 失败",apiKeyHealth:"Key 可用状态",apiKeyFreezeRule:"400 不冻结;401/403 冻结 10 分钟;429/529 冻结 1 分钟;其他 HTTP 错误冻结 10 秒。",apiKeyRows:"{count} 个 Key",apiKeyRowsCollapsed:"已隐藏 {count} 个 Key",apiKeyRowsExpanded:"正在显示全部 {count} 个 Key",expandApiKeyRows:"展开",collapseApiKeyRows:"收起",apiKeyHealthEmpty:"暂无 Key 状态",apiKeyHealthEmptyHint:"保存 Key 或测试输入区 Key 后会显示可用性。",apiKeyStatusOk:"可用",apiKeyStatusError:"异常",apiKeyStatusFrozen:"冻结",apiKeyStatusUnknown:"未测试",apiKeyFailureCount:"失败 {count} 次",apiKeyLatency:"{ms} ms",apiKeyHTTPStatus:"HTTP {status}",apiKeyFrozenUntil:"冻结至 {time}",apiKeyLastChecked:"检查于 {time}",apiKeyNotTested:"尚未测试",auditTestInput:"审计试跑输入",auditTestInputHint:"可填写提示词并上传或粘贴图片;图片以 base64 发送,不会保存文件。",auditTestPromptPlaceholder:"输入要测试的用户提示词;留空时仅测试 Key 可用性。",auditTestImages:"测试图片",auditTestImagesHint:"支持上传、拖拽或粘贴图片,最多 1 张,每张不超过 8MB。",addAuditTestImage:"添加图片",clearAuditTest:"清空试跑",auditTestImageLimit:"最多只能添加 {count} 张测试图片",auditTestImageTooLarge:"单张测试图片不能超过 8MB",auditTestImageReadFailed:"读取测试图片失败",auditTestResult:"审计试跑结果",auditTestHighest:"最高分类 {category},分数 {score}",auditTestComposite:"综合评分",auditTestFlagged:"命中阈值",auditTestPassed:"未命中",notConfigured:"未配置",clearApiKey:"清除已保存 Key",keepApiKey:"保留已保存 Key",timeoutMs:"HTTP 超时 (ms)",retryCount:"失败重试次数",sampleRate:"采样率",recordNonHits:"记录未命中输入",recordNonHitsHint:"开启后会记录抽样但未命中的请求摘要,摘要会先脱敏再入库。",preHashCheck:"启用前置哈希比对",preHashCheckHint:"异步审核命中过的输入哈希会被前置拦截;该拦截不发送邮件,也不累计封禁次数。",flaggedHashCount:"当前哈希集合数量:{count} 个",flaggedHashHint:"哈希永久保存在 Redis 集合中;可粘贴完整 64 位哈希删除误拦截项,或一键清空全部风险哈希。",flaggedHashPlaceholder:"粘贴完整 64 位输入哈希",deleteFlaggedHash:"删除指定哈希",clearFlaggedHashes:"一键清空",clearFlaggedHashesConfirm:"确定要清空全部风险输入哈希吗?此操作不会删除审核记录,但会取消所有历史哈希拦截。",flaggedHashDeleted:"风险哈希已删除",flaggedHashNotFound:"该风险哈希不存在",flaggedHashDeleteFailed:"删除风险哈希失败",flaggedHashesCleared:"已清空 {count} 个风险哈希",flaggedHashesClearFailed:"清空风险哈希失败",workerCount:"Worker 数",queueSize:"异步队列大小",blockStatus:"拦截 HTTP 状态码",blockMessage:"自定义拦截提示",defaultBlockMessage:"内容审计命中风险规则,请调整输入后重试",emailOnHit:"命中后发送邮件",emailOnHitHint:"开启后每次达到阈值都会向用户发送风控提醒邮件;自动封禁通知始终发送。",autoBan:"自动封禁用户",autoBanHint:"命中次数达到阈值后将禁用用户账号、刷新认证缓存并发送封禁通知邮件。",cyberPolicyExcludeBan:"cyber_policy 不计入封号次数",cyberPolicyExcludeBanHint:"开启后,cyber_policy 拦截不再计入自动封号的违规次数:当次不判定封号,历史累计亦排除。风控日志与通知邮件照常。",violationNotCounted:"未计入封号",banThreshold:"封禁触发次数",violationWindowHours:"累计窗口(小时)",hitRetentionDays:"命中记录保留(
4天)",nonHitRetentionDays:"未命中记录保留(天,最多 3 天)",violationCount:"{count} 次",emailSent:"已发邮件",emailNotSent:"未发邮件",autoBanned:"已封禁",unbanUser:"解封",unbanSuccess:"用户已解封",unbanFailed:"解封用户失败",inputDetailTitle:"输入摘要详情",inputDetailContent:"完整内容",matchedKeyword:"命中关键词",queueDelay:"排队 {ms} ms",allGroups:"全部分组",allGroupsHint:"当前审计全部分组",selectedGroupsHint:"当前审计指定分组",groupScope:"审计分组",groupScopeHint:"开启右侧开关表示全部分组,关闭后选择指定分组。",selectedGroups:"指定分组",searchGroups:"搜索分组名称或平台",noGroups:"暂无可用分组",modelFilter:"模型范围",modelFilterHint:"按客户端请求的模型名决定是否执行内容审计,模型映射后仍以请求模型判断。",modelFilterAll:"所有模型",modelFilterAllDesc:"所有模型请求都会进入内容审计。",modelFilterInclude:"仅指定模型",modelFilterIncludeDesc:"只有列表中的模型会执行内容审计。",modelFilterExclude:"排除指定模型",modelFilterExcludeDesc:"列表中的模型跳过内容审计,其余模型执行审计。",modelFilterModels:"模型列表",modelFilterModelCount:"已配置 {count} 个模型",modelFilterModelsRequired:"当前模型范围至少需要配置 1 个模型",modelFilterAllSummary:"全部模型生效",modelFilterIncludeSummary:"仅 {count} 个模型生效",modelFilterExcludeSummary:"排除 {count} 个模型",emptyLogs:"暂无审核记录",preBlockSyncStatus:"前置拦截同步状态",preBlockSyncHint:"同步审核链路的实时计数,不包含异步写记录任务。",preBlockActive:"同步处理中",preBlockActiveHint:"当前正在审核",preBlockChecked:"已检查",preBlockCheckedHint:"进入前置拦截链路",preBlockAllowed:"已放行",preBlockAllowedHint:"未触发拦截",preBlockBlocked:"已拦截",preBlockBlockedHint:"命中后拒绝请求",preBlockErrors:"审核异常",preBlockErrorsHint:"失败或无可用 Key",preBlockAvgLatency:"平均耗时",preBlockAvgLatencyHint:"同步链路平均值",preBlockAPIKeyLoad:"审核 Key 负载",preBlockAPIKeyLoadHint:"同步前置拦截直接轮询可用审核 Key。",preBlockAPIKeyLoadSummary:"同步并发 {active} / 可用 Key {available},累计 {total} 次,worker:{workerActive} / {workerTotal}",preBlockAPIKeyTotals:"累计 {total},成功 {success},异常 {errors}",preBlockAPIKeyLoadEmpty:"暂无审核 Key 负载数据",preBlockKeyActiveShort:"并发",preBlockKeyTotalShort:"累计",preBlockKeyAvgShort:"平均",preBlockKeyLastShort:"最近",workerStatus:"Worker 运行状态",workerStatusHint:"异步审计任务和前置拦截记录任务的队列与 Worker 池状态,不包含同步前置拦截审核请求。",workerPool:"Worker 池",workerPoolMeta:"{active} 个处理中,{idle} 个空闲可用,共 {total} 个",queueUsage:"队列占用",activeWorkers:"处理中",idleWorkers:"空闲可用",workerActive:"正在处理异步审计或记录任务",workerIdle:"已启动,当前空闲可用",workerDisabled:"风控或内容审计未启用",processed:"异步已处理",droppedErrors:"丢弃/异常",autoRefresh:"每 15 秒自动刷新",last
4Cleanup:"上次清理:{time}",cleanupStats:"上次清理删除命中 {hit} 条,未命中 {nonHit} 条",riskSwitchOff:"系统开关关闭",riskThresholds:"风险阈值",riskThresholdsHint:"按当前引擎的分类调整命中阈值,分数达到或超过阈值即视为命中。",riskThresholdDefault:"默认 {value}",riskThresholdReset:"恢复默认阈值",riskThresholdPercent:"阈值百分比",tabs:{basic:"基础",scope:"审计范围",runtime:"运行队列",response:"命中通知",riskThresholds:"风险阈值",keywords:"关键词拦截",retention:"日志保留"},blockedKeywords:"拦截关键词",blockedKeywordsPlaceholder:`每行输入一个关键词,例如:
5敏感词1
6敏感词2`,blockedKeywordsDescription:"匹配忽略大小写;命中后会按下方策略决定是否调用上游审计接口。",blockedKeywordsPreBlockHint:"关键词拦截仅在「前置拦截」模式下生效。",blockedKeywordsModeWarning:"当前为「{mode}」模式,关键词拦截不会生效;请切换到「前置拦截」模式后再保存关键词。",blockedKeywordCount:"已配置 {count} 个关键词",blockedKeywordsLimit:"最多保存 {max} 个关键词,单个长度不超过 200 个字符;重复项会自动去重。",keywordBlockingMode:"审计策略",keywordModeKeywordAndApi:"关键词 + API",keywordModeKeywordAndApiDesc:"命中关键词直接拦截;未命中时再调用上游审计接口。",keywordModeKeywordOnly:"仅关键词",keywordModeKeywordOnlyDesc:"只用关键词判断,未命中即放行,不调用上游审计接口,可显著降低 API 用量。",keywordModeKeywordOnlyNotice:"当前为「仅关键词」策略:未命中关键词的请求将直接放行,不调用上游审计接口。",keywordModeApiOnly:"仅 API",keywordModeApiOnlyDesc:"只调用上游审计接口判断,本页的关键词列表将不会生效。",keywordModeApiOnlyNotice:"当前为「仅 API」策略:关键词列表不会生效,请求会全部交给上游审计接口判断。",overview:{status:"运行状态",enabled:"已启用",disabled:"未启用",apiKey:"API Key",channels:"审计渠道",channelCount:"{count} 个渠道",channelKeys:"共 {count} 个 key",groupScope:"审计范围",logs:"审核记录",currentFilter:"当前筛选结果"},filters:{search:"按用户/Key/摘要搜索",from:"开始时间",to:"结束时间",allGroups:"全部分组",allEndpoints:"全部端点"},table:{time:"时间",group:"分组",user:"用户",apiKey:"API Key",endpoint:"端点",result:"结果",highest:"最高分",actionMeta:"处置",latency:"上游耗时",input:"输入摘要"},result:{all:"全部结果",hit:"命中",blocked:"已拦截",pass:"未命中",error:"异常"},action:{block:"拦截",keywordBlock:"关键词拦截",cyberPolicy:"网络安全策略",error:"异常"}},channelMonitor:{title:"渠道监控",description:"监测各渠道的可用性、延迟和状态",searchPlaceholder:"搜索监控名称...",allProviders:"全部供应商",allStatus:"全部状态",enabledFilter:"启用状态",onlyEnabled:"仅启用",onlyDisabled:"仅禁用",createButton:"新增监控",createTitle:"新增渠道监控",editTitle:"编辑渠道监控",runNow:"立即检测",runSuccess:"检测完成",runFailed:"检测失败",duplicate:"复制",duplicating:"复制中",duplicateSuccess:"监控已复制为「{name}」,已默认停用,请确认配置后再启用",duplicateFailed:"复制监控失败",duplicateKeyUnavailable:"API Key 无法解密,请先编辑并重新填写 Key 后再复制",apiKeyDecryptFailed:"API Key 解密失败,请重新编辑该监控并填入新的 Key",createSuccess:"监控创建成功",updateSuccess:"监控更新成功",deleteSuccess:"监控删除成功",loadError:"加载监控列表失败",deleteConfirm:"确定要删除监控「{name}」吗?此操作不可撤销。",nameRequired:"请输入监控名称",primaryModelRequired:"请输入主模型",linkedAccountRequired:"请选择关联账号",columns:{name:"名称",provider:"供应商",primaryModel:"主模型",availability7d:"7 天可用率",latency:"延迟 (ms)",enabled:"启用",actions:"操作"},form:{name:"名称",namePlaceholder:"输入监控名称",provider:"平台",checkMode:"检查方式",checkModeProbe:"探活",checkModeProbeHint:"向上游发送轻量 LLM 请求,检测可用性与延迟",checkModeQuota:"配额",checkModeQuotaHint:"只查询关联账号的用量滚动窗口/余额,不发送探活请求",checkModeQuotaProbe:"探活 + 配额",checkModeQuotaProbeHint:"探活的同时查询配额,用量快照附加在主模型结果上",linkedAccount:"关联账号",linkedAccountPlaceholder:"选择账号",linkedAccountHint:"配额数据来自所选账号(复用账号管理侧的用量/余é¢
6æŸ¥è¯¢ï¼‰",linkedAccountEmpty:"当前平台暂无账号,请先在账号管理中添加",linkedAccountMissing:"关联账号已不存在或不可访问,请重新选择账号",openAIQuotaProbeHint:"注意:OpenAI 平台的用量查询可能触发 Codex 探测请求,会消耗账号自身的额度(每 10 分钟最多触发一次)",apiMode:"OpenAI 协议",apiModeChatCompletions:"OpenAI Compatible",apiModeChatCompletionsHint:"使用 /v1/chat/completions,发送 messages;适合大多数兼容站。",apiModeResponses:"Responses API",apiModeResponsesHint:"使用 /v1/responses,默认带 instructions + input;适合本站自检/Codex。",endpoint:"上游地址",endpointPlaceholder:"https://api.example.com",useCurrentDomain:"使用当前服务",apiKey:"API Key",apiKeyPlaceholder:"请输入 API Key",apiKeyEditPlaceholder:"留空表示不修改",useMyKey:"使用我的 Key",selectKeyTitle:"选择我的 API Key",selectKeyHint:"仅显示当前账号下处于「启用」状态且未过期的 Key。",noActiveKey:"没有可用的启用状态 Key",primaryModel:"主模型",primaryModelPlaceholder:"gpt-4o-mini",extraModels:"附加模型",extraModelsPlaceholder:"回车添加附加模型",groupName:"分组名称",groupNamePlaceholder:"可选,用于在用户视图中聚合显示",intervalSeconds:"检测间隔 (秒)",intervalSecondsHint:"范围:15 - 3600 秒",jitterSeconds:"随机抖动 (± 秒)",jitterSecondsHint:"每次检测在间隔基础上正负随机偏移该秒数,0 表示固定间隔;需满足 间隔 - 抖动 ≥ 15 秒",enabled:"启用监控",kindRequired:"请选择供应商"},runResultTitle:"检测结果",noMonitorsYet:"暂无监控",createFirstMonitor:"创建第一个监控来跟踪渠道可用性",advanced:{section:"高级(可选)",sectionHint:"自定义请求头和请求体,用于突破上游的客户端识别限制(如仅允许 Claude Code 客户端)。",headers:"自定义请求头",headersPlaceholder:`User-Agent: claude-cli/1.0.83 (external, cli)
7x-app: cli
8anthropic-beta: claude-code-20250219`,headerNamePlaceholder:"Header 名",headerValuePlaceholder:"Value",headerAddRow:"添加 Header",headerNameInvalid:"Header 名不能包含空格或冒号:{name}",headersHint:"与默认请求头合并,用户值优先。hop-by-hop 类 header(Host/Content-Length/...)会被忽略。",headersParseError:"无法解析这一行:{line}",bodyMode:"请求体处理",bodyModeOff:"默认",bodyModeMerge:"合并",bodyModeReplace:"覆盖",bodyModeHintOff:"使用 adapter 默认请求体(带 challenge 数学题校验)。",bodyModeHintMerge:"与默认请求体浅合并,用户字段优先;但 model / messages / contents 会被保护不允许覆盖(动这些字段请用「覆盖」模式)。",bodyModeHintReplace:"完全用下方 JSON 作为请求体。注意:此模式下跳过 challenge 校验,改为 HTTP 2xx + 响应文本非空即视为可用。",bodyJson:"Body JSON",bodyJsonFormat:"格式化",bodyJsonHint:"失焦时自动解析校验。留空等价于没有覆盖。",bodyJsonError:"JSON 解析失败",bodyJsonObjectError:"请求体必须是一个 JSON 对象(不能是数组或基本类型)"},templateField:{label:"请求模板",none:"不使用模板",placeholder:"选择一个模板(按当前平台过滤)",applyHint:"选中模板后,会把模板的请求头和请求体拷贝到此监控(快照)。后续模板变动不自动同步。"},template:{manageButton:"模板管理",managerTitle:"请求模板管理",createButton:"新建模板",emptyState:"当前平台下还没有请求模板",missingName:"请输入模板名称",createSuccess:"模板创建成功",updateSuccess:"模板更新成功",deleteSuccess:"模板删除成功",applyButton:"应用到关联监控",applyTooltip:"把当前模板配置覆盖到所有关联的监控上",applyTitle:"应用模板",applyConfirm:"确认应用",applyConfirmMessage:"将把模板「{name}」的当前配置覆盖到 {n} 个关联监控。监控本地已编辑的自定义修改会被丢弃,是否继续?",applySuccess:"已应用到 {n} 个监控",applyPickerTitle:"应用模板「{name}」",applyPickerHint:"勾选要覆盖请求头/请求体的监控(默认全选)。监控本地已编辑的自定义修改会被丢弃。",applyPickerEmpty:"当前模板没有关联监控",applyPickerConfirm:"应用到 {n} 个监控",selectNone:"全不选",selectedCount:"已选 {n} / {total}",deleteConfirm:"确定要删除模板「{name}
8」吗?{n} 个关联监控会解除关联但保留自己的快照继续工作。",associatedCount:"{n} 个关联监控",headersSummary:"{n} 个自定义请求头",form:{name:"模板名称",namePlaceholder:"例:Claude Code 伪装",description:"说明",descriptionPlaceholder:"可选:说明这个模板的用途和来源(抓包日期等)"}}},subscriptions:{batchAssign:{enable:"批量分配订阅",hint:"搜索并添加多个用户,统一分配所选分组和有效期。每次最多 100 人。",selected:"已添加 {count} 位用户",removeUser:"移除 {email}",result:"分配完成:成功 {success} 人,失败 {failed} 人",retryHint:"已移除成功项,可检查失败原因后重新提交剩余用户。"},bulk:{extend:"批量调整有效期",reset_quota:"批量重置配额",revoke:"批量撤销",restore:"批量恢复",selected:"已选择 {count} 条订阅",selectSubscription:"选择订阅 #{id}",clearSelection:"清空选择",selectionHint:"当前页选择,翻页或筛选会清空,最多 100 条。各操作仅处理适用状态的订阅。",selectionLimit:"每次最多操作 100 条订阅",selectionRequired:"请至少选择一条订阅",confirmTargets:"本次将处理以下 {count} 条订阅",groupFallback:"分组 #{id}",extendHint:"正整数延长,负整数缩短,最多调整 36500 天。已过期订阅从当前时间起延长,不能缩短;缩短后的到期时间必须在未来。",invalidDays:"请输入 -36500 到 36500 之间的非零整数天数",resetWindows:"选择要重置的配额窗口",resetHint:"所选窗口的用量将归零,并从今天开始重新计算。",selectWindow:"请至少选择一个配额窗口",revokeHint:"撤销后这些订阅将无法继续使用,可稍后在已撤销列表中恢复。",restoreHint:"恢复后将重新启用这些订阅。原有效期已结束的订阅将显示为已过期。",confirm:"确认执行",retry:"重试原操作",retryHint:"暂未确认操作结果。重试会继续原操作,避免重复处理。也可关闭后重新选择相同订阅和参数重试。",requestFailed:"批量操作请求失败,请重试",result:"处理完成:成功 {success} 条,失败 {failed} 条",itemFailed:"操作失败"},title:"订阅管理",description:"管理用户订阅和配额限制",assignSubscription:"分配订阅",adjustSubscription:"调整订阅",revokeSubscription:"撤销订阅",restoreSubscription:"恢复订阅",allStatus:"全部状态",allPlatforms:"全部平台",allGroups:"全部分组",allOrderStatus:"全部交易状态",allPaymentChannels:"全部支付渠道",export:"导出",exporting:"导出中...",exportSuccess:"导出成功",exportFailed:"导出失败",orderNoPresence:{all:"全部单号",nonEmpty:"仅看非空单号"},userIdPlaceholder:"用户ID",orderNoPlaceholder:"交易单号查询(支持模糊)",amountMinPlaceholder:"最小金额",amountMaxPlaceholder:"最大金额",startsAtFrom:"开始时间从",startsAtTo:"开始时间到",expiresAtFrom:"到期时间从",expiresAtTo:"到期时间到",daily:"每日",weekly:"每周",monthly:"每月",noLimits:"未配置限额",unlimited:"无限制",resetNow:"即将重置",windowNotActive:"窗口未激活",resetInMinutes:"{minutes} 分钟后重置",resetInHoursMinutes:"{hours} 小时 {minutes} 分钟后重置",resetInDaysHours:"{days} 天 {hours} 小时后重置",expiresInMinutes:"{minutes} 分钟后到期",expiresInHoursMinutes:"{hours} 小时 {minutes} 分钟后到期",expiresInDaysHours:"{days} 天 {hours} 小时后到期",quotaExhaustedRenewHint:"额度耗尽,请及时续费,否则对应分组无法使用",expiredRenewHint:"已到期,请及时续费,否则对应分组无法使用",deletedGroupFallback:"已删分组 #{id}",deletedGroupUsageUnavailable:"分组已删除,无法回显额度",orderNoUnavailable:"手动分配 / 历史数据",amountUnavailable:"金额未知",quotaEndsInMinutes:"额度将在 {minutes} 分钟后结束",quotaEndsInHoursMinutes:"额度将在 {hours} 小时 {minutes} 分钟后结束",quotaEndsInDaysHours:"额度将在 {days} 天 {hours} 小时后结束",daysRemaining:"剩余 {days} 天",hoursMinutesRemaining:"剩余 {hours} 小时 {minutes} 分钟",minutesRemaining:"剩余 {minutes}
8 分钟",remainingDays:"剩余天数",noExpiration:"无过期时间",status:{serving:"服务中",active:"生效中",expired:"已过期",quota_exhausted:"额度耗尽",upgraded:"已升级",revoked:"已撤销",suspended:"已暂停"},orderStatus:{pending:"待支付",paid:"已支付",failed:"支付失败",expired:"已过期",cancelled:"已取消",refunded:"已退款"},paymentChannel:{native:"扫码支付",jsapi:"JSAPI",h5:"H5"},columns:{user:"用户",group:"分组",usage:"用量",starts:"订阅开始时间",expires:"到期时间",latestOrderNo:"交易单号",latestOrderAmount:"支付金额",status:"状态",actions:"操作"},form:{user:"用户",group:"订阅分组",validityDays:"有效期(天)",adjustDays:"调整天数"},selectUser:"选择用户",selectGroup:"选择订阅分组",groupHint:"仅显示订阅计费类型的分组",validityHint:"订阅的有效天数",adjustingFor:"为以下用户调整订阅",currentExpiration:"当前到期时间",adjustDaysPlaceholder:"正数延长,负数缩短",adjustHint:"输入正数延长订阅,负数缩短订阅(缩短后剩余天数需大于0)",monthlyUsageLabel:"本周期已用额度",extendDoesNotResetQuota:"延期只延长有效期,不会重置额度。用户拿到的仍是本周期原有的额度。",extendExhaustedHint:"该订阅额度已用尽,仅延期不会让用户恢复可用——如需补额度,请另外使用「重置配额」。",assign:"分配",assigning:"分配中...",adjust:"调整",adjusting:"调整中...",revoke:"撤销",restore:"恢复",resetQuota:"重置配额",resetQuotaTitle:"重置用量配额",resetQuotaConfirm:"确定要重置 '{user}' 的每日、每周和每月用量配额吗?用量将归零并从今天开始重新计算。",quotaResetSuccess:"配额重置成功",failedToResetQuota:"重置配额失败",noSubscriptionsYet:"暂无订阅",assignFirstSubscription:"分配一个订阅以开始使用。",subscriptionAssigned:"订阅分配成功",subscriptionReactivated:"订阅已重新激活并开启新周期",subscriptionAdjusted:"订阅调整成功",subscriptionRevoked:"订阅撤销成功",subscriptionRestored:"订阅已恢复",failedToLoad:"加载订阅列表失败",failedToAssign:"分配订阅失败",failedToAdjust:"调整订阅失败",failedToRevoke:"撤销订阅失败",failedToRestore:"恢复订阅失败",adjustWouldExpire:"调整后剩余天数必须大于0",adjustOutOfRange:"调整天数必须在 -36500 到 36500 之间",pleaseSelectUser:"请选择用户",pleaseSelectGroup:"请选择分组",validityDaysRequired:"请输入有效的天数(至少1天)",revokeConfirm:"确定要撤销 '{user}' 的订阅吗?可稍后在已撤销列表中恢复。",bulkExtendActive:"全部延长一天",bulkExtendActiveConfirm:"确定要给所有有效订阅延长一天有效期吗?",bulkExtendActiveSuccess:"已成功延长 {count} 个订阅",failedToBulkExtend:"批量延长订阅失败",restoreConfirm:"确定要恢复 '{user}' 的订阅吗?如果原订阅已过期,恢复后将显示为已过期。",guide:{title:"订阅管理教程",subtitle:"订阅模式允许你按时间周期为用户分配使用额度,支持日/周/月配额限制。按照以下步骤即可完成配置。",showGuide:"使用指南",step1:{title:"创建订阅分组",line1:"前往「分组管理」页面,点击「创建分组」",line2:"将计费类型设为「订阅」,配置日/周/月额度限制",line3:"保存分组,确保状态为「正常」",link:"前往分组管理"},step2:{title:"分配订阅给用户",line1:"点击本页右上角「分配订阅」按钮",line2:"在弹窗中搜索用户邮箱并选择目标用户",line3:"选择订阅分组、设置有效期天数,点击「分配」"},step3:{title:"管理已有订阅"},actions:{adjust:"调整",adjustDesc:"延长或缩短订阅有效期",resetQuota:"重置配额",resetQuotaDesc:"将日/周/月用量归零,重新开始计算",revoke:"撤销",revokeDesc:"立即终止该用户的订阅,可在已撤销列表中恢复"},tip:"提示:订阅分组下拉列表中只会显示计费类型为「订阅」且状态为「正常」的分组。如果没有可选项,请先到分ç
8»„管理中创建。"}},systemCoupons:{title:"系统优惠券发放",description:"按用户筛选条件批量预览并发放系统优惠券",searchUsers:"按邮箱/用户名/备注/API Key 搜索用户",issueTitle:"批量发券",issueDescription:"先预览命中用户,再确认发放。即使用户已有同范围有效券,也会再发一张新券。",scope:"适用范围",scopeRecharge:"余额充值",scopeSubscription:"订阅",type:"优惠类型",typeDiscount:"折扣券",typeReduction:"立减券",discountPercent:"折扣百分比",reductionAmount:"立减金额",validityDays:"有效期(天)",preview:"预览",previewing:"预览中...",issueNow:"确认发放",issuing:"发放中...",filterPreviewTitle:"筛选命中用户预览",filterPreviewDescription:"先核对命中用户,再执行预览与发放。",matchedUsersCount:"当前筛选命中 {count} 位用户",filterPreviewLimit:"仅展示前 {count} 位命中用户",matchedUsers:"命中用户",eligibleUsers:"可发放",skippedExisting:"已跳过",recentTitle:"最近发放记录",recentDescription:"仅展示管理端批量发放的系统优惠券记录。",loadMatchedUsersFailed:"加载命中用户预览失败",previewFailed:"预览失败",previewRequired:"请先预览后再发放",issueFailed:"发放失败",issueSuccess:"批量发券完成:匹配 {matched},成功 {issued},跳过 {skipped},失败 {failed}",confirmAllWarning:"当前未设置任何筛选条件,将对全部用户发放优惠券。是否继续?",loadRecentFailed:"加载最近发券记录失败",userId:"用户 ID",source:"来源",status:"状态",expiresAt:"过期时间",createdAt:"创建时间",sourceAdminBatchIssue:"批量发放",statusActive:"有效",statusLocked:"待使用",statusUsed:"已使用",statusExpired:"已过期"},accounts:{title:"账号管理",description:"管理 AI 平台账号和 Cookie",createAccount:"添加账号",autoRefresh:"自动刷新",enableAutoRefresh:"启用自动刷新",refreshInterval5s:"5 秒",refreshInterval10s:"10 秒",refreshInterval15s:"15 秒",refreshInterval30s:"30 秒",autoRefreshCountdown:"自动刷新:{seconds}s",tabs:{management:"账号管理",scheduling:"调度观测"},scheduler:{empty:"暂无账号数据。",cards:{totalAccounts:"账号总数",availableCapacity:"可用并发槽位",ofTotalCapacity:"总容量 {value}",capacityUtilization:"容量使用率",currentInFlight:"当前并发占用:{value}",todayTraffic:"今日请求数",todayCost:"今日成本:${value}"},load:{title:"账号负载分布",subtitle:"按当前并发占比排序,颜色标注调度状态。"},curve:{title:"每账号实时调度状态曲线",subtitle:"滚动保留 {points} 个采样点,按 {seconds}s 刷新。",enableRealtime:"开启实时刷新",events:"{count} 次状态切换",onlyAbnormal:"仅看异常",all:"全部",filterPlatform:"按平台",filterGroup:"按分组"},trend:{title:"账号趋势观测",subtitle:"X 轴为时间,Y 轴为所选指标,每条线代表一个账号。",metricLabel:"指标",metrics:{currentConcurrency:"实时并发数",requests:"调用次数"},rangeLabel:"时间范围",accountsLabel:"账号",accountsPlaceholder:"选择要对比的账号",selectedCount:"已选择 {count} 个账号",refresh:"刷新趋势",refreshing:"刷新中...",empty:"当前范围暂无趋势数据。",failed:"加载趋势数据失败",partialFailed:"{count} 个账号趋势加载失败,已展示其余账号数据。",yAxisRequests:"调用次数",yAxisConcurrency:"实时并发数",ranges:{oneDayHourly:"近 1 天(小时)",threeDaysHourly:"近 3 天(小时)",fiveDaysHourly:"近 5 天(小时)",sevenDaysDaily:"近 7 天(天)"}},funnel:{title:"调度漏斗",subtitle:"从候选账号到可立即承载请求的实时快照。",candidate:"候选账号",schedulable:"参与调度",runtimeReady:"运行时可用",withCapacity:"有空闲容量"},risks:{title:"风险结构",subtitle:"按账号运行时状态拆分调度风险。",healthy:"健康",capacityFull:"容量打满",rateLimited:"限流中",overloaded:"过载中",tempUnsched:"临时不可调度",statusError:"错误状态",schedulingOff:"手动停调度"}
8,platform:{title:"平台容量分布",subtitle:"各平台当前并发占比。"}},listPendingSyncHint:"列表存在待同步变更,点击同步可补齐最新数据。",listPendingSyncAction:"立即同步",syncFromCrs:"从 CRS 同步",dataExport:"导出",dataExportSelected:"导出选中",dataExportIncludeProxies:"导出代理(导出账号关联的代理)",dataImport:"导入",moreActions:"更多操作",dataActions:"数据操作",toolActions:"工具",viewColumns:"列显示",selectedCount:"已选 {count}",dataExportConfirmMessage:"导出的数据包含账号与代理的敏感信息,请妥善保存。",dataExportConfirm:"确认导出",dataExported:"数据导出成功",dataExportedSkippedShadows:"数据已导出。已跳过 {count} 个 spark 影子账号:其调度配置不在备份内,还原后需在重建的影子上重新调优。",dataExportFailed:"数据导出失败",dataImportTitle:"导入数据",dataImportHint:"上传导出的 JSON 文件以批量导入账号与代理。",dataImportWarning:"导入将创建新账号与代理,分组需手工绑定;请确认已有数据不会冲突。",dataImportFile:"数据文件",dataImportButton:"开始导入",dataImporting:"导入中...",dataImportSelectFile:"请选择数据文件",dataImportParseFailed:"数据解析失败",dataImportParseFailedFile:"文件 {name} 解析失败",dataImportInvalidFile:"文件 {name} 不是受支持的导出数据文件",dataImportIgnoredFiles:"已忽略 {count} 个非 JSON 文件",dataImportFailed:"数据导入失败",dataImportResult:"导入结果",dataImportResultSummary:"代理创建 {proxy_created},复用 {proxy_reused},失败 {proxy_failed};账号创建 {account_created},失败 {account_failed}",dataImportErrors:"失败详情",dataImportSuccess:"导入完成:账号 {account_created},失败 {account_failed}",dataImportCompletedWithErrors:"导入完成但有错误:账号失败 {account_failed},代理失败 {proxy_failed}",syncFromCrsTitle:"从 CRS 同步账号",syncFromCrsDesc:"将 claude-relay-service(CRS)中的账号同步到当前系统(不会在浏览器侧直接请求 CRS)。",crsVersionRequirement:"注意:CRS 版本必须 ≥ v1.1.240 才支持此功能",crsBaseUrl:"CRS 服务地址",crsBaseUrlPlaceholder:"例如:http://127.0.0.1:3000",crsUsername:"用户名",crsPassword:"密码",syncProxies:"同时同步代理(按 host/port/账号匹配或自动创建)",syncNow:"开始同步",syncing:"同步中...",syncMissingFields:"请填写服务地址、用户名和密码",syncResult:"同步结果",syncResultSummary:"创建 {created},更新 {updated},跳过 {skipped},失败 {failed}",syncErrors:"错误/跳过详情",syncCompleted:"同步完成:创建 {created},更新 {updated},跳过 {skipped}",syncCompletedWithErrors:"同步完成但有错误:失败 {failed}(创建 {created},更新 {updated},跳过 {skipped})",syncFailed:"同步失败",crsPreview:"预览",crsPreviewing:"预览中...",crsPreviewFailed:"预览失败",crsExistingAccounts:"将自动更新的已有账号",crsNewAccounts:"新账号(可选择)",crsSelectAll:"全选",crsSelectNone:"全不选",crsNoNewAccounts:"所有 CRS 账号均已同步。",crsWillUpdate:"将更新 {count} 个已有账号。",crsSelectedCount:"已选择 {count} 个新账号",crsUpdateBehaviorNote:'已有账号仅同步 CRS 返回的字段,缺失字段保持原值;凭据按键合并,不会清空未下发的键;未勾选"同步代理"时保留原有代理。',crsBack:"返回",editAccount:"编辑账号",deleteAccount:"删除账号",deleteConfirmMessage:"确定要删除账号 '{name}' 吗?",refreshCookie:"刷新 Cookie",testAccount:"测试账号",searchAccounts:"搜索账号...",notes:"备注",notesPlaceholder:"请输入备注",notesHint:"备注可选",allPlatforms:"全部平台",allTypes:"全部类型",allStatus:"全部状态",allGroups:"全部分组",ungroupedGroup:"未分配分组",oauthType:"OAuth",allSchedulable:"全部调度",schedulableFilter:"参与调度",unschedulableFilter:"未参与调度",searchAccountsPlaceholder:"搜索账号名/邮箱/备注/账号ID...",schedulable:"参与调度",schedulableHint:"开启后账号参与API请求调度",schedulableEnabled:"调度已开启",schedulableDisabled:"调度已关闭",failedToToggleSchedulable:"切换调度状态失败",groupCountTotal:"共 {count} 个分组",columns:{name:"名称",accountId:"账号ID",platformType:"平台/类型",platform:"平台",type:"类型",capacity:"容量",notes:"备注",priority:"优先级",billingRateMultiplier:"账号倍率",upstreamBillingRate:"上游声明倍率",weight:"权重",schedulerScore:"调度权值",status:"状态",schedulable:"调度",todayStats:"今日统计",groups:"分组",usageWindows:"用量窗口",proxy:"代理",lastUsed:"最近使用",createdAt:"创建时间",expiresAt:"过期时间",actions:"操作"},schedulerScore:{baseShort:"普通",stickyShort:"粘性",ungrouped:"未分组",hint:"显示格式为“分组名 / 基础分 / 粘性加分”。基础分按当前筛选条件限定的候选账号计算,包含优先级、负载、排队、错误率、首包延迟、重置窗口、额度余量、计费倍率等因子;粘性加分只在开启粘性加权时用于 previous_response_id 或 session_hash。分数越大越优先。"},usageWindowsHint:"“5h / 7d”是上游账号(如 OpenAI ChatGPT、Claude)官方的æ
8»šåŠ¨ç”¨é‡çª—å£é™åˆ¶ï¼Œç”±ä¸Šæ¸¸å¯¹è´¦å·è®¾å®šï¼Œå¹¶éž sub2api 配置,也与你映射的模型无关。窗口滚动到期后用量会自动重置,无法在 sub2api 端解除该限制。",ollamaCloud:{title:"Ollama Cloud 用量",sessionSecurityHint:"浏览器会话会加密落库,且只发送到固定的 Ollama 官方设置页。",configured:"已配置",notConfigured:"未配置",notRefreshed:"尚未刷新",encryptionKeyRequired:"请先配置持久 TOTP_ENCRYPTION_KEY,再保存浏览器会话。",sessionLabel:"Ollama 浏览器 Cookie",sessionPlaceholder:"wos-session=...; __Secure-authjs.session-token.0=...",writeOnlyHint:"仅写入。已保存内容不可查看,留空不会覆盖。",deleteSession:"删除会话",deleteConfirm:"确定删除已保存的 Ollama 浏览器会话及其用量快照?",refreshNow:"刷新用量",autoRefresh:"自动刷新用量",autoRefreshHint:"只有账号开关和全局开关同时启用时才会定时刷新。",plan:"套餐",fiveHour:"5 小时",fiveHourShort:"5h",sevenDay:"7 天",sevenDayShort:"7d",balance:"余额",models:"模型",status:"状态",updatedAt:"更新时间",ok:"正常",unauthorized:"会话已过期",failed:"刷新失败",windowWithReset:"已用 {percent},{reset} 重置",loadFailed:"加载 Ollama Cloud 用量设置失败",sessionSaved:"Ollama 浏览器会话已保存",sessionSaveFailed:"保存 Ollama 浏览器会话失败",sessionDeleted:"Ollama 浏览器会话已删除",sessionDeleteFailed:"删除 Ollama 浏览器会话失败",autoRefreshFailed:"更新自动刷新设置失败",refreshSuccess:"Ollama Cloud 用量已刷新",refreshFailed:"刷新 Ollama Cloud 用量失败",errors:{request_failed:"请求失败",empty_response:"响应为空",response_host_mismatch:"响应主机不符合安全边界",redirect_blocked:"官方设置页发生重定向",unauthorized:"浏览器会话已过期",http_error:"官方设置页返回错误",response_read_failed:"读取响应失败",response_too_large:"设置页超过响应大小限制",invalid_html:"无法识别设置页格式",OLLAMA_CLOUD_USAGE_REFRESH_RATE_LIMITED:"刷新过于频繁,请在 {retry_after_seconds} 秒后重试。"}},upstreamBilling:{trustWarning:"此倍率由上游站点针对当前 API Key 自行声明。Sub2API 无法验证该值是否与实际扣费一致;上游站点或中间代理可能返回伪造、过期或被篡改的数据。请结合账单、余额变化和实际用量自行核验。",autoProbe:"自动探测上游声明倍率",autoProbeHint:"启用后按全局周期刷新上游声明倍率;此开关本身不会修改账号倍率。",syncRate:"同步上游声明倍率",syncRateHint:"成功探测后自动更新账号倍率,同步的是不含高峰的基准倍率;探测失败或声明超出允许范围时保持不变。开启本项会同时打开“自动探测上游声明倍率”。",syncRateManagedHint:"当前倍率由上游声明的基准倍率(不含高峰)自动维护。",syncedRateTooltip:"该账号倍率由上游声明的基准倍率(不含高峰)自动同步",manualProbe:"立即探测上游倍率",stale:"已过期",unsupported:"不支持",failed:"失败",notProbed:"未探测",groupRate:"分组默认:{value}x",userRate:"用户专属倍率:{value}x",peakRate:"高峰:{start}-{end},{value}x({timezone})",noPeakRate:"高峰倍率:未启用",effectiveRate:"当前倍率:{value}x",updatedAt:"更新时间:{value}",nextProbeAt:"下一次探测:{value}",lastDetectedRate:"上次探测倍率:{value}x",lastDetectedAt:"上次探测时间:{value}",elapsedSince:"已过去:{value}",justNow:"不足 1 分钟",minutesAgo:"{count} 分钟",hoursAgo:"{count} 小时",daysAgo:"{count} 天",accountProbeState:"当前账号自动检测:",globalProbeState:"全局探测开关:",enabled:"打开",disabled:"关闭",probeFailed:"探测上游倍率失败",noEligibleAccounts:"请选择 API Key 账号",batchLimit:"每次最多探测 20 个账号",batchCompleted:"已完成 {count} 个账号的倍率探测",batchPartial:"倍率探测部分完成:成功 {success} 个,失败 {failed} 个"},allPrivacyModes:"全部Privacy状态",privacyUnset:"未设置",privacyTrainingOff:"已关闭训练数据共享",privacyCfBlocked:"被 Cloudflare 拦截,训练可能仍开启",privacyFailed:"关闭训练数据共享å
8¤±è´¥",privacyAntigravitySet:"已关闭遥测和营销邮件",privacyAntigravityFailed:"隐私设置失败",privacyRecovered:"Privacy 已恢复,以下为最近一次错误",setPrivacy:"设置隐私",subscriptionAbnormal:"异常",subscriptionExpires:"到期",capacity:{windowCost:{blocked:"5h窗口费用超限,账号暂停调度",stickyOnly:"5h窗口费用达阈值,仅允许粘性会话",normal:"5h窗口费用正常"},sessions:{full:"活跃会话已满,新会话需等待(空闲超时:{idle}分钟)",normal:"活跃会话正常(空闲超时:{idle}分钟)"},rpm:{full:"已达 RPM 上限",warning:"RPM 接近上限",normal:"RPM 正常",tieredNormal:"RPM 限制 (三区模型) - 正常",tieredWarning:"RPM 限制 (三区模型) - 接近阈值",tieredStickyOnly:"RPM 限制 (三区模型) - 仅粘性会话 | 缓冲区: {buffer}",tieredBlocked:"RPM 限制 (三区模型) - 已阻塞 | 缓冲区: {buffer}",stickyExemptNormal:"RPM 限制 (粘性豁免) - 正常",stickyExemptWarning:"RPM 限制 (粘性豁免) - 接近阈值",stickyExemptOver:"RPM 限制 (粘性豁免) - 超限,仅粘性会话"},quota:{exceeded:"配额已用完,账号暂停调度",normal:"配额正常"}},clearRateLimit:"清除速率限制",resetQuota:"重置配额",quotaLimit:"配额限制",quotaLimitPlaceholder:"0 表示不限制",quotaLimitHint:"设置日/周/总使用额度(美元),任一维度达到限额后账号暂停调度。Anthropic API Key 账号还可配置客户端亲和。修改限额不会重置已用额度。",quotaLimitToggle:"启用配额限制",quotaLimitToggleHint:"开启后,当账号用量达到设定额度时自动暂停调度",quotaDailyLimit:"日限额",quotaDailyLimitHint:"从首次使用起每 24 小时自动重置。",quotaWeeklyLimit:"周限额",quotaWeeklyLimitHint:"从首次使用起每 7 天自动重置。",quotaTotalLimit:"总限额",quotaTotalLimitHint:"累计消费上限,不会自动重置 — 使用「重置配额」手动清零。",quotaResetMode:"重置方式",quotaResetModeRolling:"滚动窗口",quotaResetModeFixed:"固定时间",quotaResetHour:"重置时间",quotaWeeklyResetDay:"重置日",quotaResetTimezone:"重置时区",quotaDailyLimitHintFixed:"每天 {hour}:00({timezone})重置。",quotaWeeklyLimitHintFixed:"每{day} {hour}:00({timezone})重置。",dayOfWeek:{monday:"周一",tuesday:"周二",wednesday:"周三",thursday:"周四",friday:"周五",saturday:"周六",sunday:"周日"},quotaLimitAmount:"总限额",quotaLimitAmountHint:"累计消费上限,不会自动重置。",fromModel:"请求模型",toModel:"目标模型",soraBaseUrlRequired:"Sora apikey 账号必须设置上游地址(Base URL)",soraBaseUrlInvalidScheme:"Base URL 必须以 http:// 或 https:// 开头",quotaNotify:{alert:"提醒阈值",enabled:"启用告警",threshold:"告警金额",thresholdPlaceholder:"输入百分比"},quotaChannelNotify:{title:"消息通知",description:"当任一配额维度的剩余额度达到指定百分比时,按勾选渠道发送提醒。",percentPlaceholder:"20",email:"邮件提醒",emailRecipients:"收件人邮箱",emailRecipientsPlaceholder:"多个邮箱可用逗号或换行分隔",emailHint:"默认收件人:yian20133213{'@'}gmail.com",feishu:"飞书提醒",feishuWebhook:"飞书 Bot 群消息 Webhook 地址",wechat:"微信服务号消息提醒",wechatTemplate:"消息模板 ID",wechatTemplatePlaceholder:"留空则使用运维设置中已配置的服务号模板",wechatHint:"服务号 AppID/AppSecret、模板和管理员 OpenID 复用运维告警配置。",contentPreview:"提醒内容:当前 xxx 渠道(备注),额度还剩 xxx,需要及时充值,防止服务中断。",validation:{quotaRequired:"启用消息通知前,请先设置至少一个配额限额。",feishuWebhookRequired:"启用飞书提醒时,请填写飞书 Bot 群消息 Webhook 地址。"}},testConnection:"测试连接",reAuthorize:"重新授权",refreshToken:"刷新令牌",noAccountsYet:"暂无账号",createFirstAccount:"添加 AI 平台账号以开始使用 API 网关。",tokenRefreshed:"Token 刷新成功",accountDeleted:"账号删除成功",rateLimitCleared:"速率限制已清除",setupToken:"Setup Token",apiKey:"API Key",deleteConfirm:"确定要删除账号 '{name}' 吗?此操作无法撤销。",failedToClearRateLimit:"清除速率限制失败",platforms:{claude:"Claude",openai:"OpenAI",anthropic:"Anthropic",gemini:"Gemini",antigravity:"Antigravity",grok:"Grok",kimi:"Kimi",zhipu:"Zhipu GLM",deepseek:"DeepSeek",minimax:"MiniMax",opencode_go:"OpenCode"},cnProviders:{accountMode:{title:"账号类型",payg:"按量付费",paygDesc:"消耗账户余额,按 Token 计费。余额不足自动冷却,充值后恢复。",coding:"Coding Plan",codingDesc:"订阅制编ç¨
8‹å¥—餐,按 5 小时 / 每周滚动用量窗口限流。"},apiProtocol:{title:"API 协议",adaptive:"自适应",adaptiveDesc:"按入站协议优先使用供应商原生端点,仅在没有对应端点时转换。",endpoints:"协议端点",responsesFallbackDesc:"该供应商没有原生 Responses 端点,Responses 请求将转换为 Chat Completions。",chatCompletions:"Chat Completions",chatCompletionsDesc:"标准 OpenAI 兼容端点,其他格式请求将被转换。",anthropic:"Anthropic",anthropicDesc:"直通供应商原生 Anthropic 端点,零转换,适配 Claude Code。",responses:"Responses",responsesDesc:"供应商原生 Responses 端点,适配 Codex。"},zhipuTeam:{title:"团队版组织 / 项目 ID",organization:"组织 ID(团队版可选)",organizationPlaceholder:"团队版 Coding Plan 的组织 ID",project:"项目 ID(团队版可选)",projectPlaceholder:"团队版 Coding Plan 的项目 ID",hint:"仅团队版 GLM Coding Plan 需要填写,填写后用量查询走团队版端点;个人版留空即可。获取方式点击左侧问号查看教程。",help:{title:"如何获取组织 / 项目 ID",step1:"用团队版账号登录智谱开放平台(bigmodel.cn),进入「Coding Plan → 团队版 → 我的套餐」页面。",step2:"按 F12 打开浏览器开发者工具,切换到「Network / 网络」标签,然后刷新页面。",step3:"在 Network 的筛选框中输入 /api/biz/v1/organization,点击命中的请求(如 api_keys)。",step4:"请求 URL 中 org- 开头的一段即组织 ID、proj_ 开头的一段即项目 ID(也可在 Request Headers 中查看 bigmodel-organization / bigmodel-project 的值),分别填入上方输入框。",example:"示例:…/organization/org-0610bE2D…/projects/proj_0798F20…/api_keys → org-0610bE2D… 填「组织 ID」,proj_0798F20… 填「项目 ID」"}},balance:"余额 --",window5h:"5 小时窗口",windowWeekly:"每周窗口",windowMonthly:"月",probeTooltip:"请求供应商额度端点,查询 5 小时 / 每周滚动窗口用量",balanceLow:"余额不足",noBalanceEndpoint:"该平台暂无余额查询接口",resetSoon:"即将重置"},opencodeGo:{accountMode:{zen:"Zen",zenDesc:"按量付费网关,消耗账户余额,按 Token 计费。",go:"GO",goDesc:"订阅制网关,按 5 小时 / 周 / 月滚动用量窗口限流。"},protocolRules:{title:"模型协议分流",hint:"自适应模式下按模型匹配上游协议。支持精确 ID 或末尾 * 通配(如 grok-*、qwen*);自上而下第一条命中生效;未命中走 Chat Completions。",patternPlaceholder:"grok-* 或 deepseek-v4-flash",add:"添加规则",remove:"删除规则",restoreDefaults:"恢复默认",fallback:"未命中以上规则 → Chat Completions(/v1/chat/completions)"},title:"OpenCode Go 用量",panelHint:"官方 5 小时、7 天和月度窗口。可主动查询,也可打开自动刷新。",rolling:"5 小时窗口",rollingShort:"5h",weekly:"7 天窗口",weeklyShort:"7d",monthly:"月度窗口",monthlyShort:"1m",status:"状态",updatedAt:"更新时间",notRefreshed:"尚未查询",unauthorized:"未授权",failed:"失败",ok:"正常",windowWithReset:"{percent},{reset} 重置",refreshNow:"立即查询",refreshSuccess:"用量已更新",refreshFailed:"查询用量失败",loadFailed:"加载用量失败",autoRefresh:"自动刷新",autoRefreshHint:"按共享周期刷新此账号。使用同一 Key 的账号共用一份快照。",autoRefreshFailed:"更新自动刷新失败"},types:{oauth:"OAuth",chatgptOauth:"ChatGPT OAuth",responsesApi:"Responses API",googleOauth:"Google OAuth",codeAssist:"Code Assist",antigravityOauth:"Antigravity OAuth",grokOauth:"Grok OAuth",antigravityApikey:"通过 Base URL + API Key 连接",upstream:"对接上游",upstreamDesc:"通过 Base URL + API Key 连接上游",api_key:"API Key",cookie:"Cookie"},antigravityProjectIdLabel:"GCP Project ID(可选)",antigravityProjectIdPlaceholder:"your-gcp-project-id",antigravityProjectIdHint:"standard-tier 且未自动返回 project_id 的 Antigravity 账号需要填写用户自带 GCP project。",accountSchedulingThresholdOverride:"账号自动停调阈值覆盖",accountSchedulingThresholdOverrideHint:"仅对当前账号覆盖平台级自动停调阈值;关闭后使用å¹
8³å°è®¾ç½®ã€‚",accountSchedulingThresholdOverrideValue:"账号阈值百分比",accountSchedulingThresholdOverrideDisabledHint:"1-100,达到该用量百分比后临时不可调度;100 表示禁用当前账号自动停调。",status:{active:"正常",inactive:"停用",expired:"已过期",disabled:"已禁用",error:"错误",cooldown:"冷却中",paused:"暂停",limited:"限流",rateLimited:"限流中",overloaded:"过载中",schedulable:"参与调度",tempUnschedulable:"临时不可调度",quotaExceeded:"配额超限",unschedulable:"不可调度",rateLimitedUntil:"限流中,当前不参与调度,预计 {time} 自动恢复",rateLimitedAutoResume:"{time} 自动恢复",modelRateLimitedUntil:"{model} 限流至 {time}",modelCreditOveragesUntil:"{model} 正在使用 AI Credits,至 {time}",creditsExhausted:"积分已用尽",creditsExhaustedUntil:"AI Credits 已用尽,预计 {time} 恢复",overloadedUntil:"负载过重,重置时间:{time}",viewTempUnschedDetails:"查看临时不可调度详情",rootCause:"根因",rootCauses:{insufficientBalance:"余额不足",upstream403:"上游 403",upstream401:"上游 401",upstream429:"上游 429",upstream5xx:"上游 5xx",timeout:"上游超时",unknown:"待确认"}},serviceHours:{title:"服务时段",hint:"设置账号自动参与调度的时间段,超出时间段自动关闭调度开关",timezoneLabel:"时区",timezonePlaceholder:"如:Asia/Shanghai",windowLabel:"时段 {index}",startTime:"开始时间",endTime:"结束时间",addWindow:"添加时段",windowsRequired:"请至少添加一条有效时段",timezonePresets:{utc:"UTC",shanghai:"上海/北京",tokyo:"东京",newYork:"纽约",losAngeles:"洛杉矶",london:"伦敦"}},tempUnschedulable:{title:"临时不可调度",statusTitle:"临时不可调度状态",hint:"当错误码与关键词同时匹配时,账号会在指定时间内被临时禁用。",notice:"规则按顺序匹配,需同时满足错误码与关键词。",addRule:"添加规则",ruleOrder:"规则序号",ruleIndex:"规则 #{index}",errorCode:"错误码",errorCodePlaceholder:"例如 429",durationMinutes:"持续时间(分钟)",durationPlaceholder:"例如 30",keywords:"关键词",keywordsPlaceholder:"例如 overloaded, too many requests",keywordsHint:"多个关键词用逗号分隔,匹配时必须命中其中之一。",description:"描述",descriptionPlaceholder:"可选,便于记忆规则用途",rulesInvalid:"请至少填写一条包含错误码、关键词和时长的规则。",viewDetails:"查看临时不可调度详情",accountName:"账号",triggeredAt:"触发时间",until:"解除时间",remaining:"剩余时间",matchedKeyword:"匹配关键词",errorMessage:"错误详情",reset:"恢复状态",resetSuccess:"账号状态已恢复",resetFailed:"恢复账号状态失败",failedToLoad:"加载临时不可调度状态失败",notActive:"当前账号未处于临时不可调度状态。",expired:"已到期",remainingMinutes:"约 {minutes} 分钟",remainingHours:"约 {hours} 小时",remainingHoursMinutes:"约 {hours} 小时 {minutes} 分钟",presets:{overloadLabel:"529 过载",overloadDesc:"服务过载 - 暂停 60 分钟",rateLimitLabel:"429 限流",rateLimitDesc:"触发限流 - 暂停 10 分钟",unavailableLabel:"503 维护",unavailableDesc:"服务不可用 - 暂停 30 分钟"}},usageWindow:{statsTitle:"5小时窗口用量统计",statsTitleDaily:"每日用量统计",grokFreeQuota24hHint:"按近 24 小时本地 Token 用量估算(上限 {limit})",grokWeeklyUsage:"周额度已用 {percent}%",geminiProDaily:"Pro",geminiFlashDaily:"Flash",gemini3Pro:"G3P",gemini3Flash:"G3F",gemini3Image:"G31FI",claude:"Claude",grokRequests:"请求",grokTokens:"Token",grokUnknown:"Grok 配额需等待首次上游响应返回 xAI rate-limit 头后显示。",grokRetryAfter:"{time} 后重试",grokProbe:"探测",grokProbeTooltip:"发送最小 xAI Responses 探测请求并读取配额响应头",grokResetUnsupported:"不支持重置",grokResetUnsupportedTooltip:"xAI 未向 Grok OAuth 账号开放重置额度接口",grokNoHeaders:"未观察到配额响应头",grokLastStatus:"状态 {status}",grokLastProbe:"探测 {time}",grokLastHeadersSeen:"响应头 {time}",passiveSampled:"被动采样",activeQuery:"查询",estimatedTotalCost:"预计总费用 ${c
8ost}",estimatedTotalCostTooltip:"根据当前窗口费用和使用率估算达到 100% 使用率时的总费用"},openaiQuotaReset:{count:"次数",reset:"重置",points:"积分",pointsUnlimited:"不限",pointsAvailable:"有积分",pointsTooltip:"点击查询 Codex 积分",pointsUpdatedAt:"更新于 {time}",pointsCachePersistFailed:"已显示实时积分,但未能写入缓存。",countTooltipLoad:"点击查询剩余重置次数",countTooltipRefresh:"点击刷新剩余重置次数",resetTooltipReady:"消耗 1 次重置次数以立即恢复当前窗口",resetTooltipNeedQuery:"先点击「次数」加载剩余重置次数",resetTooltipNoCredits:"没有可用的重置次数",resetTooltipShadow:"Spark 影子账号不能重置次数;请在母账号上重置",expiresAt:"到期 {time}",expiresAtFull:"重置次数到期时间: {time}",expandExpirations:"展开其余 {count} 张重置次数到期时间",collapseExpirations:"收起重置次数到期时间",expirationDetails:"重置次数到期明细",noCreditsAvailable:"没有可用的重置次数",resetSuccess:"已重置 {windows} 个窗口,次数和账号状态已更新",resetCacheRefreshFailed:"窗口已重置、账号状态已恢复,但重置次数未能回读,请重新查询次数。",resetAccountRecoveryFailed:"窗口已重置,但账号状态恢复失败,请手动恢复账号状态。",resetAccountRefreshFailed:"窗口、账号状态和重置次数缓存已更新,但无法加载最新账号显示。",refreshCachePersistFailed:"已显示实时次数,但到期明细获取失败,仍保留原有缓存明细。",confirmTitle:"确认重置周限",confirmMessage:"将消耗 1 次重置次数立即恢复当前窗口,剩余 {count} 次。此操作不可撤销,确定继续吗?"},openaiReferral:{available:"可邀请",invite:"邀请",fromAccount:"来自账号",unavailable:"当前账号暂时不能发送邀请。",email:"邮箱",consent:"我确认要发送这次邀请。",sent:"已向 {email} 发送邀请",sending:"发送中...",send:"发送邀请",sendUnknown:"邀请可能已发出,但响应丢失。请先确认,不要立刻重试。",shadowHint:"Spark 影子账号不能发送邀请,请使用母账号。",checkedAt:"查询于 {time}",queryHint:"点击查询剩余邀请次数",cacheFailed:"已显示实时结果,但未能写入缓存。",refreshFailed:"邀请已发送,但剩余次数未能刷新。",workspace:"工作区邀请",personal:"个人邀请",invalidEmail:"请输入有效的邮箱地址。",rejected:"邀请被拒绝。",alreadyInvited:"该邮箱已被邀请。",rateLimited:"邀请过于频繁,请稍后再试。",programChanged:"邀请计划已变化,请重新查询后再发送。",consentRequired:"发送前请先确认邀请。"},tier:{free:"Free",pro:"Pro",ultra:"Ultra",aiPremium:"AI Premium",standard:"标准版",basic:"基础版",personal:"个人版",unlimited:"无限制"},ineligibleWarning:"该账号无 Antigravity 使用权限,但仍能进行 API 转发。继续使用请自行承担风险。",forbidden:"已封禁",forbiddenValidation:"需要验证",forbiddenViolation:"违规封禁",openVerification:"打开验证链接",copyLink:"复制链接",linkCopied:"链接已复制",needsReauth:"需要重新授权",rateLimited:"限流中",usageError:"获取失败",form:{nameLabel:"账号名称",namePlaceholder:"请输入账号名称",platformLabel:"平台",selectPlatform:"选择平台",typeLabel:"类型",selectType:"选择类型",credentialsLabel:"凭证",credentialsPlaceholder:"请输入 Cookie 或 API Key",priorityLabel:"优先级",priorityHint:"数值越小优先级越高",weightLabel:"权重",weightHint:"用于负载均衡的权重值",statusLabel:"状态"},filters:{platform:"平台",allPlatforms:"全部平台",type:"类型",allTypes:"全部类型",status:"状态",allStatuses:"全部状态"},saving:"保存中...",refreshing:"刷新中...",testing:"测试中...",noAccounts:"暂无账号",noAccountsDescription:"添加 AI 平台账号以开始使用 API 网关。",accountCreatedSuccess:"账号添加成功",accountUpdatedSuccess:"账号更新成功",accountDeletedSuccess:"账号删除成功",bulkSchedulableEnabled:"成功启用 {count} 个账号的调度",bulkSchedulableDisabled:"成功停止 {count}
8 个账号的调度",bulkSchedulablePartial:"部分调度更新成功:成功 {success} 个,失败 {failed} 个",bulkSchedulableResultUnknown:"批量调度结果不完整,请稍后重试或刷新列表",bulkActions:{selected:"已选择 {count} 个账号",selectedAll:"已选择全部 {count} 个账号",selectCurrentPage:"本页全选",selectAllResults:"全选所有结果({count})",selectingAll:"正在选择全部结果...",selectAllFailed:"获取全部账号失败,原有选择未改变",clear:"清除选择",edit:"批量编辑账号",delete:"批量删除",confirmDelete:"确认删除选中的 {count} 个账号吗?此操作不可恢复。",deleteSuccess:"已成功删除 {count} 个账号",enableScheduling:"批量启用调度",disableScheduling:"批量停止调度",resetStatus:"批量重置状态",refreshToken:"批量刷新令牌",probeUpstreamBilling:"探测上游倍率",resetStatusSuccess:"已成功重置 {count} 个账号状态",refreshTokenSuccess:"已成功刷新 {count} 个账号令牌",partialSuccess:"操作部分完成:{success} 成功,{failed} 失败",batchReauth:"批量重新授权",batchReauthTitle:"批量重新授权(协议登录)",batchReauthHint:"每行一个,格式:邮箱|密码",batchReauthPlaceholder:`user1{'@'}example.com|password1
9user2{'@'}example.com|password2`,batchReauthStarted:"批量重新授权已启动,共 {total} 个账号,结果将通过站内消息通知",batchReauthEmpty:"请输入至少一条有效的账号凭据"},bulkEdit:{title:"批量编辑账号",selectionInfo:"已选择 {count} 个账号。只更新您勾选或填写的字段,未勾选的字段保持不变。",baseUrlPlaceholder:"https://api.anthropic.com 或 https://api.openai.com",baseUrlNotice:"适用于 API Key 账号及 Grok OAuth 账号的转发端点,留空则不修改",submit:"批量更新",updating:"更新中...",success:"成功更新 {count} 个账号",successWithInherited:"成功更新 {count} 个账号;其中 {inherited} 个影子账号仍跟随母账号。",partialSuccess:"部分更新成功:成功 {success} 个,失败 {failed} 个",partialSuccessWithInherited:"部分更新成功:成功 {success} 个,失败 {failed} 个;其中 {inherited} 个影子账号仍跟随母账号。",failed:"批量更新失败",noSelection:"请选择要编辑的账号",noFieldsSelected:"请至少选择一个要更新的字段",rateSyncWarning:"已开启上游倍率同步的账号不能批量手工修改倍率,请先在账号编辑页关闭同步。",rateSyncConflict:"无法修改账号倍率:{count} 个目标账号已开启上游倍率同步。",longContextShadowHint:"长上下文计费归母账号所有。选中的影子账号仍跟随母账号,筛选全量目标时同样如此。",longContextParentRequired:"选中的账号全部是影子账号,请选择母账号修改长上下文计费。",mixedPlatformWarning:"所选账号跨越多个平台({platforms})。显示的模型映射预设为合并结果——请确保映射对每个平台都适用。"},bulkDeleteTitle:"批量删除账号",bulkDeleteConfirm:"确定要删除选中的 {count} 个账号吗?此操作无法撤销。",bulkDeleteSuccess:"成功删除 {count} 个账号",bulkDeletePartial:"部分删除成功:成功 {success} 个,失败 {failed} 个",bulkDeleteFailed:"批量删除失败",recoverState:"恢复状态",recoverStateHint:"用于恢复错误、限流和临时不可调度等可恢复状态。",recoverStateSuccess:"账号状态已恢复",recoverStateFailed:"恢复账号状态失败",fallbackActive:"已回退",fallbackActiveTip:"原代理 {origin} 已到期,当前使用备用代理",revertProxy:"切回原代理",revertProxySuccess:"已成功切回原代理",revertProxyFailed:"切回原代理失败",backupProxy:"备用代理",backupProxyEnabled:"启用副代理兜底",backupProxyEnabledHint:"主代理出现连接错误时,自动用副代理重试当前请求。注意:频繁切换 IP 可能导致部分平台账号被封,请按账号谨慎开启。",createSparkShadow:"创建 Spark 影子账号",createSparkShadowConfirm:"为「{name}」创建链接型 Spark 影子账号?影子共享母账号凭据、仅服务 spark 模型。",createSparkShadowSuccess:"Spark 影子账号已创建",createSparkShadowFailed:"创建 Spark 影子账号失败",duplicateAccount:"复制账号",duplicateSuccess:"账号已复制为「{name}」,已暂停调度,请确认凭据后再启用",duplicateFailed:"复制账号失败",resetStatus:"重置状态",statusReset:"账号状态已重置",failedToResetStatus:"重置账号状态失败",cookieRefreshedSuccess:"Cookie 刷新成功",testSuccess:"账号测试通过",testFailed:"账号测试失败",failedToLoad:"加载账号列表失败",failedToSave:"保存账号失败",failedToDelete:"删除账号失败",failedToRefresh:"刷新 Cookie 失败",platform:"平台",accountName:"账号名称",enterAccountName:"请输入账号名称",accountType:"账号类型",claudeCode:"Claude Code",claudeConsole:"Claude Console",bedrockLabel:"AW
9S Bedrock",bedrockDesc:"SigV4 / API Key",vertexLabel:"Vertex",vertexDesc:"Service Account",vertexAnthropicHint:"使用 Google Cloud Service Account JSON 通过 Vertex AI 调用 Anthropic Claude。建议配置模型映射,将客户端 Claude 模型名映射到 Vertex 模型 ID。",vertexGeminiHint:"使用 Google Cloud Service Account JSON 访问 Vertex AI Gemini。建议将 Vertex 账号放入独立分组,避免和 AI Studio/Gemini OAuth 同模型混调。",vertexSaJsonLabel:"Service Account JSON",vertexSaJsonLoaded:"已读取 Service Account JSON",vertexSaJsonDrop:"拖入 Service Account JSON",vertexSaJsonKeyHidden:"密钥内容不会在表单中显示。",vertexSaJsonDropHint:"把 .json 文件拖到这里,或点击按钮选择文件。",vertexSaJsonSelectBtn:"选择 JSON",vertexSaJsonUploadHint:"上传或拖入 JSON 后会自动读取 project_id,密钥内容仅用于创建账号提交。",vertexSaJsonEditHint:"Service Account JSON 不在编辑页显示;需要更换 JSON 时请删除账号后重新创建。",vertexProjectIdPlaceholder:"从 JSON 自动读取",vertexLocationHint:"不同 Vertex 模型可用 location 可能不同,这里选择账号默认 endpoint location。",vertexLocationRequired:"请填写 Vertex location",vertexSaJsonMissingFields:"Service Account JSON 缺少 project_id、client_email 或 private_key",vertexSaJsonMissingProjectId:"Service Account JSON 缺少 project_id",vertexSaJsonMissingClientEmail:"Service Account JSON 缺少 client_email",vertexSaJsonInvalid:"Service Account JSON 格式无效",vertexSaJsonRequired:"请上传 Service Account JSON",oauthSetupToken:"OAuth / Setup Token",addMethod:"添加方式",setupTokenLongLived:"Setup Token(长期有效)",baseUrl:"Base URL",baseUrlHint:"留空使用官方 Anthropic API",apiKeyRequired:"API Key *",apiKeyPlaceholder:"sk-ant-api03-...",apiKeyHint:"您的 Claude Console API Key",upstreamRequestIdHeader:"上游ID",upstreamRequestIdHeaderPlaceholder:"留空不记录",upstreamRequestIdHeaderHelp:{intro:"填写直接上游在响应头中声明请求标识的头名,记录到用量明细的“上游ID”列;留空则不记录。",examplesTitle:"常见取值",sub2apiNote:"对应对方用量明细的请求ID列",official:"{platform} 官方 API"},openai:{baseUrlHint:"留空使用官方 OpenAI API",apiKeyHint:"您的 OpenAI API Key",oauthPassthrough:"自动透传(仅替换认证)",longContextBilling:"API 长上下文计费",longContextBillingDesc:"默认关闭。仅当该账号的上游会按模型阈值收取 OpenAI API 长上下文费率时开启。",oauthPassthroughDesc:"开启后,该 OpenAI 账号将自动透传请求与响应,仅替换认证并保留计费/并发/审计及必要安全过滤;如遇兼容性问题可随时关闭回滚。",flattenNamespaces:"摊平 Codex namespace 工具(兼容)",flattenNamespacesDesc:"默认关闭:/responses 上的 namespace 工具声明原样转发,这正是 ChatGPT Codex 后端期望的形态。仅当该 OAuth 账号指向不认识 namespace 的兼容上游时才开启——摊平会把工具改名为 namespace__tool,使按 functions.<命名空间>.<工具> 寻址的模型(如 gpt-5.6 多智能体)无法调用。压缩(compact)请求不受该开关影响,始终摊平。",responsesWebsocketsV2:"Responses WebSocket v2",responsesWebsocketsV2Desc:"默认关闭。开启后可启用 responses_websockets_v2 协议能力(受网关全局开关与账号类型开关约束)。",wsMode:"WS mode",wsModeDesc:"仅对当前 OpenAI 账号类型生效。选择“关闭”可禁用 WS;其余模式需全局 gateway.openai_ws.mode_router_v2_enabled=true 才按所选方式连接,未开启时统一使用上下文池。",wsModeOff:"关闭(off)",wsModeCtxPool:"上下文池(ctx_pool)",wsModePassthrough:"透传(passthrough)",wsModeHttpBridge:"HTTP 桥接(http_bridge)",wsModeShared:"共享(shared)",wsModeDedicated:"独享(dedicated)",wsModeCtxPoolHint:"网关从连接池获取并复用上游 WS 连接,连接池上限由网关配置决定。",wsModePassthroughHint:"网关为每个客户端会话单独建ç«
9‹ä¸Šæ¸¸ WS 连接,不使用连接池。",wsModeHttpBridgeHint:"网关将客户端 WS 请求转换为上游 HTTP 请求,再将 SSE 流式响应转换为 WS 消息返回。",oauthResponsesWebsocketsV2:"OAuth WebSocket Mode",oauthResponsesWebsocketsV2Desc:"仅对 OpenAI OAuth 生效。开启后该账号才允许使用 OpenAI WebSocket Mode 协议。",apiKeyResponsesWebsocketsV2:"API Key WebSocket Mode",apiKeyResponsesWebsocketsV2Desc:"仅对 OpenAI API Key 生效。开启后该账号才允许使用 OpenAI WebSocket Mode 协议。",responsesWebsocketsV2PassthroughHint:"当前已开启自动透传:仅影响 HTTP 透传链路,不影响 WS mode。",responsesMode:"Responses API 支持",responsesModeDesc:"仅对 OpenAI API Key 的文本转发链路生效。自动跟随探测结果,强制模式会覆盖自动探测。",responsesModeAuto:"自动",responsesModeForceResponses:"强制 Responses",responsesModeForceChatCompletions:"强制 Chat Completions",responsesModeTextDisabledHint:"未启用 Responses / Chat Completions 端点时,此设置不适用。",imagesUrlToB64Json:"生图结果 URL 转 base64",imagesUrlToB64JsonDesc:"仅对 OpenAI API Key 的 Images 非流式响应生效。上游返回的图片缺少 b64_json 但带 url 时,网关下载该 url 并以 base64 回填 b64_json(url 保留),兼容按官方接口实现的客户端;下载失败则原样返回。",endpointCapabilities:"端点能力",endpointCapabilitiesDesc:"用于调度筛选。文本端点会跟随上方 Responses API 支持显示为 Responses、Chat Completions 或自动模式;Embeddings 独立控制 /v1/embeddings。",capabilityResponses:"Responses",capabilityTextAuto:"Responses / Chat Completions(自动)",capabilityResponsesAuto:"Responses(自动探测)",capabilityChatCompletions:"Chat Completions",capabilityChatCompletionsAuto:"Chat Completions(自动探测)",capabilityEmbeddings:"Embeddings",responsesStatusAutoSupported:"自动探测:Responses",responsesStatusAutoUnsupported:"自动探测:Chat Completions",responsesStatusAutoUnknown:"自动探测:未探测",responsesStatusForcedResponses:"已强制 Responses",responsesStatusForcedChatCompletions:"已强制 Chat Completions",planType:"订阅档位(手动覆盖)",planTypeDesc:"手动纠正本账号的 ChatGPT 订阅档位(Plus / Pro / Free)。注意:令牌临期刷新或命中 429 限流时,会用真实档位自动覆盖此处设置。",planTypeClear:"清空(自动识别)",codexCLIOnly:"仅允许 Codex 官方客户端",codexCLIOnlyDesc:"仅对 OpenAI OAuth 生效。开启后仅允许 Codex 官方客户端家族访问;关闭后完全绕过并保持原逻辑。",codexCLIOnlyAppServer:"允许 Codex app-server 客户端",codexCLIOnlyAppServerDesc:"仅在上方开关开启时生效。开启后本账号额外放行内嵌 Codex 引擎、经 app-server 协议接入的第三方客户端(如 Claude Code 的 codex 插件),仍需通过全局引擎指纹门;与全局 app-server 开关取 OR(任一开即放行)。",codexFingerprintMode:"Codex 指纹收敛",codexFingerprintModeDesc:"多人共享同一 OAuth 账号时,将各用户的设备/会话标识收敛为账号级恒定值,减少上游可见的设备数和会话数。默认关闭(原样透传客户端标识),需要时再显式开启;部分账号开启收敛后出现过额度缩水,请按自己的实测结果选择。",codexFingerprintOff:"关闭(透传,默认)",codexFingerprintDevice:"仅设备",codexFingerprintSession:"设备+会话",codexFingerprintFull:"完全收敛",codexImageTool:"Codex 图片桥接策略",codexImageToolDesc:"统一控制 Codex /responses 文本请求的 hosted image_generation 桥接和客户端图片工具声明。hosted 工具自动注入仅适用于非 Responses Lite 请求;账号级策略优先于渠道和全局配置,不影响独立图片生成接口。",codexImageToolInherit:"跟随渠道",codexImageToolInheritDesc:"不写入账号覆盖;非 Lite 请求是否注入 hosted 工具由渠道或全局策略决定,客户端显式携带的 hosted 工具和本地 image_gen 声明照常放行。",codexImageToolEnabled:"启用 Hosted 桥接",codexImageToolEnabledDesc:"仅为非 Responses Lite 请求注入 hosted image_generation 工具;客户端显式携带的图片工具仍会放行。",codexImageToolDisabled:"不注入 Hosted 工具",codexImageToolDisabledDesc:"不注入 hosted 工具;客户端显式携带的 hosted 工具和本地 image_gen 声明仍会放行。",codexImageToolBlock:"移除客户端图片工具",codexImageToolBlockDesc:"不通过桥接自动注入 hosted 工具,并移除客户端显式携带的 hosted image_generation 工具、本地 image_gen 声明及相关 tool_choice;image-only 模型路由不受影响。",codexImageToolBadgeInherit:"渠道策略",codexImageToolBadgeEnabled:"Hosted 桥接已开启",codexImageToolBadgeDisabled:"不注入 Hosted 工具",codexImageToolBadgeBlock:"客户端图片工具已移除",compactMode:"Compact 模式",compactModeDesc:"控制本账号在 /responses/compact 调度中的参与方式。Auto 跟随探测结果,Force On 强制允许,Force Off 强制排除。",compactModeAuto:"自动",compactModeForceOn:"强制开启",compactModeForceOff:"强制关闭",compactModelMapping:"Compact 专属模型映射",compactModelMappingDesc:"仅在 /responses/compact 请求中生效。当上游 compact 端点需要特殊 compact 模型时使用。",compactSupported:"支持 Compact",compactUnsupported:"不支持 Compact",compactAuto:"Compact Auto",compactUnknown:"Compact Auto",compactLastChecked:"最近探测",testMode:"测试模式",testModeDefault:"常规请求",testModeCompact:"Compact 探测",modelRestrictionDisabledByPassthrough:"已开启自动透传:模型白名单/映射不会生效。",modelMappingPassthroughHint:"已开启自动透传:模型映射仅用于名称转换(如 claude-* → gpt-5.4),不影响调度过滤。留空则所有模型直接透传。"},grok:{baseUrlHint:"Grok OAuth 账号会转发到官方 xAI API Base URL。",apiKeyHint:"Grok 订阅支持使用 OAuth refresh token;API Key 账号不在本次范围内。"},anthropic:{apiKeyPassthrough:"自动透传(仅替换认证)",apiKeyPassthroughDesc:"仅对 Anthropic API Key 生效。开启后,messages/count_tokens 请求将透传上游并仅替换认证,保留计费/并发/审计及必要安全过滤;关闭即可回滚到现有兼容链路。",signaturePrefilter:"中转思考签名预剥",signaturePrefilterDesc:"写在本账号 extra,不是系统设置里的「请求整流器」。仅中转号(非官方 api.anthropic.com)会在发出前剥掉加密 thinking/signature,避免跨号验签 400。默认关闭。开启后多轮思考会降成普通文本;
9被打码的思考会丢掉。",apiKeyAuthScheme:"上游认证方式",apiKeyAuthSchemeDesc:"选择转发到 Anthropic-compatible 上游时使用的 API Key 认证头。Ollama Cloud 使用 Authorization: Bearer。",apiKeyAuthSchemeXApiKey:"x-api-key",apiKeyAuthSchemeBearer:"Authorization: Bearer",webSearchEmulation:"Web Search 模拟",webSearchEmulationDesc:"为该 API Key 账号启用 web search 模拟。客户端发送纯 web_search 请求时,由网关调用第三方搜索 API 并构造响应返回。默认跟随渠道配置。",webSearchDefault:"默认",webSearchEnabled:"开启",webSearchDisabled:"关闭",upstreamBackend:"上游后端",upstreamBackendDesc:"中转账号背后的真实上游。013/022 填 GPT(Sol 1M),024/025 填 Grok(500k)。同一分组可同时挂四号:模型 ID 含 1M 时优先 GPT 号,不含则可走四号。未填时:官方 Anthropic 按目录窗口,s2/bestgpt 先按 500k。",upstreamBackendAuto:"自动(按 base_url)",upstreamBackendGPT:"GPT / Sol",upstreamBackendGrok:"Grok",upstreamMaxInputTokens:"上游最大输入 token",upstreamMaxInputTokensDesc:"估算 prompt 超过此窗口才跳过该账号。Sol 1M 填 1050000,Grok 填 500000。改完需清 Redis sched:acc:{id} 或等快照刷新。",upstreamMaxInputTokensPlaceholder:"例如: 1050000",identityPromptBridge:"Claude 身份提示词桥接",identityPromptBridgeDesc:"该账号实际上游是 GPT/Grok 时,按客户端 claude-* 模型注入系统设置里的身份提示词。已把上游后端标成 GPT/Grok 时也会自动生效。"},modelRestriction:"模型限制(可选)",modelWhitelist:"模型白名单",modelMapping:"模型映射",selectAllowedModels:"选择允许的模型。留空则支持所有模型。",mapRequestModels:"将请求模型映射到实际模型。左边是请求的模型,右边是发送到 API 的实际模型。",modelMappingNarrowWarning:`过窄 model_mapping 会静默过滤新模型,导致高峰 503;建议使用 {'{'}"gpt-*":"gpt-*"{'}'} 除非有意限制。`,modelMappingDefaultHint:`OpenAI 账号若留空,后端会默认写入 {'{'}"gpt-*":"gpt-*"{'}'} 宽白名单。`,selectedModels:"已选择 {count} 个模型",supportsAllModels:"(支持所有模型)",requestModel:"请求模型",actualModel:"实际模型",addMapping:"添加映射",modelMappingJsonImport:"JSON 批量导入",modelMappingJsonImportHint:`支持直接粘贴 {'{'}"请求模型":"实际模型"{'}'}、{'{'}"model_mapping": {'{'}...{'}'}{'}'}
9 或 [{'{'}"from":"请求模型","to":"实际模型"{'}'}]。`,modelMappingJsonImportPlaceholder:`{'{'}"claude-sonnet-4-6":"claude-sonnet-4-6","claude-opus-4-6":"claude-opus-4-6"{'}'}`,modelMappingJsonImportApply:"应用导入",modelMappingImportEmpty:"请先粘贴要导入的 JSON",modelMappingImportInvalid:"JSON 解析失败,请检查格式后重试",modelMappingImportSuccess:"已导入 {count} 条映射",modelMappingImportCleared:"导入结果为空,已清空当前映射列表",modelMappingSyncOpen:"按分组同步映射",modelMappingSyncOpenCurrent:"同步当前分组映射",modelMappingSyncDialogTitle:"按分组同步 model_mapping",modelMappingSyncDialogHint:"在这里直接编辑或导入一套 model_mapping,然后同步到所选分组下的全部账号。",modelMappingSyncEmptyHint:"如果映射列表留空,本次同步会清空所选分组下全部账号的 model_mapping。",modelMappingSyncRecommendedTitle:"推荐模板",modelMappingSyncRecommendedHint:"已根据当前分组 {group} 准备一套推荐起始映射,你可以直接填入后再微调。",modelMappingSyncApplyRecommended:"填入推荐模板",modelMappingSyncTarget:"同步到分组全部账号",modelMappingSyncTargetHint:"将当前白名单/映射转换后的 model_mapping 覆盖到所选分组下全部账号。",modelMappingSyncSelectGroup:"选择分组",modelMappingSyncAction:"同步当前映射",modelMappingSyncing:"同步中...",modelMappingSyncNoGroup:"请先选择要同步的分组",modelMappingSyncInvalidEntry:"每一条映射都必须同时填写请求模型和实际模型",modelMappingSyncSuccess:"已将当前映射同步到分组 {group} 的 {count} 个账号",modelMappingSyncPartial:"分组 {group} 同步完成:成功 {success} 个,失败 {failed} 个",mappingExists:"模型 {model} 的映射已存在",wildcardOnlyAtEnd:"通配符 * 只能放在末尾",targetNoWildcard:"目标模型不能包含通配符 *",searchModels:"搜索模型...",noMatchingModels:"没有匹配的模型",fillRelatedModels:"同步最新支持模型",syncUpstreamModels:"同步上游支持的模型",syncUpstreamModelsLoading:"同步上游中...",syncUpstreamModelsSuccess:"已从上游同步 {count} 个新模型(上游共 {total} 个)",syncUpstreamModelsNoChanges:"上游 {count} 个模型均已在白名单中",syncUpstreamModelsEmpty:"上游没有返回可同步的模型",syncUpstreamModelsFailed:"同步上游模型失败",syncUpstreamModelsError:"同步上游模型失败:{message}",syncUpstreamModelsMetadataIncomplete:"模型 ID 已同步,但未能更新任何能力元数据。",syncUpstreamModelsMetadataPartial:"已更新部分模型的能力元数据;其余模型能力仍不完整。",clearAllModels:"清除所有模型",customModelName:"自定义模型名称",enterCustomModelName:"输入自定义模型名称",addModel:"填入",modelExists:"该模型已存在",modelCount:"{count} 个模型",poolMode:"池模式",poolModeHint:"上游为账号池时启用,错误不标记本地账号状态",poolModeInfo:"启用后,上游 429/403/401 错误将自动重试而不标记账号限流或错误,适用于上游指向另一个 sub2api 实例的场景。",poolModeRetryCount:"同账号重试次数",poolModeRetryCountHint:"仅在池模式下生效。0 表示不原地重试;默认 {default},最大 {max}。",poolModeRetryStatusCodes:"同账号重试状态码",poolModeRetryStatusCodesHint:"仅在池模式下生效。以英文逗号分隔的 HTTP 状态码(100-599),命中时触发同账号重试。留空使用默认值({default})。",customErrorCodes:"自定义错误码",customErrorCodesHint:"仅对选中的错误码停止调度",customErrorCodesWarning:"仅选中的错误码会停止调度,其他错误将返回 500。",customErrorCodesEmptyError:"已开启自定义错误码但未选择任何错误码,请至少选择一个或关闭开关。",customErrorCodes429Warning:"429 已有内置的限流处理机制。添加到自定义错误码后,将直接停止调度而非临时限流。确定要添加吗?",customErrorCodes529Warning:"529 已有内置的过载处理机制。添加到自定义错误码后,将直接停止调度而非临时标记过载。确定要添加å
9—?",selectedErrorCodes:"已选择",noneSelectedUsesDefault:"未选择(使用默认策略)",enterErrorCode:"输入错误码 (100-599)",invalidErrorCode:"请输入有效的 HTTP 错误码 (100-599)",errorCodeExists:"该错误码已被选中",interceptWarmupRequests:"拦截预热请求",interceptWarmupRequestsDesc:"启用后,标题生成等预热请求将返回 mock 响应,不消耗上游 token",headerOverride:{title:"请求头覆写",hint:"转发时用配置值覆盖同名请求头(不区分大小写)",info:"仅对本账号的出站请求生效:配置的请求头会在转发前覆盖客户端/网关生成的同名头。认证头(authorization、x-api-key)与连接控制头不允许覆写。",namePlaceholder:"请求头名称(如 user-agent)",valuePlaceholder:"覆写值(留空表示不覆写)",addRow:"添加请求头",importJson:"JSON 导入",importJsonApply:"解析并填入",importJsonCancel:"取消",importJsonHint:"粘贴扁平 JSON 对象(请求头名 → 值),解析后将整体替换当前列表。",importJsonInvalid:'JSON 格式不正确:需要"请求头名 → 字符串值"的扁平对象',copyJson:"复制为 JSON",emptyValueHint:"值留空的行不会参与覆盖,仅作为待填写的占位。",bulkDisableHint:"保存后将关闭所选账号的请求头覆写并清空已有配置。",bulkReplaceHint:"保存后将用下方配置整体替换所选账号已有的请求头覆写配置。",bulkEmptyRows:"请至少添加一行请求头再保存;如需清空已有配置,请关闭上方开关。",invalidName:"请求头名称格式不正确(仅允许字母、数字和 !#$%&'*+-.^_`|~ 字符)",blockedName:"该请求头不允许覆写(认证头与连接控制头由系统管理)",duplicateName:"存在重复的请求头名称(匹配不区分大小写)",invalidValue:"请求头值不合法(不允许控制字符,长度不超过 8192)",tooManyEntries:"请求头覆写条目过多(最多 64 条)"},grokCustomBaseUrl:{title:"自定义上游地址",hint:"开启后账号流量(对话/媒体/探测)改发指定地址;OAuth 授权与令牌刷新不受影响,仍走官方端点。",placeholder:"https://relay.example.com/v1",required:"开启自定义上游地址后必须填写地址",invalid:"上游地址格式不正确(需为 http(s):// 开头的完整地址)",presets:{cli:"Grok Build CLI",official:"官方 API"}},grokClientToolCache:{title:"客户端工具缓存(可能改变自动工具选择)",hint:"仅对已识别为 Free 的 Grok OAuth 账号生效,默认会为 Codex、Trae 等客户端函数工具请求启用上游提示缓存;如不接受自动工具选择行为,可关闭此开关退出。"},grokMediaEligibility:{title:"媒体生成资格",hint:"控制该 Grok OAuth 账号是否可被图片和视频生成请求选中。",auto:"自动判断",enabled:"强制启用",disabled:"强制禁用",current:"当前判定:",eligible:"可用",ineligible:"不可用",loading:"正在读取媒体资格…",loadFailed:"无法读取媒体资格",autoHint:"自动判断只会清除手工覆盖,不会主动触发媒体请求。",forceEnableWarning:"强制启用会绕过自动资格检查,仅应对已确认支持生图/生视频的账号使用。",partialSave:"账号其他配置可能已保存,但媒体资格未更新,请重试。",reasons:{eligible:"已确认付费资格",billing_inconclusive:"Billing 信息不明确",billing_forbidden:"Billing 接口拒绝访问",billing_free_tier:"Free 账号",billing_unobserved:"尚未探测到 Billing",override_enabled:"手工强制启用",override_disabled:"手工强制禁用"}},autoPauseOnExpired:"过期自动暂停调度",autoPauseOnExpiredDesc:"启用后,账号过期将自动暂停调度",autoPause5hThreshold:"5h 用量阈值(%)",autoPause7dThreshold:"7d 用量阈值(%)",autoPauseThresholdHint:"留空或填 0 表示使用全局默认阈值(在运维设置中配置);填具体值则覆盖全局默认。达到阈值后仅在调度时跳过账号,不修改 schedulable。",autoPause5hDisabled:"禁用 5h 自动暂停",autoPause7dDisabled:"禁用 7d 自动暂停",autoPauseDisabledHint:"开启后该账号永不进入自动暂停(即使全局默认阈值已配置)。",quotaControl:{title:"配额控制",hint:"配置费用窗口、会话限制、客户端亲和等调度控制。",windowCost:{label:"5h窗口费用控制",hint:"限制账号在5小时窗口内的费用使用",limit:"费用阈值",limitPlaceholder:"50",limitHint:"达到阈值后不参与新请求调度",stickyReserve:"粘性预留额度",stickyReservePlaceholder:"10",stickyReserveHint:"为粘性会话预留的额外额度"},sessionLimit:{label:"会话数量控制",hint:"限制同时活跃的会话数量",maxSessions:"最大会话数",maxSessionsPlaceholder:"3",maxSessionsHint:"同时活跃的最大会话数量",idleTimeout:"空闲超时",idleTimeoutPlaceholder:"5",idleTimeoutHint:"会话空闲超时后自动释放"},rpmLimit:{label:"RPM 限制",hint:"限制每分钟请求数量,保护上游账号",baseRpm:"基础 RPM",baseRpmPlaceholder:"15",baseRpmHint:"每分钟最大请求数,0 或留空表示不限制",strategy:"RPM 策略",strategyTiered:"三区模型",strategyStickyExempt:"粘性豁免",strategyTieredHint:"绿区→黄区→仅粘性→阻塞,逐步限流",strategyStickyExemptHint:"超限后仅允许粘性会话",strategyHint:"三区模型: 超限后逐步限制; 粘性豁免: 已有会话不受限",stickyBuffer:"粘性缓冲区",stickyBufferPlaceholder:"默认: base RPM 的 20%",stickyBufferHint:"超过 base RPM 后,粘性会话额外允许的请求数。为空则使用默认值(base RPM 的 20%,最小为 1)",userMsgQueue:"用户消息限速",userMsgQueueHint:"对用户消息施加发送限制,避免触发上游 RPM 限制",umqModeOff:"关闭",umqModeThrottle:"软性限速",umqModeSerialize:"串行队列"},tlsFingerprint:{label:"TLS 指纹模拟",hint:"模拟 Node.js/Claude Code 客户端的 TLS 指纹",defaultProfile:"内置默认",randomProfile:"随机"},sessionIdMasking:{label:"会话 ID 伪装",hint:"启用后将在 
915 分钟内固定 metadata.user_id 中的 session ID,使上游认为请求来自同一会话"},cacheTTLOverride:{label:"缓存 TTL 强制替换",hint:"将所有缓存创建 token 强制按指定的 TTL 类型(5分钟或1小时)计费",target:"目标 TTL",targetHint:"选择计费使用的 TTL 类型"},customBaseUrl:{label:"自定义转发地址",hint:"启用后将请求转发到自定义中继服务,代理地址将作为 URL 参数传递给中继服务",urlHint:"中继服务地址(如 https://relay.example.com)"},clientAffinity:{label:"客户端亲和调度",hint:"启用后,新会话会优先调度到该客户端之前使用过的账号,避免频繁切换账号"}},affinityNoClients:"无亲和客户端",affinityClients:"{count} 个亲和客户端:",affinitySection:"客户端亲和",affinitySectionHint:"控制客户端在账号间的分布。通过配置区域阈值来平衡负载。",affinityToggle:"启用客户端亲和",affinityToggleHint:"新会话优先调度到该客户端之前使用过的账号",affinityBase:"基础限额(绿区)",affinityBasePlaceholder:"留空表示不限制",affinityBaseHint:"绿区最大客户端数量(完整优先级调度)",affinityBaseOffHint:"未开启绿区限制,所有客户端均享受完整优先级调度",affinityBuffer:"缓冲区(黄区)",affinityBufferPlaceholder:"例如 3",affinityBufferHint:"黄区允许的额外客户端数量(降级优先级调度)",affinityBufferInfinite:"不限制",expired:"已过期",proxy:"代理",noProxy:"无代理",concurrency:"并发数",loadFactor:"负载因子",loadFactorHint:"提高负载因子可以提高对账号的调度频率",priority:"优先级",priorityHint:"优先级越小的账号优先使用",groupPriority:"分组内优先级",groupPriorityHint:"排序越靠前优先级越高",moveUp:"上移",moveDown:"下移",billingRateMultiplier:"账号计费倍率",billingRateMultiplierHint:"0 表示不计费,仅影响账号计费",expiresAt:"过期时间",expiresAtHint:"留空表示不过期",expiresAtTimezoneHint:"输入按浏览器本地时区({timezone})解释。",higherPriorityFirst:"数值越小优先级越高",mixedScheduling:"在 /v1/messages 中使用",mixedSchedulingHint:"启用后可参与 Anthropic/Gemini 分组的调度",mixedSchedulingTooltip:"!!注意!! Antigravity Claude 和 Anthropic Claude 无法在同个上下文中使用,如果你同时有 Anthropic 账号和 Antigravity 账号,开启此选项会导致经常 400 报错。开启后,请用分组功能做好 Antigravity 账号和 Anthropic 账号的隔离。一定要弄明白再开启!!",aiCreditsBalance:"AI Credits",allowOverages:"允许超量请求 (AI Credits)",allowOveragesTooltip:"仅在免费配额被明确判定为耗尽后才会使用 AI Credits。普通并发 429 限流不会切换到超量请求。",creating:"创建中...",updating:"更新中...",accountCreated:"账号创建成功",accountUpdated:"账号更新成功",failedToCreate:"创建账号失败",failedToUpdate:"更新账号失败",pleaseSelectStatus:"请选择有效的账号状态",mixedChannelWarningTitle:"混合渠道警告",mixedChannelWarning:'警告:分组 "{groupName}" 中同时包含 {currentPlatform} 和 {otherPlatform} 账号。混合使用不同渠道可能导致 thinking block 签名验证问题,会自动回退到非 thinking 模式。确定要继续吗?',pleaseEnterAccountName:"请输入账号名称",pleaseEnterApiKey:"请输入 API Key",bedrockAccessKeyId:"AWS Access Key ID",bedrockSecretAccessKey:"AWS Secret Access Key",bedrockSessionToken:"AWS Session Token",bedrockRegion:"AWS Region",bedrockRegionHint:"例如 us-east-1, us-west-2, eu-west-1",bedrockForceGlobal:"强制使用 Global 跨区域推理",bedrockForceGlobalHint:"启用后模型 ID 使用 global. 前缀(如 global.anthropic.claude-...),请求可路由到全球任意支持的区域,获得更高可用性",bedrockAccessKeyIdRequired:"请输入 AWS Access Key ID",bedrockSecretAccessKeyRequired:"请输入 AWS Secret Access Key",bedrockRegionRequired:"请选择 AWS Region",bedrockSessionTokenHint:"可选,用于临时凭证",bedrockSecretKeyLeaveEmpty:"留空以保持当前密钥",bedrockAuthMode:"认证方式",bedrockAuthModeSigv4:"SigV4 签名",bedrockAuthModeApikey:"Bedrock API Key",bedrockApiKeyLabel:"Bedrock API Key",bedrockApiKeyDesc:"Bearer Token 认证",bedrockApiKeyInput:"API Key",bedrockApiKeyRequired:"请输入 Bedrock API Key",bedrockApiKeyLeaveEmpty:"留空以保持当前密钥",apiKeyIsRequired:"API Key 是必需的",leaveEmptyToKeep:"留空以保持当前密钥",upstream:{baseUrl:"上游 Base URL",baseUrlHint:"上游 Antigravity 服务的地址,例如:https://cloudcode-pa.googleapis.com",apiKey:"上游 API Key",apiKeyHint:"上游服务的 API Key",pleaseEnterBaseUrl:"请输入上游 Base URL",pleaseEnterApiKey:"请输入上游 API Key"},oauth:{title:"Claude 账号授权",authMethod:"授权方式",manualAuth:"手动授权",cookieAutoAuth:"Cookie 自动授权",cookieAutoAuthDesc:"使用 claude.ai sessionKey 自动完成 OAuth 授权,无需手动打开æµ
9è§ˆå™¨ã€‚",sessionKey:"sessionKey",keysCount:"{count} 个密钥",batchCreateAccounts:"将批量创建 {count} 个账号",sessionKeyPlaceholder:`每行一个 sessionKey,例如:
10sk-ant-sid01-xxxxx...
11sk-ant-sid01-yyyyy...`,sessionKeyPlaceholderSingle:"sk-ant-sid01-xxxxx...",howToGetSessionKey:"如何获取 sessionKey",step1:"在浏览器中登录 claude.ai",step2:"按 F12 打开开发者工具",step3:"切换到 Application 标签",step4:"找到 Cookies → https://claude.ai",step5:"找到 sessionKey 所在行",step6:"复制 Value 列的值",sessionKeyFormat:"sessionKey 通常以 sk-ant-sid01- 开头",startAutoAuth:"开始自动授权",authorizing:"授权中...",followSteps:"按照以下步骤授权您的 Claude 账号:",step1GenerateUrl:"点击下方按钮生成授权 URL",generateAuthUrl:"生成授权 URL",generating:"生成中...",regenerate:"重新生成",step2OpenUrl:"在浏览器中打开 URL 并完成授权",openUrlDesc:"在新标签页中打开授权 URL,登录您的 Claude 账号并授权。",proxyWarning:"注意:如果您配置了代理,请确保浏览器使用相同的代理访问授权页面。",step3EnterCode:"输入授权码",authCodeDesc:"授权完成后,页面会显示一个授权码。复制并粘贴到下方:",authCode:"授权码",authCodePlaceholder:"粘贴 Claude 页面的授权码...",authCodeHint:"粘贴从 Claude 页面复制的授权码",completeAuth:"完成授权",verifying:"验证中...",pleaseEnterSessionKey:"请输入至少一个有效的 sessionKey",authFailed:"授权失败",cookieAuthFailed:"Cookie 授权失败",keyAuthFailed:"密钥 {index}: {error}",successCreated:"成功创建 {count} 个账号",batchSuccess:"成功创建 {count} 个账号",batchPartialSuccess:"部分成功:{success} 个成功,{failed} 个失败",batchFailed:"批量创建失败",openai:{title:"OpenAI 账户授权",followSteps:"请按照以下步骤完成 OpenAI 账户的授权:",step1GenerateUrl:"点击下方按钮生成授权链接",generateAuthUrl:"生成授权链接",step2OpenUrl:"在浏览器中打开链接并完成授权",openUrlDesc:"请在新标签页中打开授权链接,登录您的 OpenAI 账户并授权。",importantNotice:"重要提示:授权后页面可能会加载较长时间,请耐心等待。当浏览器地址栏变为 http://localhost... 开头时,表示授权已完成。",step3EnterCode:"输入授权链接或 Code",authCodeDesc:"授权完成后,当页面地址变为 http://localhost:xxx/auth/callback?code=... 时:",authCode:"授权链接或 Code",authCodePlaceholder:`方式1:复制完整的链接
12(http://localhost:xxx/auth/callback?code=...)
13方式2:仅复制 code 参数的值`,authCodeHint:"您可以直接复制整个链接或仅复制 code 参数值,系统会自动识别",accessTokenAuth:"手动输入 AT",accessTokenDesc:"直接粘贴 Access Token 创建账号,无需 OAuth 授权流程。支持批量导入(每行一个)。",accessTokenPlaceholder:"粘贴 Access Token,每行一个",importAccessToken:"导入 Access Token",failedToGenerateUrl:"生成 OpenAI 授权链接失败",failedToExchangeCode:"OpenAI 授权码兑换失败",failedToValidateRT:"验证 Refresh Token 失败",errors:{OPENAI_OAUTH_PROXY_REQUIRED:"未设置代理,当前服务器无法直连 OpenAI,导致 OpenAI OAuth 请求失败。请先选择可访问 OpenAI 的代理后重试;如果授权码已失效,请重新生成授权链接。"},refreshTokenAuth:"手动输入 RT",refreshTokenDesc:"输入您已有的 OpenAI Refresh Token,支持批量输入(每行一个),系统将自动验证并创建账号。",refreshTokenPlaceholder:`粘贴您的 OpenAI Refresh Token...
14支持多个,每行一个`,mobileRefreshTokenAuth:"手动输入 Mobile RT",codexSessionAuth:"Codex OAuth auth.json / AT 导入",codexSessionDesc:"粘贴 Codex OAuth auth.json 或 accessToken,按第一步配置创建账号。",codexSessionInputLabel:"Codex OAuth auth.json 或 accessToken",codexSessionPlaceholder:"支持多行,每行一个 token 或 auth.json 对象",codexSessionHint:"OAuth session/accessToken 导入继续沿用原有过期规则。",codexSessionImportAndCreate:"导入并创建账号",codexSessionEmpty:"请输入 Codex auth.json 或 accessToken",codexSessionImportFailed:"Codex 账号导入失败",codexSessionImportSuccess:"导入完成:新增 {created},更新 {updated},跳过 {skipped}",codexSessionImportPartial:"部分成功:新增 {created},更新 {updated},跳过 {skipped},失败 {failed}",agentIdentityAuth:"Agent Identity auth.json",agentIdentityDesc:"导入 Codex Agent Identity auth.json,不保存 OAuth access token 或 refresh token。",agentIdentityInput
14Label:"Agent Identity auth.json",agentIdentityPlaceholder:"粘贴一个 Agent Identity auth.json 对象",agentIdentityHint:"文件必须使用 auth_mode=agentIdentity;每次上游请求都会动态签名。",agentIdentityInvalid:"请选择 auth_mode=agentIdentity 的 Codex auth.json。",codexPatAuth:"Codex Personal Access Token",codexPatDesc:"输入 Codex at- Personal Access Token,系统会先调用 OpenAI whoami 校验后再创建账号。",codexPatInputLabel:"Codex PAT",codexPatPlaceholder:"at-...",codexPatHint:"这是独立认证模式,不保存 refresh_token,也不会写入 OAuth access_token 过期时间。",codexPatImportAndCreate:"校验并创建 Codex PAT 账号",codexPatEmpty:"请输入 Codex Personal Access Token",codexPatImportFailed:"Codex PAT 账号创建失败",sessionTokenAuth:"手动输入 ST",sessionTokenDesc:"输入您已有的 Session Token,支持批量输入(每行一个),系统将自动验证并创建账号。",sessionTokenPlaceholder:`粘贴您的 Session Token...
15支持多个,每行一个`,sessionTokenRawLabel:"原始字符串",sessionTokenRawPlaceholder:"粘贴 /api/auth/session 原始数据或 Session Token...",sessionTokenRawHint:"支持粘贴完整 JSON,系统会自动解析 ST 和 AT。",openSessionUrl:"打开获取链接",copySessionUrl:"复制链接",sessionUrlHint:"该链接通常可获取 AT。若返回中无 sessionToken,请从浏览器 Cookie 复制 __Secure-next-auth.session-token 作为 ST。",parsedSessionTokensLabel:"解析出的 ST",parsedSessionTokensEmpty:"未解析到 ST,请检查输入内容",parsedAccessTokensLabel:"解析出的 AT",validating:"验证中...",validateAndCreate:"验证并创建账号",pleaseEnterRefreshToken:"请输入 Refresh Token",pleaseEnterSessionToken:"请输入 Session Token"},grok:{ssoCookieAuth:"SSO Cookie 导入",ssoCookieDesc:"每行粘贴一个 Grok Web SSO key,系统会自动走 xAI Device Flow 并转换为 Grok Build OAuth 凭据。",ssoCookieLabel:"Grok Web SSO Key",ssoCookiePlaceholder:`每行一个 SSO key
16支持多个,每行一个`,ssoCookieHint:"每行一个 SSO key;多个 key 会 3 路并发导入,耗时约 90 秒 × 批次数,建议使用对应地区代理。",convertingSSO:"转换中...",convertSSOAndCreate:"转换并创建账号",failedToConvertSSO:"Grok SSO 转换失败",loginImportAuth:"邮箱密码登录导入",loginImportDesc:"每行输入一组 email|password,系统会自动完成登录、SSO 提取、OAuth 转换并创建账号。",loginImportLabel:"登录凭据",loginImportPlaceholder:`email|password
17每行一组,用竖线分隔`,loginImportHint:"格式:email|password,每行一组。会自动过验证码、登录、提取 SSO 并转换为 OAuth 凭据。",loginImportNamePrefix:"名称前缀",loginImportStartIndex:"起始编号",loginImporting:"登录导入中...",loginImportAndCreate:"登录并创建账号",failedToLoginImport:"Grok 登录导入失败",yescaptchaKeyRequiredHint:"缺少 YesCaptcha 密钥:请在服务端配置 grok.yescaptcha_key 或环境变量 GROK_YESCAPTCHA_KEY(管理端 UI 不收集该密钥)。",errors:{GROK_OAUTH_SESSION_NOT_FOUND:"Grok OAuth 会话不存在或已过期。请重新生成授权链接,并粘贴最新的回调链接。",GROK_OAUTH_INVALID_STATE:"Grok OAuth state 与当前会话不匹配。请粘贴同一次生成的授权链接返回的回调 URL。",GROK_OAUTH_STATE_REQUIRED:"回调链接缺少 OAuth state。请粘贴完整 callback URL,不要只粘贴 code。",GROK_OAUTH_CODE_REQUIRED:"缺少 Grok 授权码。请粘贴完整 callback URL、查询字符串或 code 值。",GROK_OAUTH_NO_REFRESH_TOKEN:"Grok 响应未返回 refresh token。请重新生成授权链接,并再次确认 offline access 授权。",GROK_OAUTH_PROXY_NOT_AVAILABLE:"无法查询 Grok OAuth 代理配置。请检查选择的代理后重试。",GROK_OAUTH_PROXY_NOT_FOUND:"找不到所选代理。请选择可用代理后重试。"},title:"Grok 账号授权",followSteps:"请按照以下步骤授权您的 xAI/Grok 账号:",step1GenerateUrl:"生成 xAI 授权链接",generateAuthUrl:"生成授权链接",step2OpenUrl:"在浏览器中打开链接并完成授权",openUrlDesc:"在新标签页中打开授权链接ï¼
17Œç™»å½• xAI 并授权 API 访问。",importantNotice:"当浏览器跳转到本地 callback URL 后,请复制完整 URL 或 code 参数回填到这里。",step3EnterCode:"输入授权链接或 Code",authCodeDesc:"授权完成后,粘贴 callback URL、查询字符串或授权码:",authCode:"授权链接或 Code",authCodePlaceholder:"粘贴完整 callback URL、?code=... 查询字符串或 code 值",authCodeHint:"支持完整 callback URL、查询字符串或裸 code。",refreshTokenAuth:"手动输入 RT",refreshTokenDesc:"输入已有的 xAI refresh token,支持批量输入(每行一个)。",refreshTokenPlaceholder:`粘贴您的 xAI refresh token...
18支持多个,每行一个`,validating:"验证中...",validateAndCreate:"验证并创建账号",pleaseEnterRefreshToken:"请输入 Refresh Token",failedToGenerateUrl:"生成 Grok 授权链接失败",missingExchangeParams:"缺少授权码、state 或 OAuth 会话",failedToExchangeCode:"Grok 授权码兑换失败",failedToValidateRT:"验证 Grok refresh token 失败",oauthOnlyHint:"首版 Grok 支持仅包含 OAuth 订阅的 Responses API 文本/推理转发。"},gemini:{title:"Gemini 账户授权",followSteps:"请按照以下步骤完成 Gemini 账户的授权:",step1GenerateUrl:"生成授权链接",generateAuthUrl:"生成授权链接",projectIdLabel:"Project ID(可选)",projectIdPlaceholder:"例如:my-gcp-project 或 cloud-ai-companion-xxxxx",projectIdHint:"留空则在兑换授权码后自动探测;若自动探测失败,可填写后重新生成授权链接再授权。",howToGetProjectId:"如何获取",step2OpenUrl:"在浏览器中打开链接并完成授权",openUrlDesc:"请在新标签页中打开授权链接,登录您的 Google 账户并授权。",step3EnterCode:"输入回调链接或 Code",authCodeDesc:"授权完成后,复制浏览器跳转后的回调链接(推荐)或仅复制 code,粘贴到下方即可。",authCode:"回调链接或 Code",authCodePlaceholder:`方式1(推荐):粘贴回调链接
19方式2:仅粘贴 code 参数的值`,authCodeHint:"系统会自动从链接中解析 code/state。",redirectUri:"Redirect URI",redirectUriHint:"需要在 Google OAuth Client 中配置,且必须与此处完全一致。",confirmRedirectUri:"我已在 Google OAuth Client 中配置了该 Redirect URI(必须完全一致)",invalidRedirectUri:"Redirect URI 必须是合法的 http(s) URL",redirectUriNotConfirmed:"请确认 Redirect URI 已在 Google OAuth Client 中正确配置",missingRedirectUri:"缺少 Redirect URI",failedToGenerateUrl:"生成 Gemini 授权链接失败",missingExchangeParams:"缺少 code / session_id / state",failedToExchangeCode:"Gemini 授权码兑换失败",missingProjectId:"GCP Project ID 获取失败:您的 Google 账号未关联有效的 GCP 项目。请前往 Google Cloud Console 激活 GCP 并绑定信用卡,或在授权时手动填写 Project ID。",modelPassthrough:"Gemini 直接转发模型",modelPassthroughDesc:"所有模型请求将直接转发至 Gemini API,不进行模型限制或映射。",stateWarningTitle:"提示",stateWarningDesc:"建议粘贴完整回调链接(包含 code 和 state)。",oauthTypeLabel:"OAuth 类型",needsProjectId:"内置授权(Code Assist)",needsProjectIdDesc:"需要 GCP 项目与 Project ID",noProjectIdNeeded:"自定义授权(AI Studio)",noProjectIdNeededDesc:"需管理员配置 OAuth Client",aiStudioNotConfiguredShort:"未配置",aiStudioNotConfiguredTip:"AI Studio OAuth 未配置:请先设置 GEMINI_OAUTH_CLIENT_ID / GEMINI_OAUTH_CLIENT_SECRET,并在 Google OAuth Client 添加 Redirect URI:http://localhost:1455/auth/callback(Consent Screen scopes 需包含 https://www.googleapis.com/auth/generative-language.retriever)",aiStudioNotConfigured:"AI Studio OAuth 未配置:请先设置 GEMINI_OAUTH_CLIENT_ID / GEMINI_OAUTH_CLIENT_SECRET,并在 Google OAuth Client 添加 Redirect URI:http://localhost:1455/auth/callback"},antigravity:{title:"Antigravity 账户授权",followSteps:"请按照以下步骤完成 Antigravity 账户的授权:",step1GenerateUrl:"生成授权链接",generateAuthUrl:"生成授权链接",step2OpenUrl:"在浏览器中打开链接并完成授权",openUrlDesc:"请在新标签页中打开授权链接ï¼
19Œç™»å½•您的 Google 账户并授权。",importantNotice:"重要提示:授权后页面可能会加载较长时间,请耐心等待。当浏览器地址栏变为 http://localhost... 开头时,表示授权已完成。",step3EnterCode:"输入授权链接或 Code",authCodeDesc:"授权完成后,当页面地址变为 http://localhost:xxx/auth/callback?code=... 时:",authCode:"授权链接或 Code",authCodePlaceholder:`方式1:复制完整的链接
20(http://localhost:xxx/auth/callback?code=...)
21方式2:仅复制 code 参数的值`,authCodeHint:"您可以直接复制整个链接或仅复制 code 参数值,系统会自动识别",failedToGenerateUrl:"生成 Antigravity 授权链接失败",missingExchangeParams:"缺少 code / session_id / state",failedToExchangeCode:"Antigravity 授权码兑换失败",refreshTokenAuth:"手动输入 RT",refreshTokenDesc:"输入您已有的 Antigravity Refresh Token,支持批量输入(每行一个),系统将自动验证并创建账号。",refreshTokenPlaceholder:`粘贴您的 Antigravity Refresh Token...
22支持多个,每行一个`,validating:"验证中...",validateAndCreate:"验证并创建账号",pleaseEnterRefreshToken:"请输入 Refresh Token",failedToValidateRT:"验证 Refresh Token 失败"}},gemini:{helpButton:"使用帮助",helpDialog:{title:"Gemini 使用指南",apiKeySection:"API Key 相关链接"},modelPassthrough:"Gemini 直接转发模型",modelPassthroughDesc:"所有模型请求将直接转发至 Gemini API,不进行模型限制或映射。",baseUrlHint:"留空使用官方 Gemini API",apiKeyHint:"您的 Gemini API Key(以 AIza 开头)",tier:{label:"账号等级",hint:"提示:系统会优先尝试自动识别账号等级;若自动识别不可用或失败,则使用你选择的等级作为回退(本地模拟配额)。",aiStudioHint:"AI Studio 的配额是按模型分别限流(Pro/Flash 独立)。若已绑卡(按量付费),请选 Pay-as-you-go。",googleOne:{free:"Google One Free",pro:"Google One Pro",ultra:"Google One Ultra"},gcp:{standard:"GCP Standard",enterprise:"GCP Enterprise"},aiStudio:{free:"Google AI Free",paid:"Google AI Pay-as-you-go"}},accountType:{oauthTitle:"OAuth 授权(Gemini)",oauthDesc:"使用 Google 账号授权,并选择 OAuth 子类型。",apiKeyTitle:"API 密钥(AI Studio)",apiKeyDesc:"最快接入方式,使用 AIza API Key。",apiKeyNote:"适合轻量测试。免费层限流严格,数据可能用于训练。",apiKeyLink:"获取 API Key",quotaLink:"配额说明"},oauthType:{builtInTitle:"内置授权(Gemini CLI / Code Assist)",builtInDesc:"使用 Google 内ç
22½®å®¢æˆ·ç«¯ ID,无需管理员配置。",builtInRequirement:"需要 GCP 项目并填写 Project ID。",googleOneDesc:"个人账号,享受 Google One 订阅配额",codeAssistDesc:"企业级,需要 GCP 项目",codeAssistRequirement:"需要激活 GCP 项目并绑定信用卡",showAdvanced:"显示高级选项(自建 OAuth Client)",hideAdvanced:"隐藏高级选项(自建 OAuth Client)",gcpProjectLink:"创建项目",customTitle:"自定义授权(AI Studio OAuth)",customDesc:"使用管理员预设的 OAuth 客户端,适合组织管理。",customRequirement:"需管理员配置 Client ID 并加入测试用户白名单。",badges:{recommended:"推荐",highConcurrency:"高并发",individuals:"推荐个人用户",noGcp:"无需 GCP",enterprise:"企业用户",noAdmin:"无需管理员配置",orgManaged:"组织管理",adminRequired:"需要管理员"}},setupGuide:{title:"Gemini 使用准备",checklistTitle:"准备工作",checklistItems:{usIp:"使用美国 IP,并确保账号归属地为美国。",age:"账号需满 18 岁。"},activationTitle:"服务激活",activationItems:{geminiWeb:"激活 Gemini Web,避免 User not initialized。",gcpProject:"激活 GCP 项目,获取 Code Assist 所需 Project ID。"},links:{countryCheck:"检查归属地",countryChange:"修改归属地",geminiWebActivation:"激活 Gemini Web",gcpProject:"打开 GCP 控制台"}},quotaPolicy:{title:"Gemini 配额与限流政策(参考)",note:"注意:Gemini 官方未提供用量查询接口。此处显示的“每日配额”是由系统根据账号等级模拟计算的估算值,仅供调度参考,请以 Google 官方实际报错为准。",columns:{channel:"授权通道",account:"账号状态",limits:"限流政策",docs:"官方文档"},docs:{codeAssist:"Code Assist 配额",aiStudio:"AI Studio 定价",vertex:"Vertex AI 配额"},simulatedNote:"本地模拟配额,仅供参考",rows:{googleOne:{channel:"Google One OAuth(个人版 / Code Assist for Individuals)",limitsFree:"共享池:1000 RPD / 60 RPM(不分模型)",limitsPro:"共享池:1500 RPD / 120 RPM(不分模型)",limitsUltra:"共享池:2000 RPD / 120 RPM(不分模型)"},gcp:{channel:"GCP Code Assist OAuth(企业版)",limitsStandard:"共享池:1500 RPD / 120 RPM(不分模型)",limitsEnterprise:"共享池:2000 RPD / 120 RPM(不分模型)"},cli:{channel:"Gemini CLI(官方 Google 登录 / Code Assist)",free:"免费 Google 账号",premium:"Google One AI Premium",limitsFree:"RPD ~1000;RPM ~60(软限制)",limitsPremium:"RPD ~1500+;RPM ~60+(优先队列)"},gcloud:{channel:"GCP Code Assist(gcloud 登录)",account:"未购买 Code Assist 订阅",limits:"RPD ~1000;RPM ~60(预览期)"},aiStudio:{channel:"AI Studio API Key / OAuth",free:"未绑卡(免费层)",paid:"已绑卡(按量付费)",limitsFree:"RPD 50;RPM 2(Pro)/ 15(Flash)",limitsPaid:"RPD 不限;RPM 1000(Pro)/ 2000(Flash)(按模型配额)"},customOAuth:{channel:"Custom OAuth Client(GCP)",free:"项目未绑卡",paid:"项目已绑卡",limitsFree:"RPD 50;RPM 2(项目配额)",limitsPaid:"RPD 不限;RPM 1000+(项目配额)"}}},rateLimit:{ok:"未限流",unlimited:"无限流",limited:"限流 {time}",now:"现在"}},reAuthorizeAccount:"重新授权账号",claudeCodeAccount:"Claude Code 账号",openaiAccount:"OpenAI 账号",geminiAccount:"Gemini 账号",antigravityAccount:"Antigravity 账号",grokAccount:"Grok 账号",inputMethod:"输入方式",reAuthorizedSuccess:"账号重新授权成功",testAccountConnection:"测试账号连接",account:"账号",readyToTest:'准备测试。点击"开始测试"按钮开始...',connectingToApi:"连接 API 中...",testCompleted:"测试完成!",connectedToApi:"已连接到 API",usingModel:"使用模型:{model}",sendingTestMessage:'发送测试消息:"hi"',sendingImageRequest:"发送生图测试请求...",response:"响应:",startTest:"开始测试",retry:"重试",copyOutput:"复制输出",outputCopied:"输出已复制",startingTestForAccount:"开始测试账号:{name}",testAccountTypeLabel:"账号类型:{type}",selectTestModel:"选择测试模型",testModel:"测试模型",testPrompt:'提示词:"hi"',imagePromptLabel:"生图提示词",imagePromptPlaceholder:"ä¾
22‹å¦‚:生成一只戴宇航员头盔的橘猫,像素插画风格,纯色背景。",imagePromptDefault:"Generate a cute orange cat astronaut sticker on a clean pastel background.",imageTestHint:"选择图片模型后,这里会直接发起生图测试,并在下方展示返回图片。",imageTestMode:"模式:生图测试",imagePreview:"生成结果:",imageReceived:"已收到第 {count} 张测试图片",viewStats:"查看统计",usageStatistics:"使用统计",last30DaysUsage:"近30天使用统计(日均基于实际使用天数)",stats:{totalCost:"30天总费用",accumulatedCost:"累计成本",standardCost:"标准计费",standardCostShort:"标准",totalRequests:"30天总请求",totalCalls:"累计调用次数",avgDailyCost:"日均费用",basedOnActualDays:"基于 {days} 天实际使用",avgDailyRequests:"日均请求",avgDailyUsage:"平均每日调用",billingExplanationTitle:"计费口径说明",billingExplanationBody:"账号计费用于观察账号成本与账号配额消耗;用户扣费用于观察用户或 API Key 实际被计费的金额。",accountFormulaBadge:"账号计费 = 标准成本 × 账号倍率",userFormulaBadge:"用户扣费 = 用户口径金额 × 账号倍率",accountMultiplierValue:"账号倍率 {value}",billingGapHint:"当 A 与 U 不一致时,优先检查分组倍率、用户专属倍率和当天命中的分组分布;这通常不代表重复扣费。",todayStatsFormulaShort:"A=账号计费,U=用户扣费;差额通常来自分组或用户倍率。",todayOverview:"今日概览",cost:"费用",requests:"请求",tokens:"Token",highestCostDay:"最高费用日",highestRequestDay:"最高请求日",date:"日期",accumulatedTokens:"累计 Token",totalTokens:"30天总计",dailyAvgTokens:"日均 Token",performance:"性能",avgResponseTime:"平均响应",daysActive:"活跃天数",recentActivity:"最近统计",todayRequests:"今日请求",todayTokens:"今日 Token",todayCost:"今日费用",usageTrend:"30天费用与请求趋势",noData:"该账号暂无使用数据"}},scheduledTests:{title:"定时测试",addPlan:"添加计划",editPlan:"编辑计划",deletePlan:"删除计划",model:"模型",cronExpression:"Cron 表达式",enabled:"启用",lastRun:"上次运行",nextRun:"下次运行",maxResults:"最大结果数",noPlans:"暂无定时测试计划",confirmDelete:"确定要删除此计划吗?",createSuccess:"计划创建成功",updateSuccess:"计划更新成功",deleteSuccess:"计划删除成功",results:"测试结果",noResults:"暂无测试结果",responseText:"响应",errorMessage:"错误",success:"成功",failed:"失败",running:"运行中",schedule:"定时测试",cronHelp:"标准 5 字段 cron 表达式(例如 */30 * * * *)",cronTooltipTitle:"Cron 表达式示例:",cronTooltipMeaning:"用于定义自动执行测试的时间规则,格式依次为:分钟 小时 日 月 星期。",cronTooltipExampleEvery30Min:"*/30 * * * *:每 30 分钟运行一次",cronTooltipExampleHourly:"0 * * * *:每小时整点运行一次",cronTooltipExampleDaily:"0 9 * * *:每天 09:00 运行一次",cronTooltipExampleWeekly:"0 9 * * 1:每周一 09:00 运行一次",cronTooltipRange:"推荐填写范围:使用标准 5 字段 cron;如果只是健康检查,建议从每 30 分钟、每 1 小时或每天固定时间开始,不建议一开始就设置过高频率。",maxResultsTooltipTitle:"最大结果数说明:",maxResultsTooltipMeaning:"用于限制单个计划最多保留多少条历史测试结果,避免结果列表无限增长。",maxResultsTooltipBody:"系统只会保留最近的测试结果;当保存数量超过这个值时,更早的历史记录会自动清理,避免列表过长和存储持续增长。",maxResultsTooltipExample:"例如填写 100,表示最多保存最近 100 次测试结果;第 101 次结果写入后,最早的一条会被清理。",maxResultsTooltipRange:"推荐填写范围:一般可填 20 到 200。只关注近期可用性时可填 20-50;需要回看较长时间的波动趋势时可填 100-200。",autoRecover:"自动恢复",autoRecoverHelp:"测试成功后自动恢复异常状态的账号"},siteConfigs:{title:"站点配置",description:"多个域名共用同一套后端时,按站点开关微信登录、微信支付(充值)、谷歌登录,并配置站点服务器带宽用于流量拥堵评估。未配置的域名继承全局
22设置。",create:"新增站点",edit:"编辑站点",delete:"删除站点",empty:"暂无按站点配置(所有域名均继承全局设置)",saved:"站点配置已保存",deleted:"站点配置已删除",deleteConfirm:"确定删除站点 {domain} 的配置吗?删除后该域名将回退到全局设置。",failedToLoad:"加载站点配置失败",failedToSave:"保存站点配置失败",failedToDelete:"删除站点配置失败",columns:{domain:"域名",wechatLogin:"微信登录",recharge:"微信支付(充值)",googleLogin:"谷歌登录",stripe:"Stripe 支付",imageGen:"图像生成",immersiveChat:"沉浸式聊天",bandwidth:"带宽 (Mbps)",monthlyTraffic:"月流量",actions:"操作"},resetDayShort:"每月{day}日重置",toggle:{inherit:"继承全局",on:"开启",off:"关闭"},features:{turnstileEnabled:"Turnstile 人机验证",turnstileEnabledHint:"强制开启前请确认全局设置已配置 Turnstile Site Key 与 Secret Key(密钥不分站点),否则该站点登录/注册会被卡住。"},form:{domain:"域名",domainPlaceholder:"如 code80.ai",domainHint:"请填写规范化域名(小写、不含端口与协议)。",domainRequired:"域名不能为空",displayName:"备注名称(可选)",stripeHint:"Stripe 无全局开关,默认关闭;开启后还需该站点服务器配置 Stripe 密钥才会生效。",inheritHint:"“继承全局”表示该开关跟随系统全局设置;“开启/关闭”仅对本站点生效。",bandwidth:"服务器带宽(Mbps)",bandwidthHint:"站点监控按实时流量占带宽的比例评估拥堵程度(绿/黄/橙/红);0 表示未配置,不做评估。",bandwidthInvalid:"带宽必须为非负整数",trafficResetDay:"月流量重置日",trafficResetDayHint:"流量账期从每月该日 0 点起算(1-31);重置日超出当月天数时按月末重置,如 31 日在二月按 2 月末重置。",trafficResetDayInvalid:"月流量重置日必须为 1-31 的整数",monthlyTrafficLimit:"月流量额度(GB)",monthlyTrafficLimitHint:"服务器套餐的月流量上限,用于站点监控的月流量水位展示与后续流量告警;0 表示未配置,仅展示用量。",monthlyTrafficLimitInvalid:"月流量额度必须为非负整数(GB)"}},proxies:{title:"IP管理",description:"管理代理服务器配置",createProxy:"添加代理",editProxy:"编辑代理",deleteProxy:"删除代理",ad:{inline:"正在寻找合适的代理 IP?"},deleteConfirmMessage:"确定要删除代理 '{name}' 吗?",testProxy:"测试代理",dataImport:"导入",dataExportSelected:"导出选中",dataImportTitle:"导入代理",dataImportHint:"上传代理导出的 JSON 文件以批量导入代理。",dataImportWarning:"导入将创建或复用代理,保留状态并在完成后自动触发延迟检测。",dataImportFile:"数据文件",dataImportButton:"开始导入",dataImporting:"导入中...",dataImportSelectFile:"请选择数据文件",dataImportParseFailed:"数据解析失败",dataImportFailed:"数据导入失败",dataImportResult:"导入结果",dataImportResultSummary:"创建 {proxy_created},复用 {proxy_reused},失败 {proxy_failed}",dataImportErrors:"失败详情",dataImportSuccess:"导入完成:创建 {proxy_created},复用 {proxy_reused}",dataImportCompletedWithErrors:"导入完成但有错误:失败 {proxy_failed}",dataExport:"导出",dataExportConfirmMessage:"导出的数据包含代理的敏感信息,请妥善保存。",dataExportConfirm:"确认导出",dataExported:"数据导出成功",dataExportFailed:"数据导出失败",columns:{name:"名称",protocol:"协议",address:"地址",auth:"认证",location:"地理位置",status:"状态",accounts:"账号数",latency:"延迟",expiry:"有效期",createdAt:"创建时间",actions:"操作",nameLabel:"名称",namePlaceholder:"请输入代理名称",protocolLabel:"协议",selectProtocol:"选择协议",hostLabel:"主机",hostPlaceholder:"请输入主机地址",portLabel:"端口",portPlaceholder:"请输入端口",usernameLabel:"用户名(可选)",usernamePlaceholder:"请输入用户名",passwordLabel:"密码(可选)",passwordPlaceholder:"请输入密码",priorityLabel:"优先级",statusLabel:"状态"},filters:{protocol:"协议",allProtocols:"全部协议",status:"状态",allStatuses:"全部状态"}
22,copyProxyUrl:"复制代理 URL",urlCopied:"代理 URL 已复制",allProtocols:"全部协议",allStatus:"全部状态",searchProxies:"搜索代理...",protocols:{http:"HTTP",https:"HTTPS",socks5:"SOCKS5",socks5h:"SOCKS5H (远程 DNS)"},name:"名称",protocol:"协议",host:"主机",port:"端口",username:"用户名(可选)",password:"密码(可选)",status:"状态",enterProxyName:"请输入代理名称",optionalAuth:"可选认证信息",leaveEmptyToKeep:"留空保持不变",form:{hostPlaceholder:"请输入主机地址",portPlaceholder:"请输入端口"},noProxiesYet:"暂无代理",createFirstProxy:"添加您的第一个代理以开始使用。",testConnection:"测试连接",qualityCheck:"质量检测",batchQualityCheck:"批量质量检测",batchTest:"批量测试",testFailed:"失败",latencyFailed:"链接失败",batchTestEmpty:"暂无可测试的代理",batchTestDone:"批量测试完成,共测试 {count} 个代理",batchTestFailed:"批量测试失败",batchDeleteAction:"删除",batchDelete:"批量删除",batchDeleteConfirm:"确定删除选中的 {count} 个代理吗?已被账号使用的将自动跳过。",batchDeleteDone:"已删除 {deleted} 个代理,跳过 {skipped} 个",batchDeleteSkipped:"已跳过 {skipped} 个代理",batchDeleteFailed:"批量删除失败",deleteBlockedInUse:"该代理已有账号使用,无法删除",deleteReassignConfirm:"代理 '{name}' 下有 {count} 个账号,删除前将把这些账号迁移到所选代理。确定继续吗?",deleteReassignTarget:"迁移到代理",deleteNoReassignTarget:"没有可用的迁移目标代理(仅限激活状态),请先添加或启用其他代理",reassignOptionsLoadFailed:"获取迁移目标代理列表失败,请重试",accountsTitle:"使用该IP的账号",accountsEmpty:"暂无账号使用此代理",accountsFailed:"获取账号列表失败",errorSeries:"EOF曲线",errorSeriesTitle:"错误曲线 - {name}",errorSeriesHint:"基于网关失败上报的分钟级计数(保留 7 天)",errorSeriesEmpty:"所选时间范围内没有错误记录",errorSeriesFailed:"获取错误曲线失败",errorSeriesEof:"EOF",errorSeriesTimeout:"超时",errorSeriesConnectionReset:"连接重置",accountName:"账号名称",accountPlatform:"所属平台",accountNotes:"备注",standardAdd:"标准添加",batchAdd:"快捷添加",batchInput:"代理列表",batchInputPlaceholder:`每行输入一个代理,支持以下格式:
23socks5://user:pass{'@'}192.168.1.1:1080
24http://192.168.1.1:8080
25https://user:pass{'@'}proxy.example.com:443`,batchInputHint:"支持 http、https、socks5 协议,格式:协议://[用户名:密码{'@'}]主机:端口",parsedCount:"有效 {count} 个",invalidCount:"无效 {count} 个",duplicateCount:"重复 {count} 个",importing:"导入中...",importProxies:"导入 {count} 个代理",batchImportSuccess:"成功导入 {created} 个代理,跳过 {skipped} 个重复",batchImportAllSkipped:"全部 {skipped} 个代理已存在,跳过导入",failedToImport:"批量导入失败",saving:"保存中...",testing:"测试中...",creating:"创建中...",updating:"更新中...",noProxies:"暂无代理",noProxiesDescription:"添加代理服务器以增强 API 访问稳定性ã€
25‚",proxyCreated:"代理添加成功",proxyUpdated:"代理更新成功",proxyDeleted:"代理删除成功",proxyWorking:"代理连接正常",proxyWorkingWithLatency:"代理连接正常,延迟 {latency}ms",proxyTestFailed:"代理测试失败",qualityCheckDone:"质量检测完成:评分 {score}({grade})",qualityCheckFailed:"代理质量检测失败",batchQualityDone:"批量质量检测完成,共检测 {count} 个;优质 {healthy} 个,告警 {warn} 个,挑战 {challenge} 个,异常 {failed} 个",batchQualityFailed:"批量质量检测失败",batchQualityEmpty:"暂无可检测质量的代理",qualityReportTitle:"代理质量检测报告",qualityGrade:"等级 {grade}",qualityExitIP:"出口 IP",qualityCountry:"出口地区",qualityBaseLatency:"基础延迟",qualityCheckedAt:"检测时间",qualityTableTarget:"检测项",qualityTableStatus:"状态",qualityTableLatency:"延迟",qualityTableMessage:"说明",qualityInline:"质量 {grade}/{score}",qualityStatusHealthy:"优质",qualityStatusPass:"通过",qualityStatusWarn:"告警",qualityStatusFail:"失败",qualityStatusChallenge:"挑战",qualityTargetBase:"基础连通性",proxyCreatedSuccess:"代理添加成功",proxyUpdatedSuccess:"代理更新成功",proxyDeletedSuccess:"代理删除成功",testSuccess:"代理测试通过",failedToLoad:"加载代理列表失败",failedToSave:"保存代理失败",failedToDelete:"删除代理失败",failedToCreate:"创建代理失败",failedToUpdate:"更新代理失败",failedToTest:"测试代理失败",nameRequired:"请输入代理名称",hostRequired:"请输入主机地址",portInvalid:"端口必须在 1-65535 之间",deleteConfirm:"确定要删除代理 '{name}' 吗?使用此代理的账号将被移除代理设置。",neverExpires:"永不过期",expired:"已过期",overdueDays:"已超期 {days} 天",expiringInDays:"{days} 天后到期",remainingDays:"剩余 {days} 天",expiresAt:"有效期",nDays:"{days} 天",expiryDaysPlaceholder:"自定义天数,留空 = 永不过期",expiryWarnDays:"到期提醒提前天数",fallbackMode:"到期回退",fallbackNone:"不回退",fallbackProxy:"指定备用代理",fallbackDirect:"回退直连",backupProxy:"备用代理"},redeem:{title:"兑换码管理",description:"生成和管理兑换码",generateCodes:"生成兑换码",columns:{code:"兑换码",type:"类型",value:"面值",status:"状态",usedBy:"使用者",usedAt:"使用时间",expiresAt:"过期时间",createdAt:"创建时间",actions:"操作"},types:{balance:"余额",concurrency:"并发数",subscription:"订阅",invitation:"邀请码",admin_balance:"余额(管理员)",admin_concurrency:"并发数(管理员)"},balance:"余额",concurrency:"并发数",subscription:"订阅",invitation:"邀请码",invitationHint:"邀请码用于限制用户注册,使用后自动标记为已使用。",allTypes:"全部类型",allStatus:"全部状态",unused:"未使用",used:"已使用",searchCodes:"搜索兑换码或邮箱...",exportCsv:"导出 CSV",batchUpdate:"批量修改",batchUpdateTitle:"批量修改兑换码",selectedCount:"已选择 {count} 个兑换码",clearSelection:"清空选择",selectCodesFirst:"请先选择兑换码",noBatchFieldsSelected:"请至少勾选一个要修改的字段",batchUpdateSuccess:"成功修改 {count} 个兑换码",failedToBatchUpdate:"批量修改兑换码失败",batchFields:{status:"状态",expiresAt:"过期时间",notes:"备注",group:"分组"},batchNotesPlaceholder:"输入新的备注,留空可清空备注",clearGroup:"清空分组",deleteAllUnused:"删除全部未使用",deleteCodeConfirm:"确定要删除此兑换码吗?此操作无法撤销。",deleteAllUnusedConfirm:"确定要删除全部未使用的兑换码吗?此操作无法撤销。",deleteAll:"全部删除",generateCodesTitle:"生成兑换码",generatedSuccessfully:"生成成功",codesCreated:"已创建 {count} 个兑换码",codeType:"类型",amount:"金额 ($)",value:"面值",count:"数量",generate:"生成",copyAll:"全部复制",download:"下载",codesExported:"兑换码导出成功",codeDeleted:"兑换码删除成功",codesDeleted:"成功删除 {count} 个未使用的兑换码",noUnusedCodes:"没有未使用的兑换码可删除",userPrefix:"用户 #{id}",failedToExport:"导出兑换码失败",failedToDeleteUnused:"删除未使用的兑换码失败",failedToCopy:"复制失败",selectGroup:"选择分组",selectGroupPlaceholder:"选择订阅分组",validityDays:"有效天数",codeExpiry:"兑换码过期",neverExpires:"永不过期",expiryPresetDays:"{days} 天",customExpiry:"自定义",customExpiryDays:"自定义天数",expiryDaysRequired:"请输入有效的过期天数",expiryDateRequired:"请输入有效的过期日期和时间",localTimeZoneHint:"自定义时间按浏览器本地时区({timezone})解释。",groupRequired:"请选择订阅分组",days:"天",status:{unused:"未使用",used:"已使用",expired:"已过期",disabled:"已禁用"},form:{typeLabel:"类型",selectType:"选择类型",valueLabel:"面值",valuePlaceholder:"请输入面值",balanceHint:"余额金额(美元)",concurrencyHint:"并发数增量",countLabel:"数量",countPlaceholder:"请输入数量",countHint:"要生成的兑换码数量",prefixLabel:"前缀(可选)",prefixPlaceholder:"ä¾
25‹å¦‚:GIFT",expiresLabel:"过期时间(可选)"},filters:{type:"类型",allTypes:"全部类型",status:"状态",allStatuses:"全部状态",search:"搜索兑换码"},generating:"生成中...",copyCode:"复制",copied:"已复制!",disableCode:"禁用",enableCode:"启用",deleteCode:"删除",deleteConfirmMessage:"确定要删除此兑换码吗?",noCodes:"暂无兑换码",noCodesDescription:"生成兑换码以向用户分发余额或并发数。",codesGeneratedSuccess:"兑换码生成成功,共 {count} 个",codeDisabledSuccess:"兑换码已禁用",codeEnabledSuccess:"兑换码已启用",codeDeletedSuccess:"兑换码删除成功",failedToLoad:"加载兑换码列表失败",failedToGenerate:"生成兑换码失败",failedToUpdate:"更新兑换码失败",failedToDelete:"删除兑换码失败"},announcements:{title:"公告管理",description:"创建公告并按条件投放",createFirstAnnouncement:"还没有公告,创建您的第一条公告。",createAnnouncement:"创建公告",editAnnouncement:"编辑公告",deleteAnnouncement:"删除公告",searchAnnouncements:"搜索公告...",status:"状态",allStatus:"全部状态",columns:{title:"标题",status:"状态",notifyMode:"通知方式",targeting:"展示条件",timeRange:"有效期",createdAt:"创建时间",actions:"操作"},statusLabels:{draft:"草稿",active:"展示中",archived:"已归档"},notifyModeLabels:{silent:"静默",popup:"弹窗"},form:{title:"标题",content:"内容(支持 Markdown)",status:"状态",notifyMode:"通知方式",notifyModeHint:"弹窗模式会自动弹出通知给用户",showInTimeline:"同步到公告时间线",showInTimelineHint:"开启后该公告会进入「更新中心」页(/updates)的公告时间线;展示范围同样受投放人群限制,仅对符合条件的用户可见。关闭则仅走铃铛/弹窗通知,不进入时间线",startsAt:"开始时间",endsAt:"结束时间",startsAtHint:"留空表示立即生效",endsAtHint:"留空表示永久生效;须晚于开始时间",targetingMode:"展示条件",targetingAll:"所有用户",targetingCustom:"按条件",addOrGroup:"添加 OR 条件组",addAndCondition:"添加 AND 条件",conditionType:"条件类型",conditionSubscription:"订阅套餐",conditionBalance:"余额",conditionUserSegment:"用户人群",conditionUser:"指定用户",operator:"运算符",balanceValue:"余额阈值",selectPackages:"选择套餐",userEmails:"用户邮箱",userEmailsHint:"每行一个邮箱,也可用逗号分隔。仅这些用户可见。"},operators:{gt:">",gte:"≥",lt:"<",lte:"≤",eq:"=",is:"为"},userSegment:{paid:"已付费用户",unpaid:"未付费用户",currentSubscriber:"当前订阅用户",historicalSubscriber:"历史订阅用户",newToday:"当天新用户",older:"非当天新用户"},presets:{all:"所有人",protectNewUsers:"保护首充期新用户",protectNewUsersDesc:"非当天新用户 或(当天新用户且已付费)— 保留首充前的新用户在主分组以保障首次体验",paidOnly:"仅付费用户",currentSubscribersOnly:"仅当前订阅用户"},targetingSummaryAll:"全部用户",targetingSummaryCustom:"自定义({groups} 组)",notInTimeline:"不进时间线",timeImmediate:"立即",timeNever:"永久",readStatus:"已读情况",preview:"预览",eligible:"符合条件",readAt:"已读时间",unread:"未读",searchUsers:"搜索用户...",failedToLoad:"加载公告失败",failedToCreate:"创建公告失败",failedToUpdate:"更新公告失败",failedToDelete:"删除公告失败",failedToLoadReadStatus:"加载已读情况失败",invalidSchedule:"结束时间必须晚于开始时间;留空表示永久生效",errors:{ANNOUNCEMENT_TIME_RANGE_INVALID:"结束时间必须晚于开始时间;留空表示永久生效"},deleteConfirm:"确定要删除该公告吗?此操作无法撤销。"},promo:{title:"优惠码管理",description:"创建和管理注册优惠码",createCode:"创建优惠码",editCode:"编辑优惠码",deleteCode:"删除优惠码",searchCodes:"搜索优惠码...",allStatus:"全部状态",columns:{code:"优惠码",bonusAmount:"赠送金额",maxUses:"最大使用次数",usedCount:"已使用",usage:"使用量",status:"状态",expiresAt:"过期时间",createdAt:"创建时间",actions:"操作"},code:"优惠码",autoGenerate:"留空自动生成",codePlaceholder:"输入优惠码或留空",bonusAmount:"赠送金额 ($)",maxUses:"最大使用次数",zeroUnlimited:"0 = 无限制",expiresAt:"过期时间",notes:"备注",notesPlaceholder:"可选备注信息",status:"状态",neverExpires:"永不过期",statusActive:"启用",statusDisabled:"禁用",statusExpired:"已过期",statusMaxUsed:"已用完",usageRecords:"使用记录",viewUsages:"查看使用记录",noUsages:"暂无使用记录",userPrefix:"用户 #{id}",copied:"已复制!",noCodesYet:"暂无优惠码",createFirstCode:"创建æ
25‚¨çš„第一个优惠码,为新用户提供注册奖励。",codeCreated:"优惠码创建成功",codeUpdated:"优惠码更新成功",codeDeleted:"优惠码删除成功",deleteCodeConfirm:"确定要删除此优惠码吗?此操作无法撤销。",copyRegisterLink:"复制注册链接",registerLinkCopied:"注册链接已复制到剪贴板",failedToLoad:"加载优惠码失败",failedToCreate:"创建优惠码失败",failedToUpdate:"更新优惠码失败",failedToDelete:"删除优惠码失败",failedToLoadUsages:"加载使用记录失败"},usage:{billingModeVideo:"按次(视频)",tokenRanking:{subtitle:"按当前筛选与时间范围统计每个用户的 Token 用量",rowHint:"点击查看该用户的用量明细",userCount:"共 {count} 位用户",columns:{user:"用户",requests:"请求数",inputTokens:"输入 Token",outputTokens:"输出 Token",cacheTokens:"缓存 Token",totalTokens:"总 Token",cost:"费用"}},title:"使用记录",description:"查看和管理所有用户的使用记录",userFilter:"用户",searchUserPlaceholder:"按邮箱搜索用户...",searchApiKeyPlaceholder:"按名称搜索 API 密钥...",searchAccountPlaceholder:"按名称搜索账号...",selectedUser:"已选择",user:"用户",account:"账户",group:"分组",requestId:"请求ID",requestIdPlaceholder:"输入请求ID",requestIdCopied:"请求ID已复制",upstreamRequestId:"上游ID",upstreamRequestIdCopied:"上游ID已复制",allModels:"全部模型",allAccounts:"全部账户",allGroups:"全部分组",allTypes:"全部类型",inputCost:"输入费用",outputCost:"输出费用",cacheCreationCost:"缓存创建费用",cacheReadCost:"缓存读取费用",inputTokens:"输入 Token",outputTokens:"输出 Token",cacheCreationTokens:"缓存创建 Token",cacheCreation5mTokens:"缓存创建",cacheCreation1hTokens:"缓存创建",cacheReadTokens:"缓存读取 Token",failedToLoad:"加载使用记录失败",billingType:"计费类型",allBillingTypes:"全部计费类型",billingTypeBalance:"钱包余额",billingTypeSubscription:"订阅套餐",billingMode:"计费模式",billingModeToken:"按量",billingModePerRequest:"按次",billingModeImage:"按次(图片)",allBillingModes:"全部计费模式",upstreamModelAudit:"上游模型审计",allUpstreamModelAudit:"全部响应模型状态",upstreamModelMismatchOnly:"仅不一致",upstreamModelMatchedOnly:"仅一致",ipAddress:"IP",site:"站点",allSites:"全部站点",clickToViewBalance:"点击查看充值记录",clickToViewTrace:"点击查看耗时详情",traceDetail:"阶段耗时详情",traceTotal:"总耗时",traceStageCount:"阶段数",traceSlowest:"最慢阶段",traceUnaccounted:"上游/未归类耗时",traceUnaccountedHint:"= 总耗时 − 各已知阶段之和(上游响应等未埋点耗时)",traceDetailTag:"明细",counters:"计数器",noTraceData:"无耗时数据",failedToLoadUser:"加载用户信息失败",userDeletedBadge:"已删除",cleanup:{button:"清理",title:"清理使用记录",warning:"清理不可恢复,且会影响历史统计回看。",submit:"提交清理",submitting:"提交中...",confirmTitle:"确认清理",confirmMessage:"确定要提交清理任务吗?清理不可恢复。",confirmSubmit:"确认清理",cancel:"取消任务",cancelConfirmTitle:"确认取消",cancelConfirmMessage:"确定要取消该清理任务吗?",cancelConfirm:"确认取消",cancelSuccess:"清理任务已取消",cancelFailed:"取消清理任务失败",recentTasks:"最近清理任务",loadingTasks:"正在加载任务...",noTasks:"暂无清理任务",range:"时间范围",deletedRows:"删除数量",missingRange:"请选择时间范围",submitSuccess:"清理任务已创建",submitFailed:"创建清理任务失败",loadFailed:"加载清理任务失败",status:{pending:"待执行",running:"执行中",succeeded:"已完成",failed:"失败",canceled:"已取消"}}},ops:{title:"运维监控",description:"运维监控与排障",systemHealth:"系统健康",overview:"概览",noSystemMetrics:"尚未收集系统指标。",collectedAt:"采集时间:",window:"窗口",memory:"内存",metricsInstance:"采集实例",db:"数据库",goroutines:"协程",jobs:"后台任务",jobsHelp:"点击“明细”查看任务心跳与报错信息",active:"活跃",idle:"空闲",waiting:"等待",conns:"连接",queue:"队列",accountSwitches:"账号切换",ok:"正常",lastRun:"最近运行",lastSuccess:"最近成功",lastError:"最近错误",result:"结果",noData:"暂无数据",loadingText:"加载中...",ready:"å°±ç
25»ª",autoRefreshRemaining:"剩余 {seconds}s",systemLogs:{title:"系统日志",host:"Host",description:"优先显示最新日志,可按条件筛选、搜索和清理。",queue:"队列",written:"已写入",dropped:"已丢弃",failed:"写入失败",runtimeConfig:"运行时日志配置(立即生效)",all:"全部",level:"级别",stacktraceThreshold:"堆栈阈值",samplingInitial:"采样初始条数",samplingThereafter:"后续采样间隔",retentionDays:"运维日志保留天数",requestRetentionDays:"请求日志保留天数",requestRetentionDaysHint:"请求使用明细每 6 小时滚动清理一次,保存后在下次清理生效。永久保留会持续占用存储空间。",retentionDaysInvalid:"运维日志须保留 1–3650 天;请求日志须保留 1–3650 天或选择永久保留。",retentionDaysOption:"{days} 天",retentionDaysCustom:"自定义天数",retentionForever:"永久保留",retentionDaysHint:"按运维设置中启用的数据清理计划执行。",runtimeConfigLoadFailed:"日志配置加载失败,请刷新后重试。",persistAccessLogs:"将访问日志写入数据库",persistAccessLogsHint:"默认关闭,因为访问日志会为每个请求新增一条带索引的数据库记录。警告、错误和审计日志始终会保留。",caller:"调用方",sampling:"采样",saveAndApply:"保存并应用",resetDefaults:"重置默认值",latestWriteError:"最近写入错误:",timeRange:"时间范围",startTime:"开始时间(可选)",endTime:"结束时间(可选)",component:"组件",componentPlaceholder:"例如 http.access",keyId:"KEY ID",platform:"平台",model:"模型",keyword:"关键词",keywordPlaceholder:"message/request_id",search:"搜索",cleanCurrentFilters:"清理当前筛选结果",refreshHealth:"刷新健康状态",empty:"暂无系统日志",time:"时间",logDetails:"日志详情",loadFailed:"加载系统日志失败",runtimeConfigActive:"运行时日志配置已生效",runtimeConfigSaveFailed:"保存日志配置失败",resetRuntimeConfigConfirm:"确定要重置为启动配置(env/yaml)并立即应用吗?",runtimeConfigReset:"已重置为启动日志配置",runtimeConfigResetFailed:"重置日志配置失败",cleanupConfirm:"确定要清理匹配当前筛选条件的系统日志吗?此操作不可撤销。",cleanupSuccess:"清理完成,已删除 {count} 条日志。",cleanupFilterRequired:"清理需要至少一个筛选条件(起止时间或其他字段)",cleanupFailed:"清理系统日志失败"},requestsTotal:"请求(总计)",slaScope:"SLA 范围:",tokens:"Token数",tps:"TPS",current:"当前",peak:"峰值",average:"平均",totalRequests:"总请求",avgQps:"平均 QPS",avgTps:"平均 TPS",avgLatency:"平均请求时长",avgTtft:"平均首 Token 延迟",exceptions:"异常数",requestErrors:"请求错误",systemFailures:"系统故障",providerFailures:"上游失败",recoveredErrors:"恢复性错误",businessExceptions:"业务异常",capabilityBoundaries:"能力边界",topActionable:"最高(需关注)",observeOnly:"仅观察",recoveredDemotionHint:"恢复性错误表示上游抖动后已自愈,默认不作为「最高故障」主叙事。",latencyDominantBucket:"约 {share}% 请求落在 {range}({count}/{total})。直方图桶可能过粗,请结合吞吐与账号池判断。",dutySummary:{title:"是否要人(L0)",allClear:"当前无红/黄越线,可不进入辅助诊断。",needsAttention:"存在越线信号:点芯片展开对应根因或错误列表。",loading:"L0 指标加载中,暂不判定「无需人」。",unavailable:"L0 数据不可用或加载失败,请刷新;勿当作全绿。",partialUnavailable:"L0 部分指标加载失败(池或错误码一侧缺失),勿当作全绿;请刷新。",systemFault:"系统故障",systemFaultHint:"平台/调度类 C80 system 计数",upstreamUnavailable:"真上游不可用",upstreamUnavailableHint:"网络/5xx 类真上游故障(不含客户端取消)",poolAvailability:"池可用",poolAvailabilityHint:"红 <20%,黄 <50%(§10-2A);无可用组会抬升告警色",stuck:"卡死账号",stuckHint:"stuck unschedulable 数量",noUsableGroups:"无可用组",noUsableGroupsHint:"完全没有可用账号的分组数",clientCancelTTFB:"TTFB 取消",clientCancelTTFBHint:"客户端等首字节断开,仅观察",classificationDebt:"分类债",classificationDebtHint:"未分类 + C80-UNKNOWN,不进系统故障红灯"},accountPool:{sharedPoolHint:"检测到 {count} 组 usable/active/stuck 指纹相同,可能共享同一账号池。请合并排查,避免重复处置。",loadFailed:"账号池健康数据加载失败,请刷新;勿将空表当作 0 可用。"},auxPanel:{title:"辅助运维面板",subtitle:"先看上方是否要人;越线后再展开对应根因。默认仅账号池与 C80;代理/模型/TTFB 按需加载。",advancedHint:"旧版 failure_class 兼容视图。主路径请以 C80 错误码分类为准。",sections:{pool:"账号池容量",canonical:"错误码分类(C80)",proxy:"代理健康",model:"模型覆盖巡检",ttfb:"TTFB 前客户端取消",advanced:"é«
25˜çº§ / 兼容分类(failure_class)"}},errorCount:"错误数",upstreamErrors:"上游错误",errorCountExcl429529:"错误数(排除429/529)",sla:"SLA(排除业务限制)",businessLimited:"业务限制:",errors:"错误",errorRate:"错误率:",upstreamRate:"上游错误率:",latencyDuration:"请求时长",ttftLabel:"首 Token 延迟(毫秒)",p50:"p50",p90:"p90",p95:"p95",p99:"p99",avg:"avg",max:"max",requests:"请求数",requestsTitle:"请求",upstream:"上游",client:"客户端",system:"系统",other:"其他",errorsSla:"错误(SLA范围)",upstreamExcl429529:"上游(排除429/529)",failedToLoadData:"加载运维数据失败",failedToLoadOverview:"加载概览数据失败",failedToLoadThroughputTrend:"加载吞吐趋势失败",failedToLoadSwitchTrend:"加载平均账号切换趋势失败",failedToLoadLatencyHistogram:"加载请求时长分布失败",failedToLoadErrorTrend:"加载错误趋势失败",failedToLoadErrorDistribution:"加载错误分布失败",failedToLoadErrorDetail:"加载错误详情失败",retryFailed:"重试失败",tpsK:"TPS(千)",top:"最高:",throughputTrend:"吞吐趋势",switchRateTrend:"平均账号切换趋势",latencyHistogram:"请求时长分布",errorTrend:"错误趋势",errorDistribution:"错误分布",switchRate:"平均账号切换",health:"健康",healthCondition:"健康状况",healthHelp:"基于 SLA、错误率和资源使用情况的系统整体健康评分",healthyStatus:"健康",riskyStatus:"风险",idleStatus:"待机",timeRange:{"5m":"近5分钟","30m":"近30分钟","1h":"近1小时","1d":"近1天","15d":"近15天","6h":"近6小时","24h":"近24小时","7d":"近7天","30d":"近30天",custom:"自定义"},openaiTokenStats:{title:"Token 请求统计",viewModeTopN:"TopN",viewModePagination:"分页",prevPage:"上一页",nextPage:"下一页",pageInfo:"第 {page}/{total} 页",totalModels:"模型总数:{total}",failedToLoad:"加载 Token 请求统计失败",empty:"当前筛选条件下暂无 Token 请求统计数据",table:{model:"模型",requestCount:"请求数",avgTokensPerSec:"平均 Tokens/秒",avgFirstTokenMs:"平均首 Token 延迟(ms)",totalOutputTokens:"输出 Token 总数",avgDurationMs:"平均时长(ms)",requestsWithFirstToken:"首 Token 样本数"}},customTimeRange:{startTime:"开始时间",endTime:"结束时间"},fullscreen:{enter:"进入全屏"},diagnosis:{title:"智能诊断",footer:"基于当前指标的自动诊断建议",idle:"系统当前处于待机状态",idleImpact:"无活跃流量",dbDown:"数据库连接失败",dbDownImpact:"所有数据库操作将失败",dbDownAction:"检查数据库服务状态、网络连接和连接配置",redisDown:"Redis连接失败",redisDownImpact:"缓存功能降级,性能可能下降",redisDownAction:"检查Redis服务状态和网络连接",cpuCritical:"CPU使用率严重过高 ({usage}%)",cpuCriticalImpact:"系统响应变慢,可能影响所有请求",cpuCriticalAction:"检查CPU密集型任务,考虑扩容或优化代码",cpuHigh:"CPU使用率偏高 ({usage}%)",cpuHighImpact:"系统负载较高,需要关注",cpuHighAction:"监控CPU趋势,准备扩容方案",memoryCritical:"内存使用率严重过高 ({usage}%)",memoryCriticalImpact:"可能触发OOM,系统稳定性受威胁",memoryCriticalAction:"检查内存泄漏,考虑增加内存或优化内存使用",memoryHigh:"内存使用率偏高 ({usage}%)",memoryHighImpact:"内存压力较大,需要关注",memoryHighAction:"监控内存趋势,检查是否有内存泄漏",upstreamCritical:"上游错误率严重偏高 ({rate}%)",upstreamCriticalImpact:"可能影响大量用户请求",upstreamCriticalAction:"检查上游服务健康状态,启用降级策略",upstreamHigh:"上游错误率偏高 ({rate}%)",upstreamHighImpact:"建议检查上游服务状态",upstreamHighAction:"联系上游服务团队,准备降级方案",errorHigh:"错误率过高 ({rate}%)",errorHighImpact:"大量请求失败",errorHighAction:"查看错误日志,定位错误根因,紧急修复",errorElevated:"错误率偏高 ({rate}%)",errorElevatedImpact:"建议检查错误日志",errorElevatedAction:"分析错误类型和分布,制定修复计划",slaCritical:"SLA 严重低于目标 ({sla}%)",slaCriticalImpact:"用户体验严重受损",slaCriticalAction:"紧急排查错误原因,必要时采取限流保护",
25slaLow:"SLA 低于目标 ({sla}%)",slaLowImpact:"需要关注服务质量",slaLowAction:"分析SLA下降原因,优化系统性能",healthCritical:"综合健康评分过低 ({score})",healthCriticalImpact:"多个指标可能同时异常,建议优先排查错误与资源使用情况",healthCriticalAction:"全面检查系统状态,优先处理critical级别问题",healthLow:"综合健康评分偏低 ({score})",healthLowImpact:"可能存在轻度波动,建议关注 SLA 与错误率",healthLowAction:"监控指标趋势,预防问题恶化",healthy:"所有系统指标正常",healthyImpact:"服务运行稳定"},errorLog:{timeId:"时间 / ID",commonErrors:{contextDeadlineExceeded:"请求超时",connectionRefused:"连接被拒绝",rateLimit:"触发限流"},time:"时间",type:"类型",context:"上下文",platform:"平台",model:"模型",group:"分组",groupAccounts:"分组账号",user:"用户",userId:"用户 ID",apiKey:"API Key",keyDeletedBadge:"Key 已删除",account:"账号",accountId:"账号 ID",groupLevelSchedulingFailure:"分组级调度失败",routingReasonNoCandidates:"无候选账号",routingReasonCandidateAccounts:"候选账号 {count}",routingReasonModelMappingFiltered:"模型映射过滤 {count}",routingReasonUnschedulable:"不可调度 {count}",routingReasonTransportIncompatible:"传输不兼容 {count}",routingReasonExcluded:"已排除 {count}",status:"状态码",count:"次数",message:"响应内容",ip:"IP",latency:"请求时长",action:"操作",retry:"重试",noErrors:"该窗口内暂无错误。",grp:"GRP:",acc:"ACC:",details:"详情",phase:"阶段",id:"ID:",typeUpstream:"上游",typeRequest:"请求",typeAuth:"认证",typeAccountAuth:"账号认证",typeRouting:"路由",typeInternal:"内部",endpoint:"端点",requestType:"类型",requestTypeSync:"同步",requestTypeStream:"流式",requestTypeWs:"WS",partialResponse:"半截坏流",partialResponseTip:"失败前已向客户端写出字节,错误只能以 SSE 帧追加、无法干净换号——客户端实际见到了错误(非真·恢复)",errorCode:"错误码",category:"大类",recoverability:"可恢复性",retryable:"可重试",adminActionRequired:"需管理员介入"},errorDetails:{upstreamErrors:"上游错误",requestErrors:"请求错误",unresolved:"未解决",resolved:"已解决",viewSystem:"系统视图",viewProvider:"上游失败",viewBusiness:"业务异常",viewCapability:"能力边界",viewRecovered:"恢复性错误",aggregateRaw:"原始记录",aggregateGrouped:"错误风暴聚合",viewErrors:"错误",viewExcluded:"排除项",statusCodeOther:"其他",owner:{provider:"服务商",client:"客户端",platform:"平台"},phase:{request:"请求",auth:"认证",account_auth:"账号认证",routing:"路由",upstream:"上游",network:"网络",internal:"内部"},total:"总计:",searchPlaceholder:"搜索 request_id / client_request_id / message",export:"导出",exportFailed:"导出失败",errorCodeFilter:"错误码",errorCodePlaceholder:"选择错误码",errorCategoryFilter:"错误大类",recoverabilityFilter:"可恢复性",allCategories:"全部大类",allRecoverabilities:"全部恢复性",categoryLabels:{system:"平台系统",provider:"上游/中转",business:"业务限制",capability:"能力边界",recovered:"已恢复",client:"客户端",unknown:"未分类"},recoverabilityLabels:{retryable:"可重试",user_fixable:"用户可自助",admin_fixable:"需管理员",non_retryable:"不可重试",recovered:"已恢复"}},errorCodes:{"C80-AUTH-001":{label:"API Key 无效",category:"业务限制",re
25coverability:"用户可自助",adminAction:"查 attempted_key_prefix 与删除记录,确认用户归属并通知其更换 Key。"},"C80-AUTH-002":{label:"API Key 已禁用",category:"业务限制",recoverability:"用户可自助",adminAction:"判断误禁用/欠费/违规,必要时通知用户停止客户端重放。"},"C80-AUTH-003":{label:"无权访问分组",category:"业务限制",recoverability:"需管理员",adminAction:"检查分组状态与 allowed_groups 配置,恢复或迁移用户到可用分组。"},"C80-BIZ-BALANCE-001":{label:"余额/订阅不足",category:"业务限制",recoverability:"用户可自助",adminAction:"核对用户余额、订阅状态与企业额度同步。"},"C80-BIZ-QUOTA-001":{label:"配额用尽",category:"业务限制",recoverability:"用户可自助",adminAction:"查看配额窗口与用量,判断是否放宽或引导升级。"},"C80-BIZ-CONCURRENCY-001":{label:"并发超限",category:"业务限制",recoverability:"可重试",adminAction:"确认是否重试风暴;必要时调整用户并发上限。"},"C80-BIZ-MODEL-CONCURRENCY-001":{label:"模型并发超限",category:"业务限制",re
25coverability:"可重试",adminAction:"模型并发上限触发(组级软并发或用户×模型并发上限);确认是哪一类后调高对应上限,或引导用户换模型。"},"C80-BIZ-DUPLICATE-001":{label:"重复请求",category:"业务限制",recoverability:"可重试",adminAction:"按 user/key 聚合观察,提示客户端降低重试频率。"},"C80-BIZ-RATELIMIT-001":{label:"请求频率超限",category:"业务限制",recoverability:"可重试",adminAction:"用户/分组/用户×模型每分钟请求数(RPM)限速触发。按 user/group/model 聚合观察请求频率;确属正常用量则调高对应 RPM 上限。"},"C80-BIZ-CONTENT-001":{label:"内容审计拦截",category:"业务限制",recoverability:"用户可自助",adminAction:"在「风控·内容审计日志」按 request_id 或输入哈希查看命中的关键词/类别;误拦截则调整词库或审计规则,或删除对应输入哈希。"},"C80-BIZ-PROMPT-AUDIT-001":{label:"提示词审计拦截",category:"业务限制",recoverability:"用户可自助",adminAction:"提示词安全审计引擎(qwen3guard)判定拦截;在「风控·提示词审计」按 request_id 查看命中的风险类别/证据,误拦截则调整审计策略或临时改为告警(非阻断)模式。"},"C80-CAP-MODEL-001":{label:"模型不支持",category:"能力边界",recoverability:"用户可自助",adminAction:"检查 group/account 的 model_mapping 与平台能力矩阵。"},"C80-CAP-ENDPOINT-001":{label:"接口不支持",category:"能力边界",recoverability:"用户可自助",adminAction:"补充能力矩阵说明或在前端限制入口;Gemini 路径勿把 :generateContent 与 /responses 拼在一起;WS 入口须带 Upgrade: websocket。"},"C80-CAP-PAYLOAD-001":{label:"请求体不兼容",category:"能力边界",recoverability:"用户可自助",adminAction:"查看脱敏请求体,确认协议转换是否覆盖该形态。"},"C80-CAP-POLICY-001":{label:"上游策略拒绝",category:"能力边界",recoverability:"用户可自助",adminAction:"中转/上游 usage-policy 拒绝(非本站内容审计),换号无效;按 request_id 查看受控记录的上游错误详情。"},"C80-CAP-IMAGEGEN-001":{label:"图像生成未开启",category:"能力边界",recoverability:"用户可自助",adminAction:"分组图像生成开关未开启被本地门禁拦截;确认是否应为该分组开启图像生成,否则引导用户改用支持生图的分组。"},"C80-CAP-CLIENT-001":{label:"客户端类型受限",category:"能力边界",recoverability:"用户可自助",adminAction:"分组开启 claude_code_only,非 Claude Code 端点请求被本地门禁拦截;确认该分组是否应限制客户端类型,否则引导用户改用 /v1/messages 或换分组。"},"C80-CAP-CONTINUATION-001":{label:"会话无法续链",category:"能力边界",recoverability:"用户可自助",adminAction:"HTTP 续链状态不被当前出站账号支持(previous_response_id 或 store=false 的 ig_* 等)。原生 HTTP Responses 应返回 400 并引导用户开新会话;OAuth 通道会强制 store=false,不要重放未落库 item。只有请求已携带完整消息历史时才可移除续链 ID 后重放。"},"C80-ROUTE-NO-ACCOUNT-001":{label:"无可用账号",category:"平台系统",recoverability:"需管理员",adminAction:"补充账号、清理临时不可调度状态、检查调度缓存 sched:acc:*。"},"C80-ROUTE-MAPPING-001":{label:"模型映射过滤全部",category:"能力边界",recoverability:"需管理员",adminAction:`放宽 model_mapping(如 {'{'}"gpt-*":"gpt-*"{'}'})或补模型别名,刷新调度缓存。`},"C80-ROUTE-WRONG-SITE-001":{label:"分组站点不匹配",category:"业务受限",recoverability:"用户可自解",adminAction:"引导用户改用分组归属站点的接入域名;若分组归属配置有误,在分组管理调整服务站点。"},"C80-UPSTREAM-AUTH-001":{label:"上游凭据失效",category:"上游/中转",recoverability:"需管理员",adminAction:"刷新或替换上游凭据,必要时临时摘除账号。"},"C80-UPSTREAM-RATE-001":{label:"上游限流",category:"上游/中转",recoverability:"可重试",adminAction:"降权/冷却账号,扩容同模型账号池。"},"C80-UPSTREAM-NET-001":{label:"上游网络异常",category:"上游/中转",recoverability:"可重试",adminAction:"按账号/代理聚合排查中转链路,必要时切换通道。"},"C80-UPSTREAM-5XX-001":{label:"上游 5xx",category:"上游/中转",recoverability:"可重试",adminAction:"判断官方/中转故障范围,必要时切换备用账号或通道。"},"C80-UPSTREAM-REQ-001":{label:"上游确定性 4xx",category:"上游/中转",recoverability:"不可重试",adminAction:"检查会话粘滞与整流开关,确认是否跨账号复用了签名内容。"},"C80-UPSTREAM-BILLING-001":{label:"上游账号余额不足",category:"上游/中转",recoverability:"需管理员",adminAction:"为上游账号充值或更换/下线该账号,并核对同组其他账号余额。"},"C80-CLIENT-CANCEL-001":{label:"客户端取消",category:"客户端",recoverability:"不可重试",adminAction:"不计入系统故障;关注长耗时请求与客户端超时配置。"},"C80-CLIENT-CANCEL-TTFB-001":{label:"首字节前客户端断开",category:"客户端",recoverability:"不可重试",adminAction:"客户端在上游首字节返回前断开,
25通常因上游 TTFB 慢于客户端超时。按账号/中转域名/请求体大小聚合排查上游首字节延迟,必要时调慢档首字节超时或引导客户端放宽超时。不计入系统故障。"},"C80-CLIENT-CANCEL-MIDSTREAM-001":{label:"生成中途取消",category:"客户端",recoverability:"不可重试",adminAction:"客户端在上游首字节之后、响应完成前断开;与首字节前取消区分,用于观察「生成中途挂」占比。不计入系统故障。"},"C80-CLIENT-REQ-001":{label:"请求不完整",category:"客户端",recoverability:"用户可自助",adminAction:"客户端提交了空请求体或缺少 model(确定性 400 invalid_request_error)。不计入系统故障;同一用户高频出现时提示其排查客户端或前置代理配置。"},"C80-CLIENT-IMAGES-REQ-001":{label:"图片请求格式错误",category:"客户端",recoverability:"用户可自助",adminAction:"images 端点本地参数校验拒绝(确定性 400 invalid_request_error)。不计入系统故障;同一用户高频出现时提示其检查调用脚本的请求格式(multipart image 文件字段、JSON images[].image_url 或 JSON image 字段传 base64)。"},"C80-UPSTREAM-TTFB-001":{label:"上游首包超时",category:"上游/中转",recoverability:"可重试",adminAction:"上游 first-byte 超时导致 failover 耗尽(非无号 503)。按 proxy_host / base_url 查链路与账号池;缩短单 attempt 超时并确保异构换号。"},"C80-UPSTREAM-PARTIAL-001":{label:"中途断流",category:"上游/中转",recoverability:"可重试",adminAction:"上游在已写出部分响应后中途断流(半截坏流,终态 200 但 partial_response_sent)。按账号 / 中转域名聚合排查上游中途断连;长上下文 thinking 流优先看 TTFB 与传输层。不计入已恢复(用户已看到截断输出)。"}
25,"C80-PLATFORM-INTERNAL-001":{label:"平台内部错误",category:"平台系统",recoverability:"需管理员",adminAction:"按 request_id 追踪日志,进入高优先级排查。"},"C80-SYS-PROMPT-AUDIT-001":{label:"提示词审计不可用",category:"平台系统",recoverability:"需管理员",adminAction:"提示词安全审计引擎(qwen3guard)不可用/返回异常,阻断模式下请求被 fail-closed 拒绝(503);在「风控·提示词审计·运行时」检查 guard 端点探活/队列/配置版本,必要时临时切换为告警(非阻断)模式止血。"},"C80-RECOVERED-UPSTREAM-001":{label:"已恢复",category:"已恢复",recoverability:"已恢复",adminAction:"观察上游抖动趋势;恢复率升高时检查上游健康,不作为用户失败处理。"},"C80-UNKNOWN-001":{label:"未分类",category:"未分类",recoverability:"不可重试",adminAction:"查看错误详情并补充错误码字典/分类规则。"},unknown:{label:"未分类",category:"未分类",recoverability:"不可重试",adminAction:"查看错误详情并补充错误码字典/分类规则。"}},canonicalErrors:{title:"错误码分类健康(C80-*)",subtitle:"按大类聚合,展示每类 Top 错误码与占比",totalClassified:"已分类",legacyUnclassified:"历史未分类 {count} 条,backfill 后收敛",empty:"当前时间窗没有已分类错误",moduleTotal:"合计",systemFaults:"平台系统故障",upstreamUnavailable:"真正上游不可用",clientCancelTTFB:"TTFB 前客户端取消",clientCancelOther:"普通客户端取消",clientCancelTTFBHint:"客户端在上游首字节前断开,作为首字节慢的观测信号;不计入真正上游 5xx/timeout。",adminActionRequired:"需管理员介入",drilldown:"去明细",loadFailed:"加载错误码分类失败"},clientCancelTTFB:{title:"TTFB 前客户端取消",subtitle:"按用户、API Key、客户端 IP、User-Agent、账号与模型聚合",total:"总数",topGroups:"Top 分组",topP95:"Top P95",topMax:"Top Max",actor:"调用方",accountModel:"账号 / 模型",count:"次数",latest:"最近",first:"首次",empty:"当前时间窗没有 TTFB 前客户端取消记录",loadFailed:"加载 TTFB 前客户端取消聚合失败"},errorDetail:{title:"错误详情",titleWithId:"错误 #{id}",noErrorSelected:"未选择错误。",resolution:"已解决:",failedToUpdateResolvedStatus:"更新解决状态失败",classificationKeys:{phase:"阶段",owner:"归属方",source:"来源",resolvedAt:"解决时间",resolvedBy:"解决人"},source:{upstream_http:"上游 HTTP"},upstreamKeys:{status:"状态码",message:"消息",detail:"详情",upstreamErrors:"上游错误列表"},upstreamEvent:{account:"账号",status:"状态码",requestId:"请求ID"}
25,responsePreview:{expand:"响应内容(点击展开)",collapse:"响应内容(点击收起)"},repair:{title:"一键修复",hint:"先生成 dry-run 修复建议,再确认 apply。",type:"修复类型",typeModelMapping:"补齐 model_mapping",typeTempUnschedulable:"清理 temp_unsched",typeSchedulerCacheResync:"重建 scheduler cache",preview:"修复建议(dry-run)",apply:"确认应用",disabledByFeatureFlag:"一键修复 apply 已关闭,请在 Ops 高级设置中启用后再操作。",supported:"可修复",reason:"原因",mapping:"建议映射",scope:"修复范围",targets:"目标账号数",cache:"缓存失效",previewFailed:"生成修复建议失败",applyFailed:"应用修复失败",applySuccess:"修复完成:成功 {ok},失败 {failed}"},retryMeta:{used:"使用账号",success:"成功",pinned:"固定账号"},loading:"加载中…",requestId:"请求 ID",time:"时间",phase:"阶段",status:"状态码",message:"消息",basicInfo:"基本信息",platform:"平台",model:"模型",group:"分组",user:"用户",userEmail:"用户邮箱",account:"账号",latency:"请求时长",businessLimited:"业务限制",requestPath:"请求路径",inboundEndpoint:"入站端点",upstreamEndpoint:"上游端点",requestedModel:"请求模型",upstreamModel:"上游模型",requestType:"请求类型",requestTypeUnknown:"未知",requestTypeSync:"同步",requestTypeStream:"流式",requestTypeWs:"WebSocket",modelMapping:"模型映射",timings:"时序信息",auth:"认证",routing:"路由",upstream:"上游",response:"响应",routingDiagnostics:"调度诊断",failureInsight:"故障洞察",failureClass:"故障类别",failureReason:"根因",actionHint:"建议动作",canonicalPanel:"错误码诊断",canonicalCode:"错误码",category:"大类",recoverability:"可恢复性",retryable:"可重试",userVisible:"用户可见",adminDiagnosis:"管理诊断",userMessage:"用户提示",userActionHint:"用户操作建议",adminMessage:"诊断说明",adminActionHint:"处置建议",adminActionRequired:"需管理员介入",failureClassUpstreamUnavailable:"上游不可用",failureClassUpstreamAuthFailed:"上游鉴权失败",failureClassRoutingModelUnsupported:"路由模型不支持",failureClassRoutingNoEligibleAccounts:"路由无可用账号",failureClassBusinessConcurrencyLimit:"业务并发限制",failureClassBusinessBalanceExhausted:"业务余额不足",failureClassProviderBalanceExhausted:"上游账号余额不足",failureClassBusinessSubscriptionInactive:"订阅失效",failureClassBusinessQuotaExhausted:"业务额度耗尽",failureClassClientCapabilityUnsupported:"客户端能力不支持",failureClassClientPayloadIncompatible:"客户端载荷不兼容",failureClassClientInvalidApiKey:"客户端 API Key 无效",failureClassPlatformInternalError:"平台内部错误",failureClassUnknown:"未分类",failureReasonCountTokensUnsupported:"当前平台不支持 count_tokens",failureReasonInvalidApiKey:"API Key 无效或已禁用",failureReasonPayloadSchemaIncompatible:"请求载荷与目标平台 schema 不兼容",failureReasonUserConcurrencyLimitExceeded:"命中用户并发上限",failureReasonSubscriptionInactive:"订阅无效或已失效",failureReasonQuotaExhausted:"额度已耗尽",failureReasonInsufficientBalance:"余额不足",failureReasonUpstreamAccountBalanceExhausted:"上游账号余额耗尽(中转商计费拦截)",failureReasonGroupModelCapabilityUnsupported:"当前分组不支持该模型",failureReasonModelMappingFilteredAll:"候选账号全部被 model_mapping 过滤",failureReasonTransportIncompatibleFilteredAll:"候选账号全部因传输协议不兼容被过滤",failureReasonAllAccountsUnschedulable:"候选账号全部不可调度",failureReasonNoEligibleAccounts:"没有可选账号",failureReasonInvalidBearerToken:"上游 bearer token 失效",failureReasonConnectionResetByPeer:"上游连接被重置",failureReasonUpstream5xx:"上游返回 5xx",failureReasonGatewayInternalError:"网关内部错误",failureReasonUnknown:"未知原因",actionHintUseSupportedEndpoint:"改用受支持的端点或平台",actionHintCheckClientApiKey:"检查客户端 API Key 是否有效",actionHint
25CheckPayloadCompatibility:"检查请求载荷与目标平台的兼容性",actionHintReduceConcurrency:"降低用户并发或提升并发配额",actionHintRestoreBalanceOrSubscription:"补充余额或恢复订阅",actionHintTopupOrReplaceUpstreamAccount:"为上游账号充值或更换/下线该账号",actionHintReduceUsageOrExpandQuota:"降低请求量或扩充额度",actionHintExpandModelCoverage:"补齐 model_mapping 或调整分组平台覆盖",actionHintClearTempUnschedOrRestoreCapacity:"清理临时不可调度状态或恢复容量",actionHintInspectGroupCapacityAndCache:"检查分组容量、缓存和调度状态",actionHintRefreshUpstreamCredential:"刷新或更换上游认证凭据",actionHintRetryOrFailover:"重试请求或检查 failover 池",actionHintInspectGatewayInternal:"检查网关内部错误和运行状态",actionHintInspectErrorDetail:"查看错误详情并手动排查",scheduleLayer:"调度层级",scheduleLayerGroup:"分组级",scheduleLayerLoadBalance:"负载均衡",scheduleLayerSessionHash:"会话粘性",scheduleLayerPreviousResponse:"上一响应粘性",scheduleLayerUnknown:"其他层级",candidateAccounts:"候选账号数",filteredExcluded:"排除过滤",filteredModelMapping:"模型映射过滤",filteredUnschedulable:"不可调度过滤",filteredTransportIncompatible:"传输不兼容过滤",modelMappingSamples:"模型映射样本",modelMappingSamplesTruncated:"仅展示部分被模型映射过滤的账号样本",classification:"错误分类",errorBody:"错误体",trimmed:"已截断",markResolved:"标记已解决",markUnresolved:"标记未解决",tabOverview:"概览",tabRequest:"请求详情",tabResponse:"响应详情",responseBody:"响应详情",compareA:"对比 A",compareB:"对比 B",suggestion:"处理建议",suggestUpstreamResolved:"上游错误已通过重试解决,无需人工介入",suggestUpstream:"上游服务不稳定,建议:检查上游账号状态 / 考虑切换账号 / 再次重试",suggestRequest:"客户端请求错误,建议:联系客户修正请求参数 / 手动标记已解决",suggestAuth:"认证失败,建议:检查 API Key 是否有效 / 联系客户更新凭证",suggestPlatform:"平台错误,建议立即排查修复",suggestGeneric:"查看详情了解更多信息",apiKeyPrefix:"Key 前缀",keyDeletedBadge:"Key 已删除",instanceId:"网关实例",upstreamStatus:"上游状态码",backToList:"返回列表",diagnosticPayloads:"诊断载荷",payloads:{client:"对客载荷",upstream_message:"上游消息",upstream_detail:"上游详情",upstream_events:"上游事件"}},requestDetails:{title:"请求明细",details:"明细",rangeLabel:"窗口:{range}",rangeMinutes:"{n} 分钟",rangeHours:"{n} 小时",empty:"该窗口内暂无请求。",emptyHint:"可尝试调整时间范围或取消部分筛选。",failedToLoad:"加载请求明细失败",requestIdCopied:"请求ID已复制",copyFailed:"复制失败",copy:"复制",viewError:"查看错误",businessLimited:"业务受限",businessLimitedHint:"用户侧业务异常(余额不足、Key 被禁用等),不计入 SLA",kind:{success:"成功",error:"失败"},table:{time:"时间",kind:"类型",userEmail:"用户邮箱",platform:"平台",model:"模型",duration:"耗时",status:"状态码",requestId:"请求ID",actions:"操作"}},alertEvents:{title:"告警事件",description:"最近的告警触发/恢复记录(仅邮件通知)",loading:"加载中...",empty:"暂无告警事件",loadFailed:"加载告警事件失败",status:{firing:"告警中",resolved:"已恢复",manualResolved:"手动已解决"},detail:{title:"告警详情",loading:"加载详情中...",empty:"暂无详情",loadFailed:"加载告警详情失败",manualResolve:"标记为已解决",manualResolvedSuccess:"已标记为手动解决",manualResolvedFailed:"标记为手动解决失败",silence:"忽略此告警",silenceSuccess:"已静默该告警",silenceFailed:"静默失败",viewRule:"查看规则",viewLogs:"查看相关日志",firedAt:"触发时间",resolvedAt:"解决时间",ruleId:"规则 ID",dimensions:"维度信息",historyTitle:"历史记录",historyHint:"同一规则 + 相同维度的最近事件",historyLoading:"加载历史中...",historyEmpty:"暂无历史记录"},table:{time:"时间",status:"状态",severity:"级别",platform:"平台",ruleId:"规则ID",t
25itle:"标题",duration:"持续时间",metric:"指标 / 阈值",dimensions:"维度",email:"邮件已发送",emailSent:"已发送",emailIgnored:"已忽略"}},alertRules:{title:"告警规则",description:"创建与管理系统阈值告警(仅邮件通知)",loading:"加载中...",empty:"暂无告警规则",loadFailed:"加载告警规则失败",saveSuccess:"警报规则保存成功",saveFailed:"保存告警规则失败",deleteSuccess:"警报规则删除成功",deleteFailed:"删除告警规则失败",create:"新建规则",createTitle:"新建告警规则",editTitle:"编辑告警规则",deleteConfirmTitle:"确认删除该规则?",deleteConfirmMessage:"将删除该规则及其关联的告警事件,是否继续?",manage:"预警规则",metricGroups:{system:"系统指标",group:"分组级别指标",account:"账号级别指标",failure:"故障指标",proxy:"代理指标"},metrics:{successRate:"成功率 (%)",errorRate:"SLA 错误率 (%)",systemErrorRate:"系统错误率 (%)",businessErrorCount:"业务异常数",capabilityErrorCount:"能力边界数",recoveredErrorCount:"恢复性错误数",recoveredErrorRate:"恢复性错误率 (%)",upstreamErrorRate:"上游错误率 (%)",registrationCount:"窗口内新注册用户数",p95:"P95 请求时长 (ms)",p99:"P99 请求时长 (ms)",cpu:"CPU 使用率 (%)",memory:"内存使用率 (%)",queueDepth:"并发排队深度",jobHeartbeatStaleSeconds:"任务心跳停滞秒数",noUsableGroupCount:"零可用分组数",groupAvailableAccounts:"分组可用账号数",groupAvailableRatio:"分组可用比例 (%)",groupRateLimitRatio:"分组限流比例 (%)",accountRateLimitedCount:"限流账号数",accountErrorCount:"错误账号数(不含临时不可调度)",accountErrorRatio:"错误账号比例 (%)",accountTempUnscheduledCount:"临时不可调度账号数",overloadAccountCount:"过载账号数",failureClassCount:"故障类别计数",failureClassRatio:"故障类别占比 (%)",failureReasonCount:"故障根因计数",failureReasonRatio:"故障根因占比 (%)",canonicalErrorCodeCount:"错误码计数",canonicalErrorCodeRatio:"错误码占比 (%)",usageLatencyP99Ms:"成功请求总耗时 P99 (ms)",usageTTFTP99Ms:"成功请求 TTFT P99 (ms)",upstreamModelUnsupportedCount:"上游模型拒绝次数",claudePassthroughCount:"Claude 模型透传次数",accountProbeFailureCount:"账号测活失败次数",authBusiness403Count:"鉴权业务 403 次数",proxyErrorCount:"代理传输错误数"},metricDescriptions:{successRate:"统计窗口内成功请求占比(0~100)。",errorRate:"统计窗口内 SLA 失败请求占比(0~100,含上游 TTFB/502,不含业务限额与恢复性错误)。",systemErrorRate:"统计窗口内平台自身故障占比(0~100,仅 error_category=system;上游 TTFB/502 不计)。",businessErrorCount:"统计窗口内业务异常数量(额度、订阅、余额、并发等)。",capabilityErrorCount:"统计窗口内能力边界错误数量(如不支持的 endpoint/model)。",recoveredErrorCount:"统计窗口内恢复性错误数量(最终请求可能成功)。",recoveredErrorRate:"统计窗口内恢复性错误占比(0~100)。",upstreamErrorRate:"统计窗口内上游错误占比(0~100)。",registrationCount:"统计窗口内新注册用户数。用于批量注册攻击预警,建议窗口 60 分钟、阈值 20。",p95:"统计窗口内 P95 请求耗时(毫秒)。",p99:"统计窗口内 P99 请求耗时(毫秒)。",cpu:"当前实例 CPU 使用率(0~100)。",memory:"当前实例内存使用率(0~100)。",queueDepth:"统计窗口内并发队列排队深度(等待中的请求数)。",jobHeartbeatStaleSeconds:"后台任务距上次心跳上报的秒数;filters.job_name 为空时默认检查告警评估器。",noUsableGroupCount:"统计当前范围内 active 且有账号绑定、但可调度账号数为 0 的分组数量;可选 group_id 用于限定单个分组。",groupAvailableAccounts:"指定分组中当前可用账号数量(需要 group_id 过滤)。",groupAvailableRatio:"指定分组中可用账号占比(0~100,需要 group_id 过滤)。",groupRateLimitRatio:"指定分组中账号被限流的比例(0~100,需要 group_id 过滤)。",accountRateLimitedCount:"统计窗口内被限流的账号数量。",accountErrorCount:"统计窗口内产生错误的账号数量(不含临时不可调度)。",accountErrorRatio:"统计窗口内错误账号占比(0~100)。",accountTempUnscheduledCount:"当前处于临时不可调度状态的账号数量(如代理/凭据故障被自动摘除)。",overloadAccountCount:"统计窗口内过载账号数量。",failureClassCount:"统计窗口内命中指定 failure_class 的错误数量。",failureClassRatio:"统计窗口内命中指定 failure_class 的错误占比(0~100)。",failureReasonCount:"统计窗口内命中指定 failure_reason 的错误数量,例如 duplicate_request_in_flight 或 upstream_first_byte_timeout。",failureReasonRatio:"统计窗口内命中指定 failure_reason 的错误占比(0~100)。",canonicalErrorCodeCount:"统计窗口内命中所选 canonical 错误码(C80-*)的错误数量,需在 filters.canonical_error_codes 指定码集。",canonicalErrorCodeRatio:"统计窗口内命中所选 canonical 错误码(C80-*)的错误占比(0~100,历史行读时派生计入)。",usageLatencyP99Ms:"统计窗口内成功请求 duration_ms 的 P99;可用 account_id/model/requested_model/upstream_model/upstream_endpoint/min_samples 限定慢桶。",usageTTFTP99Ms:"统计窗口内成功请求 first_token_ms 的 P99;用于发现高首字节尾延迟账号、模型或中转 endpoint。",upstreamModelUnsupportedCount:"统计窗口内上游 400 且属于「模型不被支持」类的请求数;通常意味着分组模型映射配置漂移。",claudePassthroughCount:"openai 通道转发后上游模型仍为 claude 前缀(必错路径),出现即代码回归。",accountProbeFailureCount:"统计窗口内账号测活(手动测试 + 后台探测)失败次数。",authBusiness403Count:"统计窗口内鉴权业务 403(默认 GROUP_NOT_ALLOWED,可经 filters.client_error_codes 配置)次数;突增通常意味着分组资格判定口径漂移或批量误拦截。",proxyErrorCount:"统计窗口内代理出口传输错误数(EOF / 超时 / connection reset 等)。缺省语义是「最差单代理」:对所有 active 代理取 max(多条出口同时中等劣化且都低于阈值时可能不告警);告警明细带最差代理。filters.proxy_id 可限定单个代理。"},hints:{recommended:"推荐:运算符 {operator},阈值 {threshold}{unit}",groupRequired:"该指标为分组级别指标,必须选择分组(group_id)。",groupOptional:"可选:通过 group_id 将规则限定到某个分组。",failureClassRequired:"该指标为故障类别指标,必须选择 failure_class。",failureClassOptional:"仅在故障类别指标下需要选择 failure_class。",failureReasonRequired:"该指标为故障根因指标,必须填写 failure_reason。",failureReasonOptional:"仅在故障根因指标下需要填写 failure_reason。常用值:duplicate_request_in_flight、upstream_first_byte_timeout、upstream_cloudflare_timeout。",canonicalCodesRequired:"该指标为错误码指标,必须至少选择一个 canonical 错误码。",canonicalCodesOptional:"仅在错误码指标下需要选择 canonical 错误码(C80-*)。",usageLatencyFilters:"可选:按账号、请求模型、上游模型、上游 endpoint 和最小样本数限定慢请求桶。",ratioMinSamples:"可选:窗口内请求数低于该值时跳过评估,避免低峰小样本误报。"},table:{name:"名称",metric:"指标",severity:"级别",enabled:"启用",actions:"操作"},form:{name:"名称",description:"描述",metric:"指标",operator:"运算符",groupId:"分组(group_id)",groupPlaceholder:"请选择分组",allGroups:"全部分ç
25»„",failureClass:"故障类别",failureClassPlaceholder:"请选择故障类别",failureReason:"故障根因(failure_reason)",failureReasonPlaceholder:"例如 duplicate_request_in_flight",canonicalErrorCodes:"错误码(canonical_error_codes)",canonicalErrorCodesPlaceholder:"选择一个或多个错误码",usageLatencyFilters:"慢请求过滤器",accountId:"账号 ID(account_id)",model:"模型(model)",requestedModel:"请求模型(requested_model)",upstreamModel:"上游模型(upstream_model)",upstreamEndpoint:"上游 endpoint",minSamples:"最小样本数(min_samples)",threshold:"阈值",severity:"级别",window:"统计窗口(分钟)",sustained:"连续样本数(每分钟)",cooldown:"冷却期(分钟)",enabled:"启用",notifyEmail:"发送邮件通知",notifyWeChat:"发送微信通知"},validation:{title:"请先修正以下问题",invalid:"规则不合法",nameRequired:"名称不能为空",metricRequired:"指标不能为空",groupIdRequired:"分组级别指标必须指定 group_id",failureClassRequired:"故障类别指标必须指定 failure_class",failureReasonRequired:"故障根因指标必须指定 failure_reason",canonicalCodesRequired:"错误码指标必须至少指定一个 canonical 错误码",minSamplesInvalid:"最小样本数必须为正整数",operatorRequired:"运算符不能为空",thresholdRequired:"阈值必须为数字",windowRange:"统计窗口必须为 1 / 5 / 60 分钟之一",sustainedRange:"连续样本数必须在 1 到 1440 之间",cooldownRange:"冷却期必须在 0 到 1440 分钟之间"}},runtime:{title:"运维监控运行设置",description:"配置存储在数据库中,无需修改 config 文件即可生效。",loading:"加载中...",noData:"暂无运行设置",loadFailed:"加载运行设置失败",saveSuccess:"运行设置已保存",saveFailed:"保存运行设置失败",alertTitle:"告警评估器",groupAvailabilityTitle:"分ç
25»„可用性监控",evalIntervalSeconds:"评估间隔(秒)",silencing:{title:"告警静默(维护模式)",enabled:"启用静默",globalUntil:"静默截止时间(RFC3339)",untilHint:"建议填写截止时间,避免忘记关闭静默。",reason:"原因",reasonPlaceholder:"例如:计划维护",entries:{title:"高级:定向静默",hint:"可选:仅静默特定规则或特定级别。字段留空表示匹配全部。",add:"新增条目",empty:"暂无定向静默条目",entryTitle:"条目 #{n}",ruleId:"规则ID(可选)",ruleIdPlaceholder:"例如:1",severities:"级别(可选)",severitiesPlaceholder:"例如:P0,P1(留空=全部)",until:"截止时间(RFC3339)",reason:"原因",validation:{untilRequired:"条目截止时间不能为空",untilFormat:"条目截止时间必须为合法的 RFC3339 时间戳",ruleIdPositive:"条目 rule_id 必须为正整数",severitiesFormat:"条目级别必须为 P0..P3 的逗号分隔列表"}},validation:{timeFormat:"静默时间必须为合法的 RFC3339 时间戳"}},lockEnabled:"启用分布式锁",lockKey:"分布式锁 Key",lockTTLSeconds:"分布式锁 TTL(秒)",showAdvancedDeveloperSettings:"显示高级开发者设置 (Distributed Lock)",advancedSettingsSummary:"高级设置 (分布式锁)",evalIntervalHint:"检测任务的执行频率,建议保持默认。",metricThresholds:"指标阈值配置",metricThresholdsHint:"配置各项指标的告警阈值,超出阈值时将以红色显示",slaMinPercent:"SLA 最低百分比",slaMinPercentHint:"SLA 低于此值时显示为红色(默认:99.5%)",ttftP99MaxMs:"TTFT P99 最大值(毫秒)",ttftP99MaxMsHint:"TTFT P99 高于此值时显示为红色(默认:500ms)",requestErrorRateMaxPercent:"请求错误率最大值(%)",requestErrorRateMaxPercentHint:"请求错误率高于此值时显示为红色(默认:5%)",upstreamErrorRateMaxPercent:"上游错误率最大值(%)",upstreamErrorRateMaxPercentHint:"上游错误率高于此值时显示为红色(默认:5%)",validation:{title:"请先修正以下问题",invalid:"设置不合法",evalIntervalRange:"评估间隔必须在 1 到 86400 秒之间",lockKeyRequired:"启用分布式锁时必须填写 Lock Key",lockKeyPrefix:"分布式锁 Key 必须以「{prefix}」开头",lockKeyHint:"建议以「{prefix}」开头以避免冲突",lockTtlRange:"分布式锁 TTL 必须在 1 到 86400 秒之间",slaMinPercentRange:"SLA 最低值必须在 0-100 之间",ttftP99MaxRange:"TTFT P99 最大值必须大于或等于 0",requestErrorRateMaxRange:"请求错误率最大值必须在 0-100 之间",upstreamErrorRateMaxRange:"上游错误率最大值必须在 0-100 之间"}},email:{title:"邮件通知配置",description:"配置告警/报告邮件通知(存储在数据库中)。",loading:"加载中...",noData:"暂无邮件通知配置",loadFailed:"加载邮件通知配置失败",saveSuccess:"邮件通知配置已保存",saveFailed:"保存邮件通知配置失败",alertTitle:"告警邮件",reportTitle:"报告邮件",recipients:"收件人",recipientsHint:"若为空,系统可能会回退使用第一个管理员邮箱。",minSeverity:"最低级别",minSeverityAll:"全部级别",rateLimitPerHour:"每小时限额",batchWindowSeconds:"合并窗口(秒)",includeResolved:"包含恢复通知",dailySummary:"每日摘要",weeklySummary:"每周摘要",errorDigest:"错误摘要",errorDigestMinCount:"错误摘要最小数量",accountHealth:"账号健康报告",accountHealthThreshold:"错误率阈值(%)",cronPlaceholder:"Cron 表达式",reportHint:"发送时间使用 Cron 语法;留空将使用默认值。",validation:{title:"请先修正以下问题",invalid:"邮件通知配置不合法",alertRecipientsRequired:"已启用告警邮件,但未配置任何收件人",reportRecipientsRequired:"已启用报告邮件,但未配置任何收件人",invalidRecipients:"存在不合法的收件人邮箱",rateLimitRange:"每小时限额必须为 ≥ 0 的数字",batchWindowRange:"合并窗口必须在 0 到 86400 秒之间",cronRequired:"启用定时任务时必须填写 Cron 表达式",cronFormat:"Cron 表达式格式可能不正确(至少应包含 5 段)",digestMinCountRange:"错误摘要最小数量必须为 ≥ 0 的数字",accountHealthThresholdRange:"账号健康错误率阈值必须在 0 到 100 之间"}},settings:{title:"运维监控设置",loadFailed:"加载设置失败",saveSuccess:"运维监控设置保存成功",saveFailed:"保存设置失败",dataCollection:"数据采集",evaluationInterval:"评估间隔(秒)",evaluationIntervalHint:"检测任务的执行频率,建议保持默认",alertConfig:"预警配置",enableAlert:"开启预警",alertRecipients:"预警接收邮箱",emailPlaceholder:"输入邮箱地址",recipientsHint:"若为空,系统将使用第一个管理员邮箱作为
25默认收件人",minSeverity:"最低级别",wechatConfig:"微信告警配置",wechatConfigHint:"通过微信服务号模板消息推送告警给所有已绑定微信的管理员(需认证服务号)",enableWeChatAlert:"开启微信告警",wechatTemplateId:"模板消息 ID",wechatTemplateIdPlaceholder:"在微信公众平台申请的模板 ID",wechatTemplateIdHint:"需使用微信类目模板「监控系统异常告警通知」(编号70904),字段已与系统对齐;换用其他模板字段无法匹配",wechatCategoryTemplates:"按类别模板 ID(可选)",wechatCategoryTemplatePlaceholder:"留空使用默认模板",wechatCategoryTemplatesHint:"为不同告警类别使用专用模板(需在服务号后台按类别申请);留空的类别回退上方默认模板",wechatCategory:{account:"账号异常",group:"分组容量",system:"系统错误",resource:"系统资源"},wechatJumpUrl:"点击跳转链接(可选)",wechatRateLimitPerHour:"每小时发送上限(0 表示不限制)",wechatCustomMessage:"服务号客服消息通道",wechatCustomMessageHint:"开启后,选中的级别走服务号客服消息(自由文本、按告警类别完整排版);其余级别仍走模板消息。客服消息因 48 小时互动窗口等原因失败时,会自动降级到模板消息",wechatCustomMessageSeverities:"走客服消息的告警级别",wechatCustomMessageSeveritiesHint:"默认 P0/P1 走客服消息(信息完整、失败自动降级模板兜底);不勾选任何级别时按 P0/P1 处理",wechatTestSend:"发送测试",wechatTesting:"发送中…",wechatTestHint:"会先保存微信配置,再给当前管理员发送一条样例消息",wechatTestSent:"测试消息已发送,请在微信查收",wechatTestFailed:"测试消息发送失败",wechatTemplateIdRequired:"请先填写模板消息 ID",reportConfig:"评估报告配置",enableReport:"开启评估报告",reportRecipients:"评估报告接收邮箱",dailySummary:"每日摘要",weeklySummary:"每周摘要",metricThresholds:"指标阈值配置",metricThresholdsHint:"配置各项指标的告警阈值,超出阈值时将以红色显示",slaMinPercent:"SLA 最低百分比",slaMinPercentHint:"SLA 低于此值时显示为红色(默认:99.5%)",ttftP99MaxMs:"TTFT P99 最大值(毫秒)",ttftP99MaxMsHint:"TTFT P99 高于此值时显示为红色(默认:500ms)",requestErrorRateMaxPercent:"请求错误率最大值(%)",requestErrorRateMaxPercentHint:"请求错误率高于此值时显示为红色(默认:5%)",upstreamErrorRateMaxPercent:"上游错误率最大值(%)",upstreamErrorRateMaxPercentHint:"上游错误率高于此值时显示为红色(默认:5%)",advancedSettings:"高级设置",dataRetention:"数据保留策略",enableCleanup:"启用数据清理",cleanupSchedule:"清理计划(Cron)",cleanupScheduleHint:"例如:0 2 * * * 表示每天凌晨2点",errorLogRetentionDays:"错误日志保留天数",minuteMetricsRetentionDays:"分钟指标保留天数",hourlyMetricsRetentionDays:"小时指标保留天数",retentionDaysHint:"建议保留 7-90 天,过长会占用存储空间;填 0 表示每次定时清理时清空所有历史",aggregation:"预聚合任务",enableAggregation:"启用预聚合任务",aggregationHint:"预聚合可提升长时间窗口查询性能",openaiQuotaAutoPause:"OpenAI 账号配额自动暂停",openaiQuotaAutoPauseHint:"当 OpenAI 账号 5h / 7d 用量达到阈值时,调度会自动跳过该账号;窗口滚动后自动恢复。账号级阈值优先于此全局默认值。",openaiQuotaAutoPauseDefault5h:"默认 5h 用量阈值 (%)",openaiQuotaAutoPauseDefault7d:"默认 7d 用量阈值 (%)",openaiQuotaAutoPauseThresholdHint:"取值 0-100,留空或 0 表示不启用全局默认阈值。",errorFiltering:"错误过滤",ignoreCountTokensErrors:"忽略 count_tokens 错误",ignoreCountTokensErrorsHint:"启用后,count_tokens 请求的非 5xx 错误(404/400 等预期噪音)不写入错误日志;上游 5xx 始终入库以便观测告警。",ignoreContextCanceled:"忽略客户端断连错误",ignoreContextCanceledHint:"启用后,客户端主动断开连接(context c
25anceled)的错误将不会写入错误日志。",ignoreNoAvailableAccounts:"忽略无可用账号错误",ignoreNoAvailableAccountsHint:'启用后,"No available accounts" 错误将不会写入错误日志(不推荐,这通常是配置问题)。',ignoreInsufficientBalanceErrors:"忽略余额不足错误",ignoreInsufficientBalanceErrorsHint:"启用后,账号余额不足(Insufficient balance)的错误将不会写入错误日志。",autoRefresh:"自动刷新",enableAutoRefresh:"启用自动刷新",enableAutoRefreshHint:"自动刷新仪表板数据,启用后会定期拉取最新数据。",refreshInterval:"刷新间隔",refreshInterval15s:"15 秒",refreshInterval30s:"30 秒",refreshInterval60s:"60 秒",dashboardCards:"仪表盘卡片",opsRepairApplyEnabled:"启用一键修复 apply",opsRepairApplyEnabledHint:"关闭时仅允许查看修复建议(dry-run),不允许执行 apply。",displayAlertEvents:"展示告警事件",displayAlertEventsHint:"控制运维监控仪表盘中告警事件卡片是否显示,默认开启。",displayOpenAITokenStats:"展示 Token 请求统计",displayOpenAITokenStatsHint:"按模型统计所有平台的 Token 请求,支持平台和分组筛选,默认关闭。",autoRefreshCountdown:"自动刷新:{seconds}s",validation:{title:"请先修正以下问题",retentionDaysRange:"保留天数必须在 0-365 天之间(0 = 每次清理时清空所有)",slaMinPercentRange:"SLA最低百分比必须在0-100之间",ttftP99MaxRange:"TTFT P99最大值必须大于等于0",requestErrorRateMaxRange:"请求错误率最大值必须在0-100之间",upstreamErrorRateMaxRange:"上游错误率最大值必须在0-100之间",openaiQuotaAutoPauseRange:"OpenAI 配额自动暂停阈值必须在 0-100 之间"}},concurrency:{title:"并发 / 排队",byPlatform:"按平台",byGroup:"按分组",byAccount:"按账号",byUser:"按用户",showByUserTooltip:"切换用户视图,显示每个用户的并发使用情况",switchToUser:"切换到用户视图",switchToPlatform:"切换回平台视图",totalRows:"共 {count} 项",disabledHint:"已在设置中关闭实时监控。",empty:"暂无数据",queued:"队列 {count}",rateLimited:"限流 {count}",errorAccounts:"异常 {count}",loadFailed:"加载并发数据失败"},realtime:{title:"实时信息",connected:"实时已连接",connecting:"实时连接中",reconnecting:"实时重连中",offline:"实时离线",closed:"实时已关闭",reconnectIn:"重连 {seconds}s"},queryMode:{auto:"Auto(自动)",raw:"Raw(不聚合)",preagg:"Preagg(聚合)"},accountAvailability:{available:"可用",unavailable:"不可用",accountError:"异常"},tooltips:{totalRequests:"当前时间窗口内的总请求数和Token消耗量。",throughputTrend:"当前窗口内的请求/QPS 与 token/TPS 趋势。",switchRateTrend:"近5小时内账号切换次数 / 请求总数的趋势(平均切换次数)。",latencyHistogram:"成功请求的请求时长分布(毫秒)。",errorTrend:"错误趋势按系统故障 / 上游失败 / 业务 / 能力 / 恢复拆分。上游 TTFB/502 走「上游失败」,不进系统故障。",errorDistribution:"按错误类别统计:系统故障、上游失败、业务异常、能力边界、恢复性错误。",upstreamErrors:"上游服务返回的错误,包括API提供商的错误响应(排除429/529限流错误)。",goroutines:'Go 运行时的协程数量(轻量级线程)。没有绝对"安全值",建议以历史基线为准。经验参考:<2000 常见;2000-8000 需关注;>8000 且伴随队列上升时,优先排查阻塞/泄漏。',cpu:"CPU 使用率,显示系统处理器的负载情况。",memory:"内存使用率,包括已使用和总可用内存。",db:"数据库连接池状态,包括活跃连接、空闲连接和等待连接数。",redis:"Redis 连接池状态,显示活跃和空闲的连接数。",jobs:"后台任务执行状态,包括最近运行时间、成功时间和错误信息。",qps:"每秒查询数(QPS)和每秒Token数(TPS),实时显示系统吞吐量。",tokens:"当前时间窗口内处理的总Token数量。",sla:"服务等级协议达成率,排除业务限制(如余额不足、配额超限)的成功请求占比。",errors:"错误统计:大数字是 SLA 错误率;下方拆成系统故障与上游失败。上游 TTFB/502 计入上游失败,不计入系统故障。",latency:"请求时é•
25¿ç»Ÿè®¡ï¼ŒåŒ…括 p50、p90、p95、p99 等百分位数。",ttft:"首 Token 延迟(Time To First Token),衡量流式响应的首 Token 返回速度。已排除图片 / 视频生成请求:这类请求要先出图出片才吐第一个字节,几十秒的首字节延迟是模型固有行为。",health:"系统健康评分(0-100),综合考虑 SLA、错误率和资源使用情况。"},charts:{emptyRequest:"该时间窗口内暂无请求。",emptyError:"该时间窗口内暂无错误。",resetZoom:"重置",resetZoomHint:"重置缩放(若启用)",downloadChart:"下载",downloadChartHint:"下载图表图片"}},settings:{title:"系统设置",description:"管理注册、邮箱验证、默认值和 SMTP 设置",tabs:{general:"基础设置",agreement:"登录条款",features:"功能开关",security:"安全与认证",users:"用户默认值",gateway:"网关服务",email:"邮件设置",advanced:"高级设置",backup:"数据备份",payment:"支付设置"},features:{channelMonitor:{title:"渠道监控",description:"定期对配置的渠道发起健康检查,向用户展示可用性与延迟。关闭后调度器停止扫描,用户端列表为空。",configureLink:"前往 渠道管理 > 渠道监控 配置监控项",enabled:"启用渠道监控",enabledHint:"关闭后后台不再执行定时检测,已有数据保留。",defaultInterval:"默认检测间隔(秒)",defaultIntervalHint:"新建渠道监控时表单的默认值,可被单个渠道覆盖。范围 15 – 3600 秒。",userMenuEnabled:'用户端"渠道状态"菜单',userMenuEnabledHint:'关闭后仅隐藏用户侧边栏的"渠道状态"入口,管理端渠道监控管理页不受影响。',showQuota:"向用户展示渠道用量/余额",showQuotaHint:"开启后,配额模式的渠道监控会在用户端渠道状态页展示关联账号的用量滚动窗口/余额。默认关闭;管理员始终可见。",hideUserRanking:"对用户隐藏用户排行",hideUserRankingHint:"开启后,用户端渠道监控 V2 不再显示「用户排行」页,用户 API 也不返回排行数据。管理员仍可查看。"},availableChannels:{title:"可用渠道",description:"向已登录用户展示他们能访问的渠道、模型和定价聚合视图。默认关闭。",configureLink:"前往 渠道管理 > 渠道定价 配置模型价格",enabled:"启用可用渠道",enabledHint:"关闭后用户端侧边栏入口隐藏,接口返回空数组。"},siteBillingMode:{title:"站点类型",description:"决定用户端提供哪些购买方式。默认「充值 & 订阅」。",label:"购买方式",options:{rechargeAndSubscription:"充值 & 订阅",rechargeOnly:"仅充值",subscriptionOnly:"仅订阅"},hints:{rechargeAndSubscription:"用户端同时提供余额充值与订阅套餐。",rechargeOnly:"用户端隐藏「我的订阅」、购买页订阅套餐、顶栏订阅进度与用量页「计费类型」筛选,直接访问「我的订阅」会跳回仪表盘;管理端侧边栏同时隐藏「订阅管理」入口(页面仍可通过地址访问)。已有订阅的计费与兑换码发放的订阅不受影响。",subscriptionOnly:"用户端购买页只保留订阅套餐,侧边栏入口显示为「订阅」,余é¢
25å……值下单会被拒绝;兑换码、返利等余额入账不受影响。"}},modelPlaza:{title:"模型广场",description:"以分组为单位向访客展示可用模型与价格的公开页面。默认关闭。",enabled:"启用模型广场",enabledHint:"开启后顶栏显示入口,页面可通过 /model-plaza 独立访问。",requireAuth:"需要登录才可访问",requireAuthHint:"开启后未登录访问将跳转登录页;关闭则公开可见,匿名访客仅展示非专属分组。",priceDescription:"价格说明(Markdown)",priceDescriptionHint:"展示在模型广场页面顶部,可用于说明计费规则、汇率、优惠活动等。"},pluginManagement:{title:"插件管理",description:"在管理端侧边栏显示「插件管理」入口。该开关只控制菜单可见性,不会停用已安装的插件。",enabled:"显示插件管理菜单",enabledHint:"关闭后侧边栏入口隐藏;已安装插件仍继续运行。"},immersiveChat:{title:"沉浸式聊天",description:"在站内提供 /chat 聊天页面,让用户用平台 API Key 直连上游模型对话。默认关闭。",enabled:"启用沉浸式聊天",enabledHint:"关闭后用户与管理员侧边栏的「沉浸式聊天」入口隐藏,/chat 接口返回 403;正在使用的会话与附件图片链接会立即失效。"},modelRadar:{title:"模型降智监控",description:"向用户展示 /model-radar 页,代理 codexradar 公开基准与社区体感数据。默认开启。",enabled:"启用模型降智监控",enabledHint:"关闭后侧栏入口隐藏,/api/v1/model-radar 返回 403。",proxy:"回源代理",proxyHint:"服务器无法直连 codexradar.com(Cloudflare)时,请选择系统中已有的可用代理;留空则直连。"},imageGen:{title:"图像生成",description:"在站内提供 /image-gen 服务端异步生图页面,结果存储于 R2。默认关闭。",enabled:"启用图像生成",enabledHint:"关闭后所有角色侧边栏的「图像生成」入口隐藏,/image-gen 接口返回 403。"},enterpriseAccount:{title:"企业子账号",description:"允许主账号在 /enterprise 下创建并管理子账号,支持共享配额、角色权限与用量聚合。默认关闭。",enabled:"启用企业子账号",enabledHint:"关闭后侧边栏「企业管理」区块隐藏,/user/enterprise 接口返回 403(含 pending 子账号自助退出)。"},officialStatus:{title:"官方状态监控",description:"在分组状态监控页顶部展示 Claude / OpenAI / Gemini / Grok 官方服务状态。各开关独立控制,关闭则不拉取也不展示对应官方状态。",claudeEnabled:"展示 Claude 官方状态",claudeEnabledHint:"开启后从 status.claude.com 拉取官方状态并在监控页展示。",openaiEnabled:"展示 OpenAI 官方状态",openaiEnabledHint:"开启后从 status.open
25ai.com 拉取官方状态并在监控页展示。",geminiEnabled:"展示 Gemini 官方状态",geminiEnabledHint:"默认开启。官方状态页为 aistudio.google.com/status;机读数据来自 Google Cloud Service Health 的 Gemini 相关事件(该状态页无公开 JSON API)。注意:status.gemini.com 是加密货币交易所,不是 Google Gemini。",grokEnabled:"展示 Grok 官方状态",grokEnabledHint:"默认开启。从 status.x.ai 的 RSS(feed.xml)拉取官方状态并在监控页展示。"},emptyThinkingSanitize:{title:"空 thinking 块剥离",description:"转发给 Anthropic 前,剥离 Claude Code 请求历史中的空 thinking 块,规避上游 400「each thinking block must contain thinking」导致的会话卡死。默认关闭。",enabled:"启用空 thinking 块剥离",enabledHint:"仅作用于 Claude Code 客户端的 anthropic 请求。若剥离会导致消息内容为空则保守放弃,并向客户端返回引导重开会话的中文提示。"},privacyFilter:{title:"隐私过滤",description:"开启后,发送给上游 AI 服务的请求中检测到的敏感信息(邮箱、手机号、身份证号、银行卡号、IP、API 密钥等)会在转发前被替换为占位符(如 [邮箱]、[密钥]),替换不可逆。检测基于规则与熵值,可能误判长随机字符串(如 base64 数据、临时令ç‰
25Œï¼‰ï¼Œå½±å“åŒ…含此类内容的编程类请求。默认关闭。",enabled:"启用隐私过滤",enabledHint:"需管理员开启本开关后,用户在个人资料中自助开启才生效。"},riskControl:{title:"风控中心",description:"启用内容审计菜单和全端点请求审核入口。默认关闭。",configureLink:"前往 风控中心 配置内容审计",enabled:"启用风控中心",enabledHint:"关闭后管理员侧边栏入口隐藏,网关内容审计不会执行。",cyberSessionBlock:"cyber 会话自动屏蔽",cyberSessionBlockHint:"开启后,被上游网络安全策略(cyber_policy)拦截的会话将在 TTL 内被本地屏蔽,不再发往上游。仅屏蔽该会话,不影响同 Key 其他会话。",cyberSessionBlockTTL:"屏蔽时长(秒)"},affiliate:{title:"推广中心",description:"老用户邀请新用户注册,新用户充值后老用户按阶梯比例获得返利额度。",tierSummary:"返利按阶梯比例自动计算(详见分销管理页)。KOL 用户可设置专属比例,受全局上限截断。",linkLabel:"前往分销管理"}},emailTabDisabledTitle:"邮箱验证未启用",emailTabDisabledHint:"请在「安全与认证」选项卡中启用邮箱验证后,再配置 SMTP 设置。",registration:{title:"注册设置",description:"控制用户注册和验证",enableRegistration:"开放注册",enableRegistrationHint:"允许新用户注册",emailVerification:"邮箱验证",emailVerificationHint:"新用户注册时需要验证邮箱",emailSuffixWhitelist:"邮箱域名白名单(迁移至:邮箱域名限制)",emailSuffixWhitelistHint:"仅允许使用指定域名的邮箱注册账号(例如 {'@'}qq.com, {'@'}gmail.com, *.edu.cn)",emailSuffixWhitelistPlaceholder:"{'@'}example.com, *.edu.cn",emailSuffixWhitelistInputHint:"留空则不限制。使用 *.edu.cn 可匹配 edu.cn 及其子域名。",emailDomainQuotaHint:"开启时白名单以外的其他可注册主域名各限注册一个账户;关闭时非白名单域名直接拒绝。",promoCode:"优惠码",promoCodeHint:"允许用户在注册时使用优惠码",invitationCode:"邀请码注册",invitationCodeHint:"开启后,用户注册时需要填写有效的邀请码",passwordReset:"忘记密码",passwordResetHint:"允许用户通过邮箱重置密码",frontendUrl:"前端地址",frontendUrlPlaceholder:"https://example.com",frontendUrlHint:"用于生成邮件中的密码重置链接,例如 https://example.com",totp:"双因素认证 (2FA)",totpHint:"允许用户使用 Google Authenticator 等应用进行二次验证",totpKeyNotConfigured:"请先在环境变量中配置 TOTP_ENCRYPTION_KEY。使用命令 openssl rand -hex 32 生成密钥。",ipBlacklist:"注册 IP 黑名单",ipBlacklistDescription:"拦截来自指定 IP 或网段的注册与验证码请求",ipBlacklistHint:"名单中的客户端 IP 无法注册或发送注册验证码。每行一个 IPv4/IPv6 地址或 CIDR 网段(如 27.148.147.0/24),也可用逗号分隔。留空则不限制。",ipBlacklistPlaceholder:`120.37.148.186
2627.148.147.0/24`},security:{passkey:"Passkey 登录",passkeyHint:"当依赖方配置有效时,允许无密码登录及用户自行管理 Passkey。",passkeyConfigured:"WebAuthn 依赖方配置有效。",passkeyNotConfigured:"请先配置有效的 RP ID 与允许的 HTTPS 来源,再启用 Passkey 登录。",passkeyRPID:"RP ID",passkeyOrigins:"允许的 HTTPS 来源",passkeyValueNotConfigured:"未配置",passkeyDeploymentHint:"请由服务器运维在部署配置中将 webauthn.enabled 设为 true,填写 webauthn.rp_id(仅域名)与 webauthn.rp_origins(完整 HTTPS 来源),然后重启服务。",stepUp:"敏感操作二次验证 (step-up 2FA)",stepUpHint:"开启后,账号/代理导出、备份创建与下载、S3 配置修改、提升管理员等敏感操作需要先完成 TOTP 二次验证(15 分钟内有效)。开启前需本人已启用 2FA;关闭该开关本身也需要二次验证。",stepUpEnableRequiresTotp:"开启敏感操作二次验证前,请先在个人资料中为当前账号启用 2FA (TOTP)。",sessionBinding:"会话 IP/UA 绑定",sessionBindingHint:"将登录会话与客户端 IP 和 User-Agent 绑定,任一变化即强制该会话失效并需重新登录(提升被盗凭证的利用门槛)。",auditRetention:"操作日志保留天数",auditRetentionHint:"超过该天数的操作日志将被自动清理;填 0 表示永久保留(仅支持手动清空)。"},panelRateLimit:{title:"面板接口限流",description:"限制面板 API 的请求频率,防止高频刷接口ï¼
26ˆå¦‚用量统计、仪表盘查询)打爆数据库",proxySafeNote:"登录后的接口按「用户账号」维度计数,与来源 IP 无关——反向代理、NAT 共享出口等场景不会被误拦截;公开接口按真实客户端 IP 计数,回环与内网地址(反代内部转发地址)会自动跳过。",enabled:"启用面板接口限流",enabledHint:"对登录后的面板接口按账号限流;超出阈值返回 429,窗口重置后自动恢复。",userRpm:"每账号请求上限",userRpmHint:"单个账号每分钟允许的面板 API 请求总数,正常页面操作远达不到该阈值;0 表示不限制。",heavyRpm:"重查询请求上限",heavyRpmHint:"单个账号每分钟允许的用量/仪表盘等聚合统计查询次数(这类请求对数据库压力最大);0 表示不限制。",publicIpRpm:"公开接口每 IP 上限",publicIpRpmHint:"无需登录的公开接口(如站点公开设置)每个真实客户端 IP 每分钟的请求上限;0 表示不限制。",perMinute:"次/分钟",exemptAdmin:"管理员豁免",exemptAdminHint:"开启后管理员账号不受面板限流约束,避免批量运维操作被误拦。",saved:"面板接口限流配置已保存",saveFailed:"保存面板接口限流配置失败"},orderRateLimit:{title:"下单限流",description:"限制充值与订阅购买的下单频率,防止刷单;充值与订阅各自计数,但共用同一套阈值",enabled:"启用下单限流",enabledHint:"关闭后分钟级/日级限流与 IP 频率验证码升级全部跳过;保存后本节点立即生效,多节点最迟 60 秒内生效。",dailyLimit:"每日下单上限",dailyLimitHint:"单个用户每天允许创建的订单数,超出后提示「今日充值次数已达上限」,次日凌晨重置。",minuteLimit:"窗口内下单上限",minuteLimitHint:"单个用户在左侧窗口时长(秒)内允许创建的订单数。",ipCaptchaThreshold:"IP 验证码阈值",ipCaptchaThresholdHint:"同一 IP 在右侧窗口时长(分钟)内的下单尝试超过该次数时,要求完成人机验证(需已启用验证码服务商)。",captchaFirstOrder:"首单必验",captchaFirstOrderHint:"没有任何成功支付记录的用户下单时要求人机验证;仅在已启用验证码服务商时生效。",seconds:"秒",minutes:"分钟",saved:"下单限流配置已保存",saveFailed:"保存下单限流配置失败",errors:{mustBePositive:"限流数值必须为正整数"}},emailDomain:{title:"邮箱域名限制",description:"控制允许注册的邮箱域名",mode:"限制模式",modeNone:"不限制",modeWhitelist:"白名单",modeBlacklist:"黑名单",modeHint:"选择如何限制注册邮箱的域名",whitelist:"白名单域名",whitelistPlaceholder:"gmail.com, qq.com, 163.com",whitelistHint:"只允许这些域名的邮箱注册,多个域名用逗号分隔",blacklist:"黑名单域名",blacklistPlaceholder:"tempmail.com, guerrillamail.com",blacklistHint:"禁止这些域名的邮箱注册,多个域名用逗号分隔",commonDomains:"常用域名"},turnstile:{title:"Cloudflare Turnstile",description:"登录和注册的机器人防护",enableTurnstile:"启用 Turnstile",enableTurnstileHint:"需要 Cloudflare Turnstile 验证",siteKey:"站点密钥",secretKey:"私密密钥",siteKeyHint:"从 Cloudflare Dashboard 获取",cloudflareDashboard:"Cloudflare Dashboard",secretKeyHint:"服务端验证密钥(请保密)",secretKeyConfiguredHint:"密钥已配置,留空以保留当前值。"},captcha:{title:"人机验证",description:"登录和注册的机器人防护",enable:"启用人机验证",enableHint:"开启后登录、注册等入口需要通过人机验证",provider:"验证服务商",providerTurnstile:"Cloudflare Turnstile",providerTencent:"腾讯天御验证码",providerAliyun:"阿里云验证码 2.0"},tencentCaptcha:{title:"腾讯天御验证码",description:"为登录、注册及第三方登录创建账号流程提供滑动验证码保护",enable:"启用腾讯天御验证码",enableHint:"启用后将在所有原 Turnstile 场景使用腾讯滑动验证码",keepExisting:"留空以保留当前值",configured:"已配置,留空不会覆盖。",required:"启用前必须填写此项。",mutualExclusion:"腾讯天御验证码与 Cloudflare Turnstile、阿里云验证码互斥,开启其中一个会自动关闭其它。",regi
26on:"服务站点",regionCn:"中国站",regionIntl:"国际站",regionHint:"决定前端加载的 SDK 脚本与服务端校验接入点,需与 CaptchaAppId 所属站点一致;国际站请在 tencentcloud.com 控制台创建验证",appCredentialsTitle:"验证码应用密钥",appCredentialsHint:"CaptchaAppId 与 AppSecretKey 来自验证码控制台的验证管理页面。",cloudCredentialsTitle:"云 API 调用密钥",cloudCredentialsHint:"SecretId 与 SecretKey 用于服务端调用 DescribeCaptchaResult 接口。",appId:"CaptchaAppId",appSecretKey:"AppSecretKey",cloudSecretId:"腾讯云 SecretId",cloudSecretKey:"腾讯云 SecretKey",camPermissionHint:"推荐创建 CAM 子用户并授予 QcloudCaptchaFullAccess,避免使用主账号永久密钥。",aidEncryptedHint:"当前版本暂不支持 aidEncrypted,请先不要在验证码控制台开启 CaptchaAppId 强制校验。",openCaptchaConsole:"打开验证码控制台",createCloudKeys:"创建 SecretId / SecretKey",openWebDocs:"查看 Web 接入文档"},aliyunCaptcha:{accessKeyId:"AccessKey ID",accessKeyIdHint:"用于服务端验证的阿里云 AccessKey ID,建议使用仅含验证码权限的 RAM 子账号",accessKeySecret:"AccessKey Secret",accessKeySecretHint:"服务端验证密钥(请保密)",accessKeySecretConfiguredHint:"密钥已配置,留空以保留当前值。",sceneId:"场景 ID",sceneIdHint:"在阿里云验证码控制台创建验证场景后获取;验证方式(无痕/滑块/拼图)在控制台按场景配置",prefix:"身份标(prefix)",prefixHint:"在控制台概览页实例基本信息中获取",region:"服务地域",regionCn:"中国内地",regionSgp:"新加坡",regionHint:"决定前端脚本接入区域与服务端接入点,需与阿里云验证码实例所属地域一致"},apiKeyAcl:{title:"API Key IP 访问控制",description:"控制 API Key 白/黑名单、操作审计日志与会话 IP/UA 绑定使用哪个客户端 IP 判断",trustForwardedIp:"信任反代传递的客户端 IP",trustForwardedIpHint:"为保证升级兼容默认开启。开启后 CF-Connecting-IP、X-Real-IP 或 X-Forwarded-For 会直接接管客户端 IP 解析并覆盖 server.trusted_proxies;关闭后严格使用 server.trusted_proxies 配置的 Gin 可信代理链。仅在源站无法被直接访问时开启接管模式。切换会改变现有会话的 IP 指纹。",forwardedClientIpHeaders:"自定义客户端 IP 请求头",forwardedClientIpHeadersHint:"添加 CDN 或反代请求头名称,解析时优先于内置请求头。",forwardedClientIpHeadersPlaceholder:"X-Client-IP",forwardedClientIpHeadersRiskHint:"源站可被直接访问时,这些原始请求头可被伪造;请先限制源站访问再信任它们。",forwardedClientIpHeaderInvalid:"请输入有效的 HTTP 请求头名称。",forwardedClientIpHeadersLimit:"自定义客户端 IP 请求头最多允许 {max} 个。",removeForwardedClientIpHeader:"移除 {header}"},linuxdo:{title:"LinuxDo Connect 登录",description:"配置 LinuxDo Connect OAuth,用于 Code80 用户登录",enable:"启用 LinuxDo 登录",enableHint:"在登录/注册页面显示 LinuxDo 登录入口",clientId:"Client ID",clientIdPlaceholder:"例如:hprJ5pC3...",clientIdHint:"从 Connect.Linux.Do 后台获取",clientSecret:"Client Secret",clientSecretPlaceholder:"********",clientSecretHint:"用于后端交换 token(请保密)",clientSecretConfiguredPlaceholder:"********",clientSecretConfiguredHint:"密钥已配置,留空以保留当前值。",redirectUrl:"回调地址(Redirect URL)",redirectUrlPlaceholder:"https://your-domain.com/api/v1/auth/oauth/linuxdo/callback",redirectUrlHint:"需与 Connect.Linux.Do 中配置的回调地址一致(必须是 http(s) 完整 URL)",quickSetCopy:"使用当前站点生成并复制",redirectUrlSetAndCopied:"已使用当前站点生成回调地址并复制到剪贴板"},wechat:{title:"微信公众号登录",description:"配置微信公众号验证码登录,用于 Code80 用户登录",enable:"启用微信登录",enableHint:"在登录/注册页面显示微信公众号登录入口",accountType:"公众号类型",accountTypeSubscription:"订阅号",accountTypeUnverifiedOfficial:"未认证公众号",accountTypeHint:"选择您使用的微信公众号类型,不同类型的登录提示文案会有所不同",serverAddress:"验证服务地址",serverAddressPlaceholder:"https://wechat-auth.example.com",serverAddressHint:"微信公众号验证码服务的 API 地址",serverToken:"Token",serverTokenPlaceholder:"请输入 Token",serverTokenConfiguredPlaceholder:"********",serverTokenHint:"用于后端调用验证服务的密钥(请保密)",serverTokenConfiguredHint:"Token 已配置,留空以保留当前值。",internalForwardSecret:"内部转发密钥",internalForwardSecretPlaceholder:"留空表示未配置(可用 openssl rand -hex 32 生成)",internalForwardSecretConfiguredPlaceholder:"********",internalForwardSecretHint:"wechat-server 内部转发公众号事件时必须携带与此一致的 X-Internal-Forward-Token 头;转发器不支持自定义头时,可在转发 URL 追加 internal_forward_token=<密钥> 查询参数。被剥离签名参数且密钥不匹配的转发将被拒绝(影响扫码登录)",internalForwardSecretConfiguredHint:"密钥已配置,留空以保留当前值。",qrcodeUrl:"公众号二维码",qrcodeUrlPlaceholder:"https://example.com/wechat-qrcode.png",qrcode
26UrlHint:"微信公众号二维码图片 URL,用于登录页展示",qrcodePreview:"二维码预览",qrcodePreviewAlt:"公众号二维码",appId:"AppID",appIdPlaceholder:"请输入微信公众号 AppID",appIdHint:"微信公众号的 AppID,用于调用微信 API 生成永久二维码",appSecret:"AppSecret",appSecretPlaceholder:"请输入微信公众号 AppSecret",appSecretConfiguredPlaceholder:"********",appSecretHint:"微信公众号的 AppSecret(请保密)",appSecretConfiguredHint:"AppSecret 已配置,留空以保留当前值",generateQRCode:"生成二维码",generatingQRCode:"生成中...",generateQRCodeSuccess:"二维码生成成功,已自动填充到公众号二维码字段",generateQRCodeFailed:"生成二维码失败",generateQRCodeHint:"填写 AppID 和 AppSecret 后点击此按钮,自动生成永久二维码",orManualInput:"或手动输入二维码 URL",configTip:"配置说明",configTipService:"认证服务号: 填写 AppID 和 AppSecret,点击”生成二维码”自动创建永久二维码",configTipSubscription:"订阅号/未认证公众号: 无法调用 API 生成永久二维码,请手动上传二维码图片",orManualUpload:"或手动上传",uploadQRCode:"上传二维码图片",uploadQRCodeHint:"适用于订阅号或未认证的公众号,图片大小限制 500KB",qrcodeSizeError:"图片大小 ({size}KB) 超过 500KB 限制",qrcodeTypeError:"请上传图片文件",qrcodeReadError:"图片读取失败",removeQRCode:"移除图片",finalPreview:"最终效果预览",source:"来源",sourceUpload:"已上传",sourceGenerated:"API生成",forceEmailBind:"强制绑定邮箱",forceEmailBindHint:"启用后,微信登录用户必须绑定邮箱并设置密码才能使用系统"},wechatPay:{title:"微信支付配置",description:"查看微信支付集成状态(敏感配置需在服务器 config.yaml 中修改)",status:"支付状态",enabled:"已启用",disabled:"未启用",configStatus:"配置状态",configured:"已配置",notConfigured:"未配置",mchId:"商户号",notifyUrl:"回调地址",configHint:"微信支付配置需要在服务器的 config.yaml 文件中设置,包括 AppID、商户号、APIv3密钥等敏感信息。"},recharge:{title:"充值业务配置",description:"配置用户充值的金额选项和订单规则",minAmount:"最小充值金额",maxAmount:"最大充值金额",defaultAmounts:"默认金额选项",addAmount:"添加金额",orderExpireMinutes:"订单过期时间",minutes:"分钟",exchangeRate:"人民币兑额度汇率",exchangeRateUnit:"¥ = $1",exchangeRateHint:"例如:7.0 表示支付 ¥7 到账 $1,设为 1 表示 1:1 转换",amountsHint:"用户在充值页面看到的快捷金额选项,金额必须在最小和最大范围内",expireHint:"未支付订单的自动过期时间,范围 1-1440 分钟(24小时)",newUserOffer:{enabled:"启用新人专享",enabledHint:"开启后,首充用户会在充值页看到专属特惠卡片。",payAmount:"新人专享支付金额",creditAmount:"新人专享到账额度",hint:"建议用于”首充一次”的固定特惠,例如支付 ¥10 到账 $5。"},saveSuccess:"充值配置已保存",saveFailed:"保存充值配置失败",errors:{minGreaterThanMax:"最小金额不能大于最大金额",amountOutOfRange:"金额选项必须在允许范围内",invalidExchangeRate:"汇率必须大于 0",invalidNewUserOffer:"新人专享的支付金额和到账额度都必须大于 0"}},dingtalk:{title:"钉钉登录",description:"配置钉钉 OAuth,用于 Sub2API 用户登录",enable:"启用钉钉登录-企业内部应用",enableHint:"在登录/注册页面显示钉钉登录入口",clientId:"Client ID(AppKey)",clientIdPlaceholder:"例如:dingxxxxxxxxxxxxxxxx",clientIdHint:"从钉钉开放平台应用详情页获取",clientSecret:"Client Secret(AppSecret)",clientSecretPlaceholder:"********",clientSecretHint:"用于后端交换 token(请保密)",clientSecretConfiguredPlaceholder:"********",clientSecretConfiguredHint:"密钥已配置,留空以保留当前值。",redirectUrl:"回调地址(Redirect URL)",redirectUrlPlaceholder:"https://your-domain.com/api/v1/auth/oauth/dingtalk/callback",redirectUrlHint:"需与钉钉开放平台中配置的回调地址一致(必须是 http(s) 完整 URL)",corpPolicy:{label:"企业限制策略",hint:"控制哪些钉钉账号(企业)可以登录",none:"不限制(所有钉钉账号均可登录)",internalOnly:"仅本企业(Internal Only)"},bypassRegistration:"开放钉钉注册",bypassRegistrationHint:"即使「开放注册」关闭时也可以通过钉钉登录来注册",syncDisplayName:"同步钉钉姓名",syncDisplayNameHint:"登录时将钉钉姓名写入 username 字段(同时记录到 dingtalk_name 属性)",syncCorpEmail:"同步企业邮箱",syncCorpEmailHint:"登录时将钉钉企业邮箱写入 dingtalk_email 属性(不影响登录邮箱)",syncCorpEmailPermissionHint:"需在钉钉开放平台 → 应用 → 权限管理中为本应用申请「邮箱等个人信息(fieldEmail)」权限,否则 OAPI 不会返回企业邮箱字段",syncDept:"同步部门",syncDeptHint:"登录时将钉钉首个部门完整路径写入 dingtalk_department 属性(每次登录实时拉取)",syncDeptPermissionHint:"需在钉钉开放平台 → 应用 → 权限管理中为本应用申请「通讯录部门信息读权限(qyapi_get_department_list)」,否则无法递归出部门路径",syncDisplayNameTarget:"属性键",syncDisplayNameTargetHint:"默认 dingtalk_name / 钉钉姓名;保存设置时按上述属性键和显示名称自动创建用户属性(
26已存在则仅同步显示名称)",syncCorpEmailTarget:"属性键",syncCorpEmailTargetHint:"默认 dingtalk_email / 钉钉企业邮箱;保存设置时按上述属性键和显示名称自动创建用户属性(已存在则仅同步显示名称)",syncDeptTarget:"属性键",syncDeptTargetHint:"默认 dingtalk_department / 钉钉部门;保存设置时按上述属性键和显示名称自动创建用户属性(已存在则仅同步显示名称)",syncAttrDisplayName:"显示名称"},oidc:{title:"OIDC 登录",description:"配置标准 OIDC Provider(例如 Keycloak)",enable:"启用 OIDC 登录",enableHint:"在登录/注册页面显示 OIDC 登录入口",providerName:"Provider 名称",providerNamePlaceholder:"例如 Keycloak",clientId:"Client ID",clientIdPlaceholder:"OIDC client id",clientSecret:"Client Secret",clientSecretPlaceholder:"********",clientSecretHint:"用于后端交换 token(请保密)",clientSecretConfiguredPlaceholder:"********",clientSecretConfiguredHint:"密钥已配置,留空以保留当前值。",issuerUrl:"Issuer URL",issuerUrlPlaceholder:"https://id.example.com/realms/main",discoveryUrl:"Discovery URL",discoveryUrlPlaceholder:"可选,留空将基于 issuer 自动推导",authorizeUrl:"Authorize URL",authorizeUrlPlaceholder:"可选,可通过 discovery 自动获取",tokenUrl:"Token URL",tokenUrlPlaceholder:"可选,可通过 discovery 自动获取",userinfoUrl:"UserInfo URL",userinfoUrlPlaceholder:"可选,可通过 discovery 自动获取",jwksUrl:"JWKS URL",jwksUrlPlaceholder:"可选;启用严格 ID Token 校验时必填",scopes:"Scopes",scopesPlaceholder:"openid email profile",scopesHint:"必须包含 openid",redirectUrl:"后端回调地址(Redirect URL)",redirectUrlPlaceholder:"https://your-domain.com/api/v1/auth/oauth/oidc/callback",redirectUrlHint:"必须与 OIDC Provider 中配置的回调地址一致",quickSetCopy:"使用当前站点生成并复制",redirectUrlSetAndCopied:"已使用当前站点生成回调地址并复制到剪贴板",frontendRedirectUrl:"前端回调路径",frontendRedirectUrlPlaceholder:"/auth/oidc/callback",frontendRedirectUrlHint:"后端回调完成后重定向到此前端路径",tokenAuthMethod:"Token 鉴权方式",clockSkewSeconds:"时钟偏移(秒)",allowedSigningAlgs:"允许的签名算法",allowedSigningAlgsPlaceholder:"RS256,ES256,PS256",usePkce:"启用 PKCE",validateIdToken:"校验 ID Token",requireEmailVerified:"要求邮箱已验证",userinfoEmailPath:"UserInfo 邮箱字段路径",userinfoEmailPathPlaceholder:"例如 data.email",userinfoIdPath:"UserInfo ID 字段路径",userinfoIdPathPlaceholder:"例如 data.id",userinfoUsernamePath:"UserInfo 用户名字段路径",userinfoUsernamePathPlaceholder:"例如 data.username"},defaults:{title:"用户默认设置",description:"新用户的默认值",defaultBalance:"默认余额",defaultBalanceHint:"新用户的初始余额",defaultConcurrency:"默认并发数",defaultConcurrencyHint:"新用户的最大并发请求数",defaultUserRpmLimit:"默认用户 RPM 限制",defaultUserRpmLimitHint:"新用户默认每分钟最大请求数,0 = 不限制;仅作用于新用户创建时初始化",defaultSubscriptions:"默认订阅列表",defaultSubscriptionsHint:"新用户创建或注册时自动分配这些订阅",addDefaultSubscription:"添加默认订阅",defaultSubscriptionsEmpty:"未配置默认订阅。新用户不会自动获得订阅套餐。",defaultSubscriptionsDuplicate:"默认订阅存在重复分组:{groupId}。每个分组只能出现一次。",subscriptionGroup:"订阅分组",subscriptionValidityDays:"有效期(天)",defaultPlatformQuotas:"默认平台限额(注册时分配)",defaultPlatformQuotasHint:"新用户注册时自动获得这里配置的限额;已有用户不受影响。留空 = 该平台该窗口不限制。",platformQuotaNotice:"月限额为 30 天滚动窗口,非自然月"},userErrorView:{title:"用户错误请求查看",description:"控制普通用户是否可在「用量」页查看自己的失败/错误请求明细",allowLabel:"允许用户查看自己的错误请求",allowHint:"开启后,用户可在用量页查看自己失败请求的明细;关闭则仅管理员可见。默认关闭。"},platformQuota:{platform:"平台",daily:"日限额 (USD)",weekly:"周限额 (USD)",monthly:"月限额 (USD, 30天滚动)",placeholder:"不限"},claudeCode:{title:"Claude Code 设置",description:"控制 Claude Code 客户端访问要求",minVersion:"最低版本号",minVersionPlaceholder:"ä¾
26‹å¦‚ 2.1.63",minVersionHint:"拒绝低于此版本的 Claude Code 客户端请求(semver 格式)。留空则不检查版本。",maxVersion:"最高版本号",maxVersionPlaceholder:"例如 2.5.0",maxVersionHint:"拒绝高于此版本的 Claude Code 客户端请求(semver 格式)。留空则不限制最高版本。"},scheduling:{title:"网关调度设置",description:"控制 API Key 的调度行为",allowUngroupedKey:"允许未分组 Key 调度",allowUngroupedKeyHint:"关闭后,未分配到任何分组的 API Key 将无法发起请求(返回 403)。建议保持关闭以确保所有 Key 都归属明确的分组。",linkMonthlySubscription:"开放关联包月功能",linkMonthlySubscriptionHint:'关闭后,API 密钥页面隐藏"关联包月"开关,用户无法手动关联或取消关联包月分组。默认开启。'},upstreamBillingProbe:{title:"上游倍率自动探测",description:"定期获取 API Key 账号所连接上游 Sub2API 站点声明的计费倍率;只有另行开启“同步上游声明倍率”的账号才会更新账号倍率。",enabled:"启用全局自动探测",enabledHint:"开启后,仅对账号自身已启用自动检测的账号执行定时探测;关闭后停止所有定时探测,手动探测不受影响。",intervalMinutes:"探测周期(分钟)",intervalHint:"范围 5–1440 分钟。成功探测结果的有效期为两个探测周期。",saved:"上游倍率自动探测设置已保存",saveFailed:"保存上游倍率自动探测设置失败"},ollamaCloudUsage:{title:"Ollama Cloud 用量刷新",description:"在模型请求驱动下刷新账号在 Ollama 官方设置页展示的用量;默认关闭。无新请求时不会自动抓取。",enabled:"启用全局自动刷新",enabledHint:"仅刷新已保存浏览器会话且账号自身也开启自动刷新的账号;需有后续模型请求才会触发。手动刷新不受影响。",intervalMinutes:"持续请求最长等待(分钟)",intervalHint:"范围 15–1440 分钟。请求持续不断导致 debounce 一直后移时,最晚在此时间强制刷新。",debounceMinutes:"请求安静等待(分钟)",debounceHint:"范围 1–60 分钟。最后一次模型请求安静满此时长后再抓取用量。",saved:"Ollama Cloud 用量刷新设置已保存",saveFailed:"保存 Ollama Cloud 用量刷新设置失败"},gatewayForwarding:{title:"请求转发行为",description:"控制请求转发到上游 OAuth 账号时的行为",openaiTTFTMode:"OpenAI Responses 首 token 统计口径",openaiTTFTModeSemantic:"历史兼容(语义事件)",openaiTTFTModeVisible:"真实可见输出",openaiTTFTModeHint:"默认使用历史兼容口径,首个非预置语义事件即记录 first_token_ms。选择真实可见输出后,仅在首个非空文本、工具参数或图片内容到达时记录。",fingerprintUnification:"指纹统一化",fingerprintUnificationHint:"统一共享同一 OAuth 账号的用户的 X-Stainless-* 请求头。关闭后透传客户端原始请求头。",metadataPassthrough:"Metadata 透传",metadataPassthroughHint:"透传客户端原始 metadata.user_id,不进行重写。可能提高上游缓存命中率。",cchSigning:"CCH 签名",cchSigningHint:"对转发请求的 billing header 进行 CCH 哈希签名。关闭时保留原始占位符。",identityPatchTitle:"Antigravity 身份补丁",identityPatchDescription:"控制 Claude 请求转发到 Gemini/Antigravity 时注入到 systemInstruction 开头的身份提示词。",identityPatchPrompt:"自定义身份提示词",identityPatchPromptPlaceholder:"留空时使用内置身份提示词模板。",identityPatchPromptHint:"仅在启用身份补丁时生效;会插入到 systemInstruction 开头。",claudeOAuthSystemPromptInjection:"Claude OAuth System 注入",claudeOAuthSystemPromptInjectionHint:"为非 Claude Code 客户端的 Claude OAuth 请求注入 Claude Code 形态的 system blocks。默认开启。",claudeOAuthSystemPrompt:"Claude OAuth 扩展提示词",claudeOAuthSystemPromptPlaceholder:"留空时使用内置 Claude Code 扩展提示词。",claudeOAuthSystemPromptHint:"兼容旧配置:仅控制第三个注入的 system block。",claudeOAuthSystemPromptBlocks:"Claude OAuth System Blocks",claudeOAuthSystemPromptBlocksHint:"每个 block 会保存为带 enabled、type、text、可选 cache_control 的 JSON。{'{'}billing_header{'}'} 会按请求动态生成;Claude Code 身份提示词和扩展提示词可直接编辑,也可用预设恢复默认值。",claudeCodeCompatBridge:"Claude -> GPT Bridge",claudeCodeCompatBridgeHint:"仅对真实 Claude Code 请求在转换到 OpenAI Responses/GPT 路径时注入 Claude 风格兼容桥接提示词。",claudeCodeCompatBridgeTemplate:"Bridge 提示词模板",claudeCodeCompatBridgeTemplatePlaceholder:"留空时回退到 gateway.forced_codex_instructions_template_file。",claudeCodeCompatBridgeTemplateHint:"该模板只作用于 Claude Code -> GPT/Codex 兼容路径;非 Claude 客户端和非 GPT 上游不会命中。",claudeIdentityPromptTitle:"Claude 身份提示词",claudeIdentityPromptHint:"按客户端 claude-* 模型匹配并前置注入。仅当 /v1/messages 实际由 GPT/Grok 承接时生效;真 Claude OAuth 不注入。claude-013 类中ç»
26§å¯å¼€è´¦å·å¼€å…³ï¼Œæˆ–把上游后端标成 GPT/Grok。空目录会预填简短身份核心段,不是 CL4R1T4S 全文。",claudeIdentityPromptDefault:"通用默认提示词",claudeIdentityPromptDefaultPlaceholder:"未匹配到模型规则时使用。留空则不注入。",claudeIdentityPromptRuleTitle:"模型规则 {index}",claudeIdentityPromptMatch:"匹配模型",claudeIdentityPromptMatchPlaceholder:"claude-opus-5",claudeIdentityPromptMatchType:"匹配方式",claudeIdentityPromptMatchExact:"精确",claudeIdentityPromptMatchPrefix:"前缀",claudeIdentityPromptText:"身份提示词",claudeIdentityPromptAddRule:"添加规则",claudeIdentityPromptAddRecommended:"填入推荐模型行",claudeIdentityPromptSizeWarn:"提示词超过 64KB,完整 CL4R1T4S 文本会显著占上下文并打贵缓存,建议只贴身份/风格核心段。",systemBlockTitle:"System Block {index}",systemBlockPreset:"预设",systemBlockPresetBilling:"Billing Header",systemBlockPresetIdentity:"Claude Code 身份提示词",systemBlockPresetExpansion:"Claude Code 扩展提示词",systemBlockPresetCustom:"自定义",systemBlockType:"类型",systemBlockTypeText:"文本",systemBlockText:"内容",systemBlockCacheControl:"Cache Control",systemBlockHide:"隐藏 block 详情",systemBlockShow:"展示 block 详情",addSystemBlock:"添加 block",resetSystemBlocks:"恢复默认",cacheTTL5m:"5 分钟",cacheTTL1h:"1 小时",anthropicCacheTTL1hInjection:"Anthropic 缓存 TTL 注入",anthropicCacheTTL1hInjectionHint:"开启后,对 Anthropic OAuth/Setup Token 请求体中已有的 ephemeral 缓存块强制写入 1h;响应 usage 默认按 5m 回写计费,账号级 TTL 计费设置优先。",rewriteMessageCacheControl:"改写消息缓存断点",rewriteMessageCacheControlHint:"默认关闭,保留客户端在 messages 内容块中的 cache_control。开启后会清除客户端断点并注入代理断点,适合不自行管理缓存策略的客户端。",clientDatelineNormalization:"客户端 dateline 归一化",clientDatelineNormalizationHint:`默认开启。将 Anthropic OAuth/Setup Token 请求体中 "Today's date is …" 语句里的撇号与日期分隔符还原为 ASCII 撇号 + 短横线 (2026-07-01) 的规范形态,抹除某些客户端在检测到非官方 base URL 时注入的隐写指纹位。仅作用于 system prompt 与 <system-reminder> 块内,API Key 账号不受影响。`,antigravityUserAgentVersion:"Antigravity UA 版本",antigravityUserAgentVersionPlaceholder:"1.23.2",antigravityUserAgentVersionHint:"留空时使用 ANTIGRAVITY_USER_AGENT_VERSION 或内置默认值 1.23.2;填写后后台设置优先。",grokDefaultTextModel:"Grok 默认文本模型",grokDefaultTextModelPlaceholder:"grok-4.5",grokDefaultTextModelHint:"当 Grok 客户端请求没有显式文本模型时使用的兜底模型。",grokCrossClientModelMap:"Grok 跨客户端模型映射",grokCrossClientModelMapHint:"为兼容客户端,默认开启。GPT、Codex、o 系列和 Claude 模型 ID 会路由到左侧默认 Grok 文本模型;关闭后必须使用 Grok 模型 ID。",grokCrossClientMapHint:"为兼容客户端,默认开启。GPT、Codex、o 系列和 Claude 模型 ID 会路由到左侧默认 Grok 文本模型;关闭后必须使用 Grok 模型 ID。",openaiCodexUserAgent:"OpenAI Codex UA",openaiCodexUserAgentPlaceholder:"codex-tui/0.146.1 (Ubuntu 22.4.0; x86_64) WindowsTerminal (codex-tui; 0.146.1)",openaiCodexUserAgentHint:"出站统一使用的完整 Codex User-Agent,用于自定义 OS / 架构 / 终端指纹。留空则按下方版本号拼出标准 codex-tui 形态(推荐)。填写后首段和尾部的版本号仍会被下方版本号同步覆盖,避免这条 UA 停在填写时的旧版本——上游在容量紧张时按客户端身份分优先级降载,陈旧或非官方形态的身份会被优先丢弃并回 server_is_overloaded。",openaiCodexClientVersion:"Codex 客户端版本号",openaiCodexClientVersionPlaceholder:"留空则跟随自动同步",openaiCodexClientVersionHint:"网关对上游声明的 Codex 客户端版本号,User-Agent 与 version 头å
26Œæºä½¿ç”¨ã€‚留空表示使用自动同步到的官方最新稳定版;填写后固定为该版本,不再跟随同步。",openaiCodexVersionAutoSync:"自动同步 Codex 版本号",openaiCodexVersionAutoSyncHint:"每 6 小时从官方仓库获取最新稳定版客户端版本号,无需为了跟版本而升级本服务。关闭后仅使用上方手填版本或内置版本。",openaiCodexVersionSyncedValue:"当前同步到:{version}",claudeCodeClientVersion:"Claude Code 客户端版本号",claudeCodeClientVersionHint:"网关伪装为官方 Claude Code CLI 时对上游声明的客户端版本号。留空表示使用自动同步到的官方最新版本;填写后固定为该版本,不再跟随同步。仅在手填值和同步值均不可用时,才回退到环境变量 SUB2API_CLAUDE_CLI_VERSION 或内置版本。",claudeCodeVersionAutoSync:"自动同步 Claude Code 版本号",claudeCodeVersionAutoSyncHint:"每小时从官方发布渠道获取最新版本的 Claude Code 客户端版本号,无需为了跟版本而升级本服务。关闭后停止获取新版本,已同步的版本仍可使用;上方手填版本始终优先。",claudeCodeVersionSyncedValue:"当前同步到:{version}",codexHardeningTitle:"Codex 设置",codexClientRestrictionTitle:"Codex 客户端限制",codexHardeningDesc:"仅对已开启「仅允许 Codex 官方客户端」的 OpenAI OAuth 账号生效(全局)。在 User-Agent/Originator 之外,用版本区间、引擎指纹门与黑/白名单巩固判定。",minCodexVersion:"最低 Codex 版本",minCodexVersionPlaceholder:"例如 0.142.0",maxCodexVersion:"最高 Codex 版本",maxCodexVersionPlaceholder:"例如 0.200.0",codexVersionHint:"仅对官方客户端生效,校验其版本是否落在 [最低, 最高] 区间。留空表示该侧不限制。",codexFingerprintSignals:"Codex 引擎指纹信号",codexFingerprintSignalsDesc:"定义引擎指纹信号:勾「必须」的信号需全部命中(AND),每条 / 分隔的变体取或(OR);一条都不勾即不校验。默认只勾 x-codex- 前缀。类型:头精确 / 头前缀 / body 路径。",codexFpTypeHeaderExact:"头精确",codexFpTypeHeaderPrefix:"头前缀",codexFpTypeBodyPath:"body 路径",codexFpMatchPlaceholder:"匹配,变体用 / 分隔(如 session-id / session_id 或 x-codex-)",codexFpRequired:"必须",codexFingerprintNoRequiredWarn:"未勾选任何「必须」信号——引擎指纹门当前不生效,等于放行所有通过身份/版本的候选。如需启用校验,请至少勾选一条信号。",codexAllowAppServer:"Codex app-server",codexAllowAppServerDesc:"放行内嵌 Codex 引擎、经 app-server 协议接入的第三方客户端(如 Claude Code 的 codex 插件)。默认关闭;开启后此类客户端通过引擎指纹门(下方信号列表)即放行,关闭则仅放行官方客户端与白名单。",codexBlacklist:"User-Agent/Originator 黑名单",codexBlacklistDesc:"命中任一字段即拒,优先于一切放行。originator 精确匹配,User-Agent 为包含匹配(多个用逗号分隔)。",codexWhitelist:"User-Agent/Originator 白名单",codexWhitelistDesc:"放行官方集之外的客户端:需 originator 精确,且每个 User-Agent 标记都命中。默认仍需过引擎指纹门,勾「跳过引擎指纹」可免。",codexWhitelistSkipFingerprint:"跳过引擎指纹",codexWhitelistSkipFingerprintTooltip:"风险:勾选后该条仅凭 originator + User-Agent(均可伪造)放行,不再要求引擎指纹兜底。仅用于确属可信、但本身不发 codex 引擎指纹的第三方客户端。",codexOriginatorPlaceholder:"originator(精确,如 opencode)",codexUaContainsPlaceholder:"User-Agent 包含标记,逗号分隔(如 opencode/)",codexAddRow:"添加一条",codexRemoveRow:"删除"},webSearchEmulation:{title:"Web Search 模拟",description:"为不原生支持搜索的 Anthropic API Key 账号注入 web search 能力",enabled:"启用 Web Search 模拟",enabledHint:"全局开关。关闭后所有渠道和账号的 web search 模拟均不生效。",providers:"搜索服务商",addProvider:"添加服务商",providerType:"服务商类型",apiKey:"API Key",apiKeyPlaceholder:"输入 API Key",apiKeyConfigured:"已配置",showApiKey:"显示",hideApiKey:"隐藏",copyApiKey:"复制",copied:"已复制",quotaLimit:"配额上限",quotaLimitHint:"留空表示无限制;填写时必须大于 0",quotaLimitMustBePositive:"配额上限必须大于 0",subscribedAt:"订阅时间",subscribedAtHint:"配额从此日期起每月自动重置;留空则不自动重置",quotaUsage:"用量",resetUsage:"重置",resetUsageConfirm:"确定要重置此服务商的用量计数吗?",resetUsageSuccess:"用量已重置",proxy:"代理",removeProvider:"删除",noProviders:"未配置搜索服务商",test:"测试",testDefaultQuery:"搜索今年世界大事件",testing:"搜索中...",testResultTitle:"搜索结果",testResultProvider:"服务商",testNoResults:"无搜索结果"},site:{title:"站点设置",description:"自定义站点品牌",backendMode:"Backend 模式",backendModeDescription:"禁用用户注册、公开页面和自助服务功能。仅管理员可以登录和管理平台。",siteName:"站点名称",siteNameHint:"显示在邮件和页面标题中",siteNamePlaceholder:"Code80",siteSubtitle:"站点副标题",siteSubtitleHint:"显示在登录和注册页面",siteSubtitlePlaceholder:"订阅转 API 转换平台",apiBaseUrl:"API 端点地址",apiBaseUrlHint:"填写后将在「API Keys」页面端点列表中展示,留空则展示当前站点地址",apiBaseUrlPlaceholder:"https://api.example.com",clientSuggestionUrl:"客户端配置建议地址",clientSuggestionUrlHint:'用于"使用密钥"、"导入到 CC Switch"中的地址建议,留空则使用当前站点地址',clientSuggestionUrlPlaceholder:"https://example.com",tablePreferencesTitle:"通用表格设置",tablePreferencesDescription:"设置后台与用户侧表格组件的默认分页行为",tableDefaultPageSize:"默认每页条数",tableDefaultPageSizeHint:"必须为 5-1000 之间的整数",tablePageSizeOptions:"可选每页条数列表",tablePageSizeOptionsPlaceholder:"10, 20, 50, 100",tablePageSizeOptionsHint:"使用英文逗号分隔,取值范围 5-1000,保存æ—
26¶ä¼šè‡ªåŠ¨åŽ»é‡å¹¶æŽ’åº",tableDefaultPageSizeRangeError:"默认每页条数必须在 {min}-{max} 之间",tablePageSizeOptionsFormatError:"可选每页条数格式无效,请输入 {min}-{max} 之间的整数并用英文逗号分隔",customEndpoints:{title:"自定义端点",description:"添加额外的 API 端点地址,用户可在「API Keys」页面快速复制",itemLabel:"端点 #{n}",name:"名称",namePlaceholder:"如:OpenAI Compatible",endpointUrl:"端点地址",endpointUrlPlaceholder:"https://api2.example.com",descriptionLabel:"介绍",descriptionPlaceholder:"如:支持 OpenAI 格式请求",add:"添加端点"},contactInfo:"客服联系方式",contactInfoPlaceholder:"例如:QQ: 123456789",contactInfoHint:"填写客服联系方式,将展示在兑换页面、个人资料等位置",contactQRCode:"客服二维码",contactQRCodeHint:'上传微信客服二维码或社群二维码,用户点击"联系客服"时可展示',qrcodeWechat:"微信客服二维码",qrcodeGroup:"社群二维码",qrcodeSizeError:"图片大小超过 500KB 限制({size}KB)",qrcodeTypeError:"请上传图片文件",qrcodeReadError:"读取图片失败",docUrl:"文档链接",docUrlHint:"文档网站的链接。留空则隐藏文档链接。",docUrlPlaceholder:"https://docs.example.com",googleAnalyticsId:"Google Analytics ID",googleAnalyticsIdPlaceholder:"G-XXXXXXXXXX",googleAnalyticsIdHint:"填入 GA4 衡量 ID,保存后会在页面 head 注入 gtag.js。留空则关闭统计。",umengAnalyticsId:"友盟统计 ID",umengAnalyticsIdPlaceholder:"1234567890",umengAnalyticsIdHint:"填入友盟 U-Web / CNZZ 站点 ID,保存后会在页面 head 注入异步统计脚本。留空则关闭统计。",siteLogo:"站点Logo",siteLogoDark:"站点Logo(夜间模式)",uploadImage:"上传图片",remove:"移除",logoHint:"PNG、JPG 或 SVG 格式,最大 300KB。建议:80x80px 正方形图片。",logoDarkHint:"夜间模式下使用的 Logo。PNG、JPG 或 SVG 格式,最大 300KB。",logoSizeError:"图片大小超过 300KB 限制({size}KB)",logoTypeError:"请选择图片文件",logoReadError:"读取图片文件失败",homeContent:"首页内容",homeContentPlaceholder:"在此输入首页内容,支持 Markdown & HTML 代码。如果输入的是一个链接,则会使用该链接作为 iframe 的 src 属性。",homeContentHint:"自定义首页内容,支持 Markdown/HTML。如果输入的是链接(以 http:// 或 https:// 开头),则会使用该链接作为 iframe 的 src 属性,这允许你设置任意网页作为首页。设置后首页的状态信息将不再显示。",homeContentIframeWarning:"iframe 模式提示:部分网站设置了 X-Frame-Options 或 CSP 安全策略,禁止被嵌入到 iframe 中。如果页面显示空白或报错,请确认目标网站允许被嵌入,或考虑使用 HTML 模式自行构建页面内容。",compactHome:"简洁首页",compactHomeHint:"未设置自定义首页内容时,展示简洁的站点信息页面。",hideCcsImportButton:"隐藏 CCS 导入按钮",hideCcsImportButtonHint:'启用后将在 API Keys 页面隐藏"导入 CCS"按钮'},installGuideVideos:{title:"安装教程视频",description:"为安装教程页配置各工具的视频链接(支持 Bilibili 和 YouTube)",overview:"总览视频",stepInstallNode:"安装 Node.js",stepInstallCli:"安装 CLI",stepConfigApi:"配置 API",stepLaunch:"启动使用",urlPlaceholder:"https://www.bilibili.com/video/BVxxx 或 YouTube 链接"},homeTestimonials:{title:"首页用户评价",description:"配置首页展示的用户评价(JSON 数组格式)",placeholder:`[{'{'}"name":"张三","role":"全栈工程师","content":"效果很好","rating":5{'}'}]`,hint:"格式:JSON 数组,每项包含 name、role(可选)、content、rating(1-5,可选)字段"},cursorPricing:{title:"首页对比 - Cursor 定价",description:"配置 Cursor 等效美元价格用于首页对比表",placeholder:"输入 Cursor 定价 JSON",invali
26dJson:"JSON 格式错误",saved:"已保存",jsonExample:"JSON 格式,参见文档示例"},gallery:{title:"订阅截图画廊",description:"在首页展示 3D 旋转画廊,用于展示各类订阅截图",sectionTitle:"画廊标题",sectionSubtitle:"画廊副标题",categories:"分类管理",addCategory:"添加分类",images:"图片管理",imageTitle:"图片标题",upload:"上传图片",uploadHint:"支持 JPG/PNG/WebP,单张不超过 500KB,自动压缩",noCategoryError:"请先添加至少一个分类",save:"保存画廊设置",saveSuccess:"画廊设置保存成功"},purchase:{title:"充值/订阅页面",description:"在侧边栏展示“充值/订阅”入口,并在页面内通过 iframe 打开指定链接",enabled:"显示充值/订阅入口",enabledHint:"仅在标准模式(非简单模式)下展示",url:"充值/订阅页面 URL",urlPlaceholder:"https://example.com/purchase",urlHint:"必须是完整的 http(s) 链接",iframeWarning:"iframe 提示:部分网站会通过 X-Frame-Options 或 CSP(frame-ancestors)禁止被 iframe 嵌入,出现空白时可引导用户使用”新窗口打开”。",integrationDoc:"支付集成文档",integrationDocHint:"包含接口说明、幂等语义及示例代码"},customMenu:{title:"自定义菜单页面",description:"添加自定义 iframe 页面到侧边栏导航。每个页面可以设置为普通用户或管理员可见。",itemLabel:"菜单项 #{n}",name:"菜单名称",namePlaceholder:"如:帮助中心",url:"页面 URL",urlPlaceholder:"https://example.com/page 或 md:<标识>",urlHint:"绝对 http(s) 链接,或填 md:<标识> 渲染内置 Markdown 页面",iconSvg:"SVG 图标",iconSvgPlaceholder:"<svg>...</svg>",iconPreview:"图标预览",uploadSvg:"上传 SVG",removeSvg:"清除",visibility:"可见角色",visibilityUser:"普通用户",visibilityAdmin:"管理员",hideOpenButton:"隐藏「在新标签页打开」按钮",add:"添加菜单项",maxItemsReached:"已达菜单项数量上限(最多 20 项)",remove:"删除",moveUp:"上移",moveDown:"下移"},payment:{title:"支付设置",description:"配置支付系统选项",configGuide:"支付配置指南",enabled:"启用支付",enabledHint:"启用或禁用支付系统",enabledPaymentTypes:"启用的服务商",enabledPaymentTypesHint:"禁用服务商将同时禁用对应的实例。",findProvider:"正在寻找合适的易支付服务商?",minAmount:"最低金额",maxAmount:"最高金额",dailyLimit:"每日限额",balanceRechargeMultiplier:"余额充值倍率",balanceRechargeMultiplierHint:"用户每支付 1 CNY 可获得多少 USD 余额",balanceRechargePreview:"预览:1 CNY = {usd} USD",subscriptionUsdToCnyRate:"订阅 CNY 换算汇率",subscriptionUsdToCnyRateHint:"CNY 支付通道下,套餐每 1 USD 价格收取多少 CNY(如 7.15)。0 或留空 = 不换算,订阅按 price 数值直接收款。启用后所有套餐 price 必须按 USD 定价",subscriptionUsdToCnyRateDisabled:"未启用(按 price 直付)",rechargeFeeRate:"充值手续费率",rechargeFeeRateHint:"用户充值时额外收取的手续费百分比,0 表示不收取手续费",rechargeFeePreview:"预览:充值 100 元,手续费 {fee} 元",orderTimeout:"订单超时时间",orderTimeoutHint:"单位:分钟,至少 1 分钟",maxPendingOrders:"最大待支付订单数",cancelRateLimit:"限制取消频率",cancelRateLimitHint:"启用后,用户在时间窗口内取消订单次数超限将无法创建新订单",cancelRateLimitEvery:"每",cancelRateLimitAllowMax:"最多",cancelRateLimitTimes:"次",cancelRateLimitWindow:"时间窗口",cancelRateLimitUnit:"周期",cancelRateLimitMax:"最大取消次数",cancelRateLimitUnitMinute:"分钟",cancelRateLimitUnitHour:"小时",cancelRateLimitUnitDay:"天",cancelRateLimitWindowMode:"窗口模式",cancelRateLimitWindowModeRolling:"滚动",cancelRateLimitWindowModeFixed:"固定",helpText:"帮助文本",helpImageUrl:"帮助图片链接",manageProviders:"管理服务商",balancePaymentDisabled:"禁用余额充值",noLimit:"留空表示不限制",helpImage:"帮助图片",helpImagePlaceholder:"上传或输入图片链接",helpTextPlaceholder:"输入帮助说明文本...",providerEasypay:"易支付",providerAlipay:"支付宝官方",providerWxpay:"微信官方",providerStripe:"Stripe",typeDisabled:"类型已禁用",enableTypesFirst:"请先在上方启用至少一种服务商",easypayRedirect:"跳转",paymentMode:"支付模式",modeRedirect:"跳转",modeQRCode:"二维码",modePopup:"弹窗",validationNameRequired:"服务商名称不能为空",validationTypesRequired:"请至少选择一种支持的支付方式",validationFieldRequired:"{field} 不能为空",validationEasyPayCustomMethodRequired:"每个易支付自定义方式都必须填写支付方式和上游 type",validationEasyPayCustomMethodT
26ypeInvalid:"易支付自定义支付方式只能包含小写字母、数字、下划线和短横线",validationEasyPayCustomMethodUpstreamTypeInvalid:"易支付上游 type 只能包含小写字母、数字、点号、下划线和短横线",validationEasyPayCustomMethodReserved:"易支付自定义支付方式不能使用内置的 alipay 或 wxpay",validationEasyPayCustomMethodPrefixReserved:"易支付自定义支付方式不能以 alipay 或 wxpay 开头",validationEasyPayCustomMethodDuplicate:"易支付自定义支付方式不能重复",field_apiBase:"API 基础地址",field_notifyUrl:"异步通知地址",field_returnUrl:"同步跳转地址",callbackBaseUrl:"回调基础地址",field_privateKey:"私钥",field_publicKey:"公钥",field_mpAppId:"公众号 App ID",field_mchId:"商户号",field_apiV3Key:"API v3 密钥",field_publicKeyId:"公钥 ID",field_certSerial:"证书序列号",field_h5AppName:"H5 应用名称",field_h5AppUrl:"H5 应用地址",wxpayConfigHint:"微信支付通常只需要填写 App ID。公众号 App ID、H5 应用名称、H5 应用地址仅在公众号支付或 H5 场景有特殊要求时再填写。",wxpayAdvancedOptions:"微信支付高级可选项",field_secretKey:"密钥",field_clientId:"Client ID",field_apiKey:"API Key",field_publishableKey:"公开密钥",field_webhookSecret:"Webhook 密钥",field_countryCode:"国家/地区代码",field_currency:"支付币种",field_paymentCurrencyHint:"默认 CNY。Stripe 可按账户支持从下拉项选择 HKD、USD 等币种;微信、支付宝、易支付仍按 CNY。",field_cid:"支付渠道 ID",field_cidAlipay:"支付宝渠道 ID",field_cidWxpay:"微信渠道 ID",easypayCustomMethods:"易支付自定义支付方式",easypayCustomMethodsHint:"添加当前易支付服务商额外支持的支付方式。支付方式会记录到 Sub2API 订单中,上游 type 会作为易支付 type 参数提交。",addCustomMethod:"添加方式",customMethodType:"支付方式",customMethodUpstreamType:"上游 type",customMethodDisplayName:"显示名称",customMethodDisplayNamePlaceholder:"如:信用卡",stripeWebhookHint:"请在 Stripe Dashboard 中将以下地址配置为 Webhook 端点:",stripeWebhookApiVersionHint:"Webhook 端点的 API 版本请与当前集成的 Stripe SDK 对齐,建议选择 {version};版本不一致可能导致回调事件解析失败。",limitsTitle:"限额配置",limitSingleMin:"单笔最低",limitSingleMax:"单笔最高",limitDaily:"每日限额",limitsHint:"全部留空使用全局配置,部分填写时留空项表示不限制",limitsUseGlobal:"使用全局配置",limitsNoLimit:"不限制",productNamePrefix:"商品名前缀",productNameSuffix:"商品名后缀",preview:"预览",loadBalanceStrategy:"负载均衡策略",strategyRoundRobin:"轮询",strategyLeastAmount:"最少金额",providerManagement:"服务商管理",providerManagementDesc:"管理支付服务商实例",createProvider:"添加服务商",editProvider:"编辑服务商",deleteProvider:"删除服务商",deleteProviderConfirm:"确定要删除此服务商吗?",providerName:"服务商名称",providerKey:"服务商类型",selectProviderKey:"选择服务商类型",providerConfig:"凭证配置",paymentGuideTrigger:"查看支付方式说明",guideOpenLabel:"开通:",guideCallLabel:"调用:",guideFallbackLabel:"降级:",alipayGuideSummary:"桌面优先扫码单,失败再走收银台;移动优先手机网站支付。",alipayGuideFaceToFaceTitle:"当面付 / 扫码支付",alipayGuideFaceToFaceOpen:"需开通当面付或扫码支付能力。",alipayGuideFaceToFaceCall:"桌面端下单时优先调用 alipay.trade.precreate,前台直接渲染二维码。",alipayGuideFaceToFaceFallback:"接口不可用或返回失败时,自动降级到电脑网站支付。",alipayGuidePagePayTitle:"电脑网站支付",alipayGuidePagePayOpen:"需开通电脑网站支付。",alipayGuidePagePayCall:"桌面端当面付不可用时调用 alipay.trade.page.pay,并继续把返回链接渲染成二维码。",alipayGuidePagePayFallback:"同时保留打开收银台入口,用户可手动重新拉起支付页。",alipayGuideWapTitle:"手机网站支付",alipayGuideWapOpen:"需开通手机网站支付。",alipayGuideWapCall:"移动端优先调用 alipay.trade.wap.pay,跳转支付宝收银台。",alipayGuideWapFallback:"未开通或返回异常时,前端自动改走扫码支付并提示未开通移动支付。",wxpayGuideSummary:"桌面优先 Native 扫码,移动端按浏览器环境走 JSAPI 或 H5。",wxpayGuideNote:"当前表单默认共用一个 App ID,适合同主体下统一配置网页、移动和公众号场景。",wxpayGuideNativeTitle:"Native / 扫码支付",wxpayGuideNativeOpen:"需开通 Native 或扫码支付能力。",wxpayGuideNativeCall:"桌面端默认调用 Native,下发二维码内容给前台渲染。",
26wxpayGuideNativeFallback:"移动端无法走 JSAPI 或 H5 时,也会自动回退到这里。",wxpayGuideJsapiTitle:"JSAPI / 公众号支付",wxpayGuideJsapiOpen:"需开通公众号支付,并保证当前浏览器在微信内且能拿到 OpenID。",wxpayGuideJsapiCall:"微信内浏览器完成授权后调用 JSAPI,直接拉起微信支付。",wxpayGuideJsapiFallback:"未配置、Bridge 不可用或拉起失败时,自动改走扫码支付。",wxpayGuideH5Title:"H5 支付",wxpayGuideH5Open:"需开通 H5 支付。",wxpayGuideH5Call:"移动端非微信浏览器且有客户端 IP 时调用 H5 支付,跳转微信收银台。",wxpayGuideH5Fallback:"未开通 H5 或下单失败时,自动改走扫码支付。",noProviders:"暂无服务商实例",supportedTypes:"支持的支付方式",supportedTypesHint:"逗号分隔,如 alipay,wxpay",refundEnabled:"允许退款",allowUserRefund:"允许用户退款",enableConflict:"{method} 已有启用中的服务商实例:{provider}。请先停用现有实例后再启用或切换。"},balanceNotify:{title:"余额不足提醒",description:"当用户余额低于阈值时发送邮件提醒",enabled:"启用余额不足提醒",threshold:"默认提醒阈值",thresholdHint:"用户未自定义时使用此值",thresholdPlaceholder:"输入金额",rechargeUrl:"充值页面 URL",rechargeUrlPlaceholder:"https://example.com/payment",rechargeUrlHint:"设置后邮件中将包含充值链接按钮"},quotaNotify:{title:"账号限额通知",description:"当账号配额用量达到告警阈值时通知管理员",enabled:"启用账号限额通知",emails:"通知邮箱",emailsHint:"留空则不发送通知",addEmail:"添加邮箱",emailPlaceholder:"输入邮箱地址"},disabledKeyReplayNotify:{title:"禁用 Key 重放告知",description:"已禁用的 API Key 被脚本持续重放(401)达到阈值时,邮件告知 Key 所有者,同一用户 24 小时内最多一封。",enabled:"启用禁用 Key 重放告知",threshold:"触发阈值(次 / 10 分钟)",thresholdHint:"10 分钟窗口内同一 Key 的 401 次数达到该值时发送邮件,默认 20 次。"},subscriptionExpiryNotify:{title:"订阅到期提醒",description:"控制是否向用户发送订阅即将到期的邮件提醒。",enabled:"启用订阅到期提醒",enabledHint:"开启后,系统会在订阅到期前 7 天、3 天、1 天各发送一次提醒。"},emailChannels:{title:"主邮件渠道设置",description:"可添加多个 SMTP 渠道并拖动排序,发送时按优先级依次尝试,失败自动切换下一个渠道",addChannel:"添加渠道",channelNamePlaceholder:"渠道名称(如 Resend、Zoho)",priority:"优先级(数字越小越优先)",dragHint:"拖动排序,靠前的渠道优先使用",removeChannel:"删除渠道",notConfigured:"未配置 SMTP 主机",noChannels:"尚未配置邮件渠道,点击右上角「添加渠道」开始配置",testRecipientHint:"用于各渠道的「发送测试邮件」功能",testUsesSavedPassword:"密码留空时使用已保存的密码进行测试",saveHint:"渠道的新增、删除与排序需点击页面底部「保存」后生效"},smtp:{title:"SMTP 设置",description:"配置用于发送验证码的邮件服务",testConnection:"测试连接",testing:"测试中...",host:"SMTP 主机",hostPlaceholder:"smtp.gmail.com",port:"SMTP 端口",portPlaceholder:"587",username:"SMTP 用户名",usernamePlaceholder:"your-email{'@'}gmail.com",password:"SMTP 密码",passwordPlaceholder:"********",passwordHint:"留空以保留现有密码",passwordConfiguredPlaceholder:"********",passwordConfiguredHint:"密码已配置,留空以保留当前值。",fromEmail:"发件人邮箱",fromEmailPlaceholder:"noreply{'@'}example.com",fromName:"发件人名称",fromNamePlaceholder:"Code80",useTls:"使用 TLS",useTlsHint:"为 SMTP 连接启用 TLS 加密",enableEmailVerifyHint:"邮箱验证功能未启用。请在「安全与认证」标签页中启用邮箱验证,然后再配置 SMTP 设置。"},testEmail:{title:"发送测试邮件",description:"发送测试邮件以验证 SMTP 配置",recipientEmail:"收件人邮箱",recipientEmailPlaceholder:"test{'@'}example.com",sendTestEmail:"发送测试邮件",sending:"发送中...",enterRecipientHint:"请输入收件人邮箱地址"},usageReport:{title:"使用报告邮件",description:"配置每日使用报告邮件发送",enabled:"启用使用报告",enabledHint:"全局开启后,用户可以在个人设置中选择是否接收报告",targetScope:"发送范围",targetScopeHint:"选择哪些用户将收到使用报告",scopeAll:"全部用户(已绑定邮箱)",scopeActiveToday:"当天有使用的用户",scopeOptedIn:"仅启用报告的用户",globalSchedule:"全局发送时间",globalScheduleHint:"非「仅启用报告的用户」模式下使用此时间发送"}
26,accountExpiryReminder:{title:"账号到期提醒",description:"配置 Claude OAuth 账号到期前的邮件提醒",email:"提醒邮箱",emailHint:"接收到期提醒的管理员邮箱,留空则不发送提醒",advanceDays:"提前提醒天数",advanceDaysHint:"账号过期前多少天开始发送提醒(默认 7 天)"},subscriptionExpiryReminder:{title:"订阅过期提醒",description:"订阅到期前自动发送邮件提醒并赠送优惠券"},firstRechargeBoost:{title:"首充体验包",description:'新用户第一笔低价充值后,将其路由到优质账号池,并按更低倍率消耗"体验额度",让首充更耐用、更超值,提升转化。需配合影子分组把首充人群路由到优质分组。',enabled:"启用首充体验包",enabledHint:"默认开启。符合条件的小额首笔充值将发放体验额度,并在有效期内享受低倍率计价。",maxQualifyAmount:"合格充值金额上限(元)",maxQualifyAmountHint:"仅支付金额不超过该值的首笔充值触发;0 表示不限金额。",virtualAmountUsd:"体验额度(USD)",virtualAmountUsdHint:"0 表示取本次首充到账本金金额。体验额度对用户可见并随消耗递减。",billingMultiplier:"命中期计价倍率",billingMultiplierHint:"体验期内按 TotalCost×倍率计价,免账号/分组倍率。取值 (0,1],默认 0.5(扣得慢但明显)。",validityDays:"有效期(天)",maxRegisterAgeDays:"仅注册 N 天内",maxRegisterAgeDaysHint:"仅对注册未超过 N 天的新用户发放;0 表示不限注册时间。",saveSuccess:"首充体验包设置已保存",saveFailed:"保存首充体验包设置失败",errors:{invalidMultiplier:"命中期计价倍率必须在 (0,1] 之间"}},couponIssuance:{title:"优惠券发放",description:"配置系统自动发放的优惠券:新用户注册欢迎券、订阅到期续费券。折扣与有效期可随时调整,保存后立即对后续发放生效(已发出的券不受影响)。",newUserEnabled:"启用新用户注册欢迎券",newUserEnabledHint:"开启后,新用户注册即自动发放一张月订阅折扣券,顶部将显示优惠券入口并在购买页展示折后价。",renewalEnabled:"启用订阅到期续费券",renewalEnabledHint:"开启后,订阅到期前 3 天的提醒邮件将附带一张月订阅续费折扣券(需先开启订阅过期提醒)。",discountPercent:"折扣百分比(实付原价的 %)",discountPercentHint:"取值 1-99。例如 60 表示实付原价的 60%,即 6 折。",validDays:"有效期(天)",newUserValidDaysHint:"自注册发放起的有效天数(默认 3 天),取值 1-365。",renewalValidDaysHint:"自发放起的有效天数(默认 7 天),取值 1-365。",lowBalanceEnabled:"启用额度即将耗尽续费券",lowBalanceEnabledHint:"开启后,当订阅月剩余额度低于阈值(直到用完)时,立即发放一张续费折扣券(折扣与有效期同续费券),并通过站内信 / 邮件 / 微信公众号提醒用户。与到期续费券共用同一张券,不会重复发放。",lowBalanceThreshold:"触发阈值(美元剩余额度)",lowBalanceThresholdHint:"当订阅当月剩余额度 ≤ 该值(默认 10 美元)时触发发券与提醒。",saveSuccess:"优惠券发放设置已保存",saveFailed:"保存优惠券发放设置失败",errors:{invalidRange:"折扣百分比须为 1-99 的整数,有效期须为 1-365 的整数天数"}},balanceLotExpiry:{title:"余额过期设置",description:"配置用户余额批次的过期时间和过期提醒",expiryDays:"过期天数",expiryDaysHint:"每笔充值余额的有效期天数(默认 30 天)",reminderEnabled:"启用过期提醒",reminderAdvanceDays:"提前提醒天数",reminderAdvanceDaysHint:"余额过期前多少天开始发送提醒(默认 3 天)"},subscriptionTransfer:{title:"订阅结转设置",description:"控制用户是否可以把生效中的订阅结转为余额",enabled:"启用订阅转余额",enabledHint:"开启后,用户可在订阅页面将当前仍在生效中的套餐按当前规则结转为余额。",expiryPolicy:"结转后余额有效期",expiryPolicyRemainingDays:"按订阅剩余时间",expiryPolicyFixed30Days:"重新计算 30 天",expiryPolicy
26Hint:"默认建议使用“按订阅剩余时间”,固定 30 天适合希望统一余额有效期的场景。"},emailTemplates:{title:"邮件模板",description:"按事件和语言自定义通知邮件主题与 HTML 内容。",event:"事件",locale:"语言",localeEn:"英文",localeZh:"中文",subject:"主题",subjectPlaceholder:"输入邮件主题",html:"HTML 模板",htmlPlaceholder:"编辑邮件 HTML 模板",placeholders:"可用占位符",placeholdersHelp:"点击占位符可复制。后端发送邮件时会替换这些值。",livePreview:"实时预览",previewSecurityHint:"预览 HTML 由后端预览接口生成,并在禁用脚本的沙盒 iframe 中展示。",preview:"预览 / 刷新",previewing:"预览中...",save:"保存模板",saving:"保存中...",restoreOfficial:"恢复官方模板",restoring:"恢复中...",restoreConfirm:"确定恢复此事件和语言的官方模板吗?当前自定义版本将被替换。",restoreSuccess:"已恢复官方模板",saveSuccess:"邮件模板已保存",placeholderCopied:"占位符已复制",validationRequired:"主题和 HTML 模板不能为空",empty:"暂无可用的邮件模板事件或语言。",noPreview:"刷新预览后查看渲染后的邮件主题。",customized:"已自定义"},opsMonitoring:{title:"运维监控",description:"启用运维监控模块,用于排障与健康可视化",disabled:"运维监控已关闭",enabled:"启用运维监控",enabledHint:"启用运维监控模块(仅管理员可见)",realtimeEnabled:"启用实时监控",realtimeEnabledHint:"启用实时请求速率和指标推送(WebSocket)",queryMode:"默认查询模式",queryModeHint:"运维监控默认查询模式(自动/原始/预聚合)",queryModeAuto:"自动(推荐)",queryModeRaw:"原始(最准确,但较慢)",queryModePreagg:"预聚合(最快,需预聚合)",metricsInterval:"采集频率(秒)",metricsIntervalHint:"系统/请求指标采集频率(60-3600 秒)"},adminApiKey:{title:"管理员 API Key",description:"用于外部系统集成的全局 API Key,拥有完整的管理员权限",notConfigured:"尚未配置管理员 API Key",configured:"管理员 API Key 已启用",currentKey:"当前密钥",regenerate:"重新生成",regenerating:"生成中...",delete:"删除",deleting:"删除中...",create:"创建密钥",creating:"创建中...",regenerateConfirm:"确定要重新生成吗?当前密钥将立即失效。",deleteConfirm:"确定要删除管理员 API Key 吗?外部集成将停止工作。",keyGenerated:"新的管理员 API Key 已生成",keyDeleted:"管理员 API Key 已删除",copyKey:"复制密钥",keyCopied:"密钥已复制到剪贴板",keyWarning:"此密钥仅显示一次,请立即复制保存。",securityWarning:"警告:此密钥拥有完整的管理员权限,请妥善保管。",usage:"使用方法:在请求头中添加 x-api-key: <your-admin-api-key>"},overloadCooldown:{title:"529 过载冷却",description:"配置上游返回 529(过载)时的账号调度暂停策略",enabled:"启用过载冷却",enabledHint:"收到 529 错误时暂停该账号的调度,冷却后自动恢复",cooldownMinutes:"冷却时长(分钟)",cooldownMinutesHint:"账号暂停调度的持续时间(1-120 分钟)",saved:"过载冷却设置保存成功",saveFailed:"保存过载冷却设置失败"},rateLimit429Cooldown:{title:"429 默认回避",description:"配置上游返回 429 且没有明确重置时间时的默认账号回避策略",enabled:"启用 429 默认回避",enabledHint:"收到无重置时间的 429 时暂停该账号调度,冷却后自动恢复",cooldownSeconds:"回避时长(秒)",cooldownSecondsHint:"默认回避持续时间(1-7200 秒);上游返回明确 reset 时仍优先使用上游时间",saved:"429 默认回避设置保存成功",saveFailed:"保存 429 默认回避设置失败"},streamTimeout:{title:"流超时处理",description:"配置上游响应超时时的账户处理策略,避免问题账户持续被选中",enabled:"启用流超时处理",enabledHint:"当上游响应超时时,自动处理问题账户",timeoutSeconds:"超时阈值(秒)",timeoutSecondsHint:"流数据间隔超过此时间视为超时(30-300秒)",action:"处理方式",actionTempUnsched:"临时不可调度",actionError:"标记为错误状态",actionNone:"不处理",actionHint:"超时后对账户执行的操作",tempUnschedMinutes:"暂停时长(分钟)",tempUnschedMinutesHint:"临时不可调度的持续时间(1-60分钟)",thresholdCount:"触发阈值(次数)",thresholdCountHint:"累计超时多少次后触发处理(1-10次)",thresholdWindowMinutes:"阈值窗口(分钟)",thresholdWindowMinutesHint:"超时计数的时间窗口(1-60分钟)",saved:"流超时设置保存成功",saveFailed:"保存流超时设置失败"},enterpriseAlertThresholds:{title:"企业预警阈值",description:"配置企业额度使用率的预警触发档位(逗号分隔的比例)",thresholds:"预警阈值",thresholdsHint:"逗号分隔的使用率比例,每个为 (0,1],例如 0.8,1.0 表示 80% 与 100% 各触发一次",placeholder:"0.8,1.0",invali
26d:"阈值格式错误:请输入逗号分隔、(0,1] 区间的小数,例如 0.8,1.0",saved:"企业预警阈值保存成功",saveFailed:"保存企业预警阈值失败"},rectifier:{title:"请求整流器",description:"当上游返回特定错误时,自动修正请求参数并重试,提高请求成功率",enabled:"启用请求整流器",enabledHint:"总开关,关闭后所有整流功能均不生效",thinkingSignature:"Thinking 签名整流",thinkingSignatureHint:"当上游返回 thinking block 签名校验错误时,自动去除签名并重试",thinkingBudget:"Thinking Budget 整流",thinkingBudgetHint:"当上游返回 budget_tokens 约束错误(≥1024)时,自动将 budget 设为 32000 并重试",apikeySignature:"API Key 签名整流",apikeySignatureHint:"当 API Key 账号的上游返回签名相关错误时,自动去除签名并重试(内置规则始终生效)",apikeyPatterns:"自定义匹配关键词",apikeyPatternsHint:"额外的关键词,匹配响应体中的内容(不区分大小写)。内置规则始终生效,此处用于补充额外匹配。",apikeyPatternPlaceholder:"例如:thinking_error 或 签名无效",addPattern:"添加关键词",saved:"整流器设置保存成功",saveFailed:"保存整流器设置失败"},emergencyMode:{title:"紧急模式",description:"Claude (Anthropic) 不可用时,将所有请求重定向到备用 Gemini/Antigravity 分组,订阅用户免费使用",statusActive:"已启用",statusInactive:"未启用",backupGroup:"备用分组",selectGroup:"选择分组...",backupGroupHint:"仅支持 Gemini 和 Antigravity 分组作为备用目标",redirectingTo:"重定向至:{name} ({platform})",activeRequests:"活跃请求数:{count}",enable:"启用紧急模式",disable:"关闭紧急模式",enableConfirm:`确认启用紧急模式?
27
28所有 Claude 请求将被重定向到「{name}」({platform})。
29
30订阅用户在紧急模式期间不会被扣费。`,disableConfirm:`确认关闭紧急模式?
31
32请求将恢复使用原始 Anthropic 平台。`,disableConfirmActive:`确认关闭紧急模式?
33
34当前有 {count} 个请求正在处理中,系统将等待最多 30 秒以完成它们。`,enabled:"紧急模式已启用",disabled:"紧急模式已关闭,所有请求已排空",disabledRemaining:"紧急模式已关闭,{count} 个请求仍在处理中",enableFailed:"启用失败",disableFailed:"关闭失败"},betaPolicy:{title:"Beta 策略",description:"配置转发 Anthropic API 请求时如何处理 Beta 特性。仅适用于 /v1/messages 接口。",empty:"尚未配置任何规则,点击下方按钮新增。",ruleHeader:"规则 #{index}",removeRule:"删除规则",addRule:"添加规则",betaToken:"Beta Token",betaTokenPlaceholder:"例如:context-1m-2025-08-07",action:"处理方式",actionPass:"透传(不处理)",actionFilter:"过滤(移除)",actionBlock:"拦截(拒绝请求)",scope:"生效范围",scopeAll:"全部账号",scopeOAuth:"仅 OAuth 账号",scopeAPIKey:"仅 API Key 账号",scopeBedrock:"仅 Bedrock 账号",errorMessage:"错误消息",errorMessagePlaceholder:"拦截时返回的自定义错误消息",errorMessageHint:"留空则使用默认错误消息",saved:"Beta 策略设置保存成功",saveFailed:"保存 Beta 策略设置失败",modelWhitelist:"模型白名单",modelWhitelistHint:"留空则对所有模型生效。支持精确匹配和通配符前缀(如 claude-opus-*)",modelPatternPlaceholder:"例如: claude-opus-* 或 claude-opus-4-6",addModelPattern:"添加模型规则",removePattern:"移除",fallbackAction:"未匹配模型处理方式",fallbackActionHint:"当请求模型不在白名单中时的处理方式",fallbackErrorMessagePlaceholder:"未匹配模型被拦截时返回的自定义错误消息",quickPresets:"快捷预设",presetOpusOnly:"仅 Opus 允许 1M",presetOpusOnlyDesc:"Opus 透传,其他模型过滤",commonPatterns:"常用模式"},openaiFastPolicy:{actionForcePriority:"强制设置 priority(fast)",title:"OpenAI Fast/Flex 策略",description:"基于请求体 service_tier 字段拦截/过滤/透传 OpenAI fast(priority)、ultrafast 与 flex 请求;仅作用于 OpenAI 网关。“全部 tier 值”仅包含显式传入的 tier。",empty:"尚未配置任何规则。点击下方按钮新增。",ruleHeader:"规则 #{index}",removeRule:"删除规则",addRule:"新增规则",saveHint:"保存时随系统设置一起提交(点击页面底部「保存」按钮)。",serviceTier:"service_tier 匹配",tierAll:"全部 tier 值",tierMissing:"省略 tier",tierPriority:"priority(fast)",tierUltrafast:"ultrafast",tierFlex:"flex",action:"处理方式",actionPass:"透传(保留 service_tier)",actionFilter:"过滤(移除 service_tier)",actionBlock:"拦截(拒绝请求)",scope:"生效范围",scopeAll:"全部账号",scopeOAuth:"仅 OAuth 账号",scopeAPIKey:"仅 API Key 账号",scopeBedrock:"仅 Bedrock 账号",userIds:"指定用户",userIdsHint:"输入任意邮箱关键词进行模糊搜索。留空表示对全部 Sub2API 用户生效;选中用户的 API Key 请求优先匹配用户规则。",userSearchPlaceholder:"输入用户邮箱搜索",userSearchEmpty:"未找到匹配用户",userDeleted:"(已删除)",userIdFallback:"用户 #{id}",removeUser:"移除用户",errorMessage:"错误消息",errorMessagePlaceholder:"拦截时返回的自定义错误消息",errorMessageHint:"留空则使用默认错误消息。",modelWhitelist:"目标模型",modelWhitelistHint:"列表内模型使用“处理方式”,列表外模型使用“其他模型处理方式”。留空时“处理方式”应用于全部模型。支持精确匹配与前缀通配符(如 gpt-5.6*)。",modelPatternPlaceholder:"例如: gpt-5.6-sol 或 gpt-5.6*",addModelPattern:"添加目标模型",fallbackAction:"其他模型处理方式",fallbackActionHint:"仅应用于目标列表之外的模型。",fallbackErrorMessagePlaceholder:"其他模型被拦截时返回的自定义错误消息",summaryTargetModels:"目标模型",summaryAllModels:"全部模型",summaryOtherModels:"其他模型",summaryAction:{pass:"透传",filter:"过滤",block:"拦截",force_priority:"强制 priority"}},wechatConnect:{title:"微信登录",description:"用于微信开放平台或公众号/小程序的第三方登录配置。",enabledLabel:"启用微信登录",enabledHint:"开启后可使用微信第三方登录回调与授权配置。",appIdLabel:"Ap
34pID",appIdPlaceholder:"微信开放平台 AppID",appSecretLabel:"AppSecret",appSecretConfiguredPlaceholder:"密钥已配置,留空以保留当前值。",appSecretPlaceholder:"微信开放平台 AppSecret",appSecretConfiguredHint:"密钥已配置,留空以保留当前值。",appSecretHint:"填写后会覆盖当前微信密钥。",modeLabel:"模式",openModeLabel:"非微信环境使用开放平台",openModeHint:"浏览器不在微信内时,自动走开放平台扫码授权。",mpModeLabel:"微信环境使用公众号",mpModeHint:"浏览器在微信内时,自动走公众号授权。",redirectUrlLabel:"回调地址",redirectUrlPlaceholder:"https://your-site.com/api/v1/auth/oauth/wechat/callback",generateAndCopy:"使用当前站点生成并复制",redirectUrlSetAndCopied:"已使用当前站点生成回调地址并复制到剪贴板",frontendRedirectUrlLabel:"前端回调地址",frontendRedirectUrlPlaceholder:"/auth/wechat/callback",frontendRedirectUrlHint:"通常用于前端路由回调地址,需与后端配置保持一致。"},authSourceDefaults:{title:"认证来源默认值",description:"按注册来源配置新用户默认余额、并发、订阅与授权策略。",requireEmailLabel:"第三方注册强制补充邮箱",requireEmailHint:"启用后,Linux DO、OIDC、微信注册缺少邮箱时必须先补充邮箱地址。",enabledHint:"以下默认值会在该来源注册新用户时发放;首次绑定时授权仅作用于已有账号绑定该来源。",sources:{email:{title:"邮箱注册",description:"适用于邮箱密码注册的新用户默认配额。"},linuxdo:{title:"Linux DO 登录",description:"适用于 Linux DO 第三方注册的新用户默认配额。"},oidc:{title:"OIDC 登录",description:"适用于 OIDC 第三方注册的新用户默认配额。"},wechat:{title:"微信登录",description:"适用于微信第三方注册的新用户默认配额。"}},grantOnFirstBindLabel:"首次绑定时授权",grantOnFirstBindHint:"已有账号首次绑定该来源时发放默认权益。",defaultSubscriptionsLabel:"默认订阅",defaultSubscriptionsHint:"仅对当前认证来源生效,未配置时不追加来源专属订阅。",noSourceSubscriptions:"当前来源未配置专属默认订阅。",platformQuotasOverride:"平台限额覆盖",platformQuotasOverrideHint:"留空的字段继承「系统默认平台限额」;填 0 表示禁止该窗口使用。"},paymentVisibleMethods:{methodLabel:"{title} 可见方式",methodHint:"控制前台结算页是否展示该方式,以及展示时使用的来源键。",sourceLabel:"支付来源",sourceHint:"启用后必须明确选择一个来源;未配置状态不会对外展示该支付方式。",sourceRequiredError:"{title} 已启用,请先选择支付来源。"},openaiExperimentalScheduler:{title:"OpenAI 实验调度策略",description:"默认关闭。开启后仅影响本网关在 OpenAI 账号间的实验性调度选择逻辑,不代表上游 OpenAI 官方能力。",lowRatePriorityTitle:"低倍率优先",lowRatePriorityDescription:"开启后优先选择计费倍率较低的账号;倍率相同时,再比较账号优先级和当前负载等。启用实验调度策略后,此开关不生效。",oauthRateTitle:"OAuth 调度参考倍率",oauthRatePriorityDescription:"OAuth 账号按此参考倍率参与低倍率优先排序;留空时使用各自的账号倍率。API Key 账号优先使用有效探测倍率,无有效探测时使用账号倍率。",oauthRateWeightedDescription:"计算“计费倍率”得分时,OAuth 账号使用此参考倍率;留空时使用各自的账号倍率。API Key 账号优先使用有效探测倍率,无有效探测时使用账号倍率。",oauthRateInvalid:"OAuth 调度参考倍率必须是非负数字,或留空以使用账号倍率。",stickyWeightedTitle:"粘性加权",stickyWeightedDescription:"开启后 previous_response_id 和 session_hash 粘性进入高级调度打分;关闭时仍按旧逻辑硬命中粘性账号。",subscriptionPriorityTitle:"订阅优先",subscriptionPriorityDescription:"开启后先在 ChatGPT 订阅账号池中按权值选取;订阅池拿不到席位时再回退到非订阅账号池。",largeBodyOAuthLikeTitle:"Codex 大包体仅走 OAuth 号",largeBodyOAuthLikeDescription:"默认开启。超过约 256KiB 的 OpenAI/Codex 请求只在 OAuth / Setup Token 池选号,官方 API Key 不会进候选。关闭后大包体也可打到同组 API Key;可能协议失败或产生官方 API 高é¢
34æ¶ˆè€—,仅建议临时验证时关闭。保存后立即生效,无需重启。",weightsTitle:"调度权值覆盖",weightsDescription:"留空时使用配置/环境变量值;配置未设置时使用内置默认值。页面非空设置优先。",defaultPlaceholder:"配置/默认:{value}",topKLabel:"TopK",priorityWeight:"优先级",loadWeight:"负载",queueWeight:"排队",errorRateWeight:"错误率",ttftWeight:"首包延迟",resetWeight:"重置窗口",quotaHeadroomWeight:"额度余量",upstreamCostWeight:"计费倍率",previousResponseWeight:"previous_response 粘性",sessionStickyWeight:"session_hash 粘性"},usageRecords:{title:"使用记录",description:"与终端用户可见的用量及失败请求记录相关的设置。"},user_error_view:{label:"允许用户查看自己的错误请求",description:"开启后,用户可在用量页查看自己失败请求的精简信息(不含内部/上游错误细节)。需运维监控开启才有数据。"},saveSettings:"保存设置",saving:"保存中...",settingsSaved:"设置保存成功",smtpConnectionSuccess:"SMTP 连接成功",testEmailSent:"测试邮件发送成功",failedToLoad:"加载设置失败",failedToSave:"保存设置失败",failedToTestSmtp:"SMTP 连接测试失败",failedToSendTestEmail:"发送测试邮件失败"},audit:{title:"操作日志",description:"记录管理员与用户的管理面操作,请求头凭证仅保留首尾、请求体已脱敏。日志无法单条删除,全量清理需二次验证。",clearAll:"全部清理",empty:"暂无操作日志",loadFailed:"加载操作日志失败",filters:{all:"全部",q:"关键字",qPlaceholder:"路径 / 动作 / 操作者邮箱",actorEmail:"操作者邮箱",action:"动作",clientIp:"客户端 IP",method:"请求方法",authMethod:"认证方式",result:"结果",resultSuccess:"成功",resultFailure:"失败",startTime:"开始时间",endTime:"结束时间"},columns:{time:"时间",actor:"操作者",action:"动作",method:"方法",result:"结果",clientIp:"客户端 IP",detail:"详情"},detail:{title:"操作日志详情",actorRole:"角色",methodPath:"方法 / 路径",latency:"耗时",requestId:"请求 ID",credential:"凭证(掩码)",userAgent:"User-Agent",requestBody:"请求体(已脱敏)",extra:"附加信息"},clearConfirm:{title:"清理全部操作日志",message:"此操作将永久删除所有操作日志,且不可恢复。清理动作本身会被留痕记录。确定继续吗?",totpTitle:"输入二次验证码",totpHint:"清理操作日志需要现场验证 TOTP 验证码。",success:"已清理 {count} 条操作日志",failed:"清理操作日志失败"}},recharge:{title:"充值订单管理",description:"管理用户充值订单,处理退款申请",noRecordsDesc:"暂无符合条件的充值订单",filterOrderNoPlaceholder:"输入订单号筛选",filterUserId:"用户ID",filterUserIdPlaceholder:"输入用户ID筛选",filterKeyword:"邮箱/昵称",filterKeywordPlaceholder:"输入邮箱或昵称搜索",orderNo:"订单号",refundNo:"退款单号",refundStatus:"退款状态",wechatRefundId:"微信退款单号",userId:"用户ID",userEmail:"邮箱/昵称",amount:"金额",status:"状态",createdAt:"创建时间",paidAt:"支付时间",refundedAt:"退款时间",actions:"操作",viewDetail:"查看详情",orderDetail:"订单详情",paymentMethod:"支付方式",transactionId:"交易号",notes:"备注",refund:"退款",refundConfirm:"确认退款",refundConfirmMessage:"确定要为订单 {orderNo} 申请退款吗?金额:¥{amount}",refundReason:"退款原因",refundReasonPlaceholder:"请输入退款原因(2-500字)",confirmRefund:"确认退款",refundStatusPending:"待处理",refundStatusProcessing:"处理中",refundStatusSuccess:"成功",refundStatusFailed:"失败",refundStatusAbnormal:"异常",refundSuccess:"退款申请已提交",refundFailed:"退款失败"},affiliate:{tabs:{config:"分销配置",users:"分销用户",withdraw:"提现审核",stats:"分销统计"}},affiliateConfig:{title:"分销配置管理",description:"管理分销系统的各项配置参数",loadFailed:"加载分销配置失败",conditionOr:"or(满足任一)",conditionAnd:"and(同时满足)",saveSuccess:"配置保存成功",saveFailed:"保存配置失败",lastUpdated:"最后更新",noConfigs:"暂无配置项",configs:{registerBonus:{title:"注册奖励配置",description:"新用户通过邀请人的邀请链接注册,双方获得的余额奖励"},commissionThreshold:{title:"分成门槛条件",description:"用户满足哪些条件才能获得佣金分成"},tierRules:{title:"阶梯佣金规则",description:"根据有效邀请人数划分佣金比例等级"},maxCommissionRate:{title:"佣金比例上限",description:"单笔交易佣金比例的最大值"},withdrawThreshold:{title:"提现门槛金额",description:"用户累计佣金达到此金额(人民币)后可申请提现"},commissionConfirmDays:{title:"佣金自动确认天数",description:"佣金在待确认状态下经过指定天数后自动确认"},posterConfig:{title:"推广海报文案",description:"自定义推广海报上显示的标题和文案(支持 \\n 换行)"}},tierRulesTable:{level:"等级",minInvites:"最少邀请人数",maxInvites:"最多邀请人数",rate:"佣金比例",unlimited:"不限",addRule:"添加规则"},fields:{register_bonus:{inviter:"邀请人邀请用户注册成功的奖励金额(美元余额)",invitee:"被邀请人奖励(美元余额)",inviter_bonus:"邀请人奖励",invitee_bonus:"被邀请人奖励",invitee_amount:"被邀请人注册奖励余额(美元余额)",invitee_enabled:"启用被邀请人注册奖励",enabled:"启用注册奖励"},commission_threshold:{type:"条件组合方式",monthly_plan:"需要月付套餐",min_spend:"最低æ
34¶ˆè´¹é‡‘额(人民币)"},tier_rules:{rules:"阶梯规则"},max_commission_rate:{value:"佣金比例上限"},withdraw_threshold:{value:"提现门槛金额(人民币)"},commission_confirm_days:{value:"自动确认天数"},poster_config:{headline:"主标题",subheadline:"副标题",scan_hint:"扫码提示文字",benefit:"奖励说明文字"}},hints:{register_bonus:{inviter:"新用户通过邀请人的邀请链接注册,邀请人获得的余额奖励",invitee:"新用户注册时获得的余额奖励",inviter_bonus:"邀请人获得的余额奖励(美元余额)",invitee_bonus:"被邀请人获得的余额奖励(美元余额)",invitee_amount:"新用户通过邀请链接注册时获得的余额",invitee_enabled:"是否启用被邀请人注册奖励",enabled:"是否启用注册奖励功能"},commission_threshold:{type:"or 表示满足任一条件,and 表示须同时满足",monthly_plan:"是否要求用户购买月付套餐",min_spend:"用户最低消费金额"},max_commission_rate:{value:"如 0.15 表示最高 15%"},withdraw_threshold:{value:"用户佣金余额达到此金额后可申请提现"},commission_confirm_days:{value:"佣金从待确认变为已确认的等待天数"},poster_config:{headline:"海报大标题,支持 \\n 换行",subheadline:"海报副标题",scan_hint:"二维码下方提示文字",benefit:"海报底部奖励说明"}}},affiliateUsers:{title:"分销用户列表",description:"查看和管理分销用户",searchPlaceholder:"搜索用户ID或昵称",allUsers:"全部用户",kolOnly:"仅KOL",normalOnly:"普通用户",noUsers:"暂无分销用户",noUsersDescription:"当前没有符合条件的分销用户",loadFailed:"加载分销用户列表失败",columns:{userId:"用户ID",nickname:"昵称",referralCode:"推荐码",tier:"等级",effectiveCount:"有效邀请数",totalEarnings:"累计收益",isKol:"KOL状态",createdAt:"注册时间",actions:"操作"},setKol:"设为KOL",editKol:"编辑KOL",setKolTitle:"设置为KOL",editKolTitle:"编辑KOL配置",referralCode:"推荐码",kolStatus:"KOL状态",kolStatusDesc:"启用KOL身份后,该用户将获得专属推广码和自定义佣金比例",promoCode:"专属推广码",promoCodePlaceholder:"3-20位字母数字",promoCodeHint:"用户可通过此推广码注册,留空则使用默认邀请码",commissionRate:"佣金比例",commissionRatePlaceholder:"如 0.10 表示 10%",commissionRateHint:"自定义佣金比例,覆盖系统阶梯配置",userBonus:"用户额外奖励",userBonusPlaceholder:"如 2.00 表示 2 元",userBonusHint:"被邀请用户首充后的额外奖励金额",bindingType:"绑定类型",bindingTypeHint:"被邀请用户的佣金绑定方式",bindingFirstCharge:"首充绑定",bindingLifetime:"终身绑定",revokeKol:"取消KOL",kolSaveSuccess:"KOL配置保存成功",kolSaveFailed:"KOL配置保存失败",kolRevokeSuccess:"已取消KOL身份",kolRevokeFailed:"取消KOL失败",kol:{setKol:"设为KOL",editKol:"编辑KOL",setKolTitle:"设置为KOL",editKolTitle:"编辑KOL配置",kolStatus:"KOL状态",kolStatusDesc:"启用KOL身份后,该用户将获得专属推广码和自定义佣金比例",promoCode:"专属推广码",promoCodePlaceholder:"3-20位字母数字",promoCodeHint:"用户可通过此推广码注册,留空则使用默认邀请码",commissionRate:"佣金比例",commissionRatePlaceholder:"如 0.10 表示 10%",commissionRateHint:"自定义佣金比例,覆盖系统阶梯配置",userBonus:"用户额外奖励",userBonusPlaceholder:"如 2.00 表示 2 元",userBonusHint:"被邀请用户首充后的额外奖励金额",bindingType:"绑定类型",bindingTypeHint:"被邀请用户的佣金绑定方式",bindingFirstCharge:"首充绑定",bindingLifetime:"终身绑定",revokeKol:"取消KOL",saveSuccess:"KOL配置保存成功",saveFailed:"KOL配置保存失败",revokeSuccess:"已取消KOL身份",revokeFailed:"取消KOL失败"}},withdrawAudit:{title:"提现审核",description:"审核用户提现申请",searchPlaceholder:"搜索用户ID或昵称",noRecords:"暂无提现记录",noRecordsDescription:"当前没有符合条件的提现申请",loadFailed:"加载提现列表失败",status:{pending:"待审核",approved:"已通过",rejected:"已拒绝",completed:"转账已提交"},columns:{user:"用户",amount:"金额",paymentMethod:"支付方式",paymentAccount:"收款账户",status:"状态",createdAt:"申请时
34间",actions:"操作"},actions:{approve:"通过",complete:"发起转账",reject:"拒绝",confirmReject:"确认拒绝"},confirmApprove:"确认通过该笔 ¥{amount} 的提现申请?",confirmComplete:"确认发起该笔 ¥{amount} 的微信提现?",approveSuccess:"审核通过成功",approveFailed:"审核通过失败",completeSuccess:"微信提现已提交",completeFailed:"微信提现提交失败",rejectTitle:"拒绝提现申请",rejectDescription:"即将拒绝该笔 ¥{amount} 的提现申请,金额将退回用户可提现余额。",rejectReasonPlaceholder:"请填写拒绝原因(必填)",rejectSuccess:"已拒绝提现申请",rejectFailed:"拒绝提现失败"},affiliateStats:{title:"分销数据报表",description:"查看分销系统统计数据",status:{registered:"已注册",first_charged:"已首充",pending:"待确认",confirmed:"已确认",cancelled:"已取消",completed:"已完成",approved:"已通过",rejected:"已拒绝",processing:"处理中"},totalInvites:"总邀请数",effectiveInvites:"有效邀请数",totalCommission:"累计佣金",totalWithdrawn:"累计已提现",pendingWithdrawals:"待处理提现",activeKolCount:"KOL用户数",dailyTrend:"日趋势图",dailyDetail:"日明细数据",date:"日期",newInvites:"新增邀请",newEffective:"新增有效",newCommission:"新增佣金",newWithdrawals:"新增提现申请",count:"数量",amount:"金额(元)",kolRanking:"KOL 排行榜",sortBy:"排序方式",byEffectiveCount:"按有效邀请数",byTotalEarnings:"按佣金总额",rank:"排名",kolNickname:"KOL 昵称",promoCode:"推广码",kolEffectiveCount:"有效邀请数",kolTotalEarnings:"佣金总额",withdrawable:"可提现",effectiveCount:"有效邀请",totalEarningsSort:"佣金总额",detailDesc:"说明",statusLabel:"状态",auditLogs:"操作日志",auditLogId:"ID",actionType:"操作类型",userId:"用户 ID",entityInfo:"关联实体",beforeAfter:"变更内容",operator:"操作人",createdAt:"操作时间",actions:{relationCreated:"绑定邀请关系",commissionCreated:"创建佣金记录",commissionConfirmed:"佣金已确认",commissionCancelled:"佣金已取消",tierUpgraded:"等级升级",withdrawRequested:"申请提现",withdrawApproved:"提现审核通过",withdrawRejected:"提现审核拒绝",kolGranted:"授予KOL身份",kolRevoked:"撤销KOL身份"}},errorPassthrough:{title:"错误透传规则",description:"配置上游错误如何返回给客户端",createRule:"创建规则",editRule:"编辑规则",deleteRule:"删除规则",noRules:"暂无规则",createFirstRule:"创建第一条错误透传规则",allPlatforms:"所有平台",passthrough:"透传",custom:"自定义",code:"状态码",body:"消息体",skipMonitoring:"跳过监控",columns:{priority:"优先级",name:"名称",conditions:"匹配条件",platforms:"平台",behavior:"响应行为",status:"状态",actions:"操作"},matchMode:{any:"错误码 或 关键词",all:"错误码 且 关键词",anyHint:"状态码匹配任一错误码,或消息包含任一关键词",allHint:"状态码匹配任一错误码,且消息包含任一关键词"},form:{name:"规则名称",namePlaceholder:"例如:上下文超限透传",priority:"优先级",priorityHint:"数值越小优先级越高,优先匹配",description:"规则描述",descriptionPlaceholder:"描述此规则的用途...",matchConditions:"匹配条件",errorCodes:"错误码",errorCodesPlaceholder:"422, 400, 429",errorCodesHint:"多个错误码用逗号分隔",keywords:"关键词",keywordsPlaceholder:`每行一个关键词
35context limit
36model not supported`,keywordsHint:"每行一个关键词,不区分大小写",matchMode:"匹配模式",platforms:"适用平台",platformsHint:"不选择表示适用于所有平台",responseBehavior:"响应行为",passthroughCode:"透传上游状态码",responseCode:"自定义状态码",passthroughBody:"透传上游错误信息",customMessage:"自定义错误信息",customMessagePlaceholder:"返回给客户端的错误信息...",skipMonitoring:"跳过运维监控记录",skipMonitoringHint:"开启后,匹配此规则的错误不会被记录到运维监控中",enabled:"启用此规则"},nameRequired:"请输入规则名称",conditionsRequired:"请至少配置一个错误码或关键词",ruleCreated:"规则创建成功",ruleUpdated:"规则更新成功",ruleDeleted:"规则删除成功",deleteConfirm:'确定要删除规则 "{name}
36" 吗?',failedToLoad:"加载规则失败",failedToSave:"保存规则失败",failedToDelete:"删除规则失败",failedToToggle:"切换状态失败"},lottery:{title:"抽奖管理",description:"创建和管理抽奖活动,查看参与者与开奖结果",createActivity:"创建活动",allStatus:"全部状态",status:{pending:"待开始",active:"进行中",drawing:"开奖中",completed:"已完成",cancelled:"已取消",expired:"已过期"},columns:{title:"标题",status:"状态",participantCount:"参与人数",winnerCount:"中奖人数",drawAt:"开奖时间",createdAt:"创建时间",actions:"操作"},fields:{title:"活动标题",description:"活动描述",drawAt:"开奖时间",minParticipants:"最低参与人数",validityDays:"有效期(天)",baseWinRate:"基础中奖率",winnerDiscount:"中奖折扣 (%)",loserCoupon:"未中奖立减金额 (¥)",dailyLimit:"每日限额 (USD)",accountIds:"绑定账号(可选)"},viewDetail:"详情",copyShareLink:"复制分享链接",shareLinkCopied:"分享链接已复制",draw:"手动开奖",noParticipants:"暂无参与者",noAccounts:"暂无可绑定账号",userPrefix:"用户 #{id}",category:"类别",winner:"中奖",loser:"未中奖",pending:"待开奖",drawConfirmTitle:"确认开奖",drawConfirmMessage:"确认手动开奖?此操作不可撤销。",drawSuccess:"开奖成功!中奖 {winners} 人 / 共 {total} 人",belowMinParticipants:"参与人数未达到最低要求",cancelConfirmTitle:"确认取消",cancelConfirmMessage:"确认取消活动?此操作不可撤销。",activityConfig:"活动配置",participants:"参与者列表",updateSuccess:"活动配置已更新",failedToUpdate:"更新失败",activityCreated:"活动创建成功",activityCancelled:"活动已取消",failedToLoad:"加载活动列表失败",failedToCreate:"创建活动失败",failedToDraw:"开奖失败",failedToCancel:"取消活动失败",failedToLoadParticipants:"加载参与者列表失败",winnersBoard:"中奖名单公示",noWinners:"暂无中奖记录",shareWinners:"一键分享",copyAnnouncement:"复制公告文本",winnersCopied:"中奖名单已复制到剪贴板",detail:{userCategories:{new_user:"新用户",regular:"普通用户",paid:"付费用户",subscriber:"订阅用户"}}},tlsFingerprintProfiles:{title:"TLS 指纹模板",description:"管理 TLS 指纹模板,用于模拟特定客户端的 TLS 握手特征",createProfile:"创建模板",editProfile:"编辑模板",deleteProfile:"删除模板",noProfiles:"暂无模板",createFirstProfile:"创建你的第一个 TLS 指纹模板",columns:{name:"名称",description:"描述",grease:"GREASE",alpn:"ALPN",actions:"操作"},form:{pasteYaml:"粘贴 YAML 配置",pasteYamlPlaceholder:"将 TLS 指纹采集器复制的 YAML 粘贴到这里...",pasteYamlHint:"粘贴从 TLS 指纹采集器复制的 YAML 配置,自动填充所有字段。",openCollector:"打开采集器",parseYaml:"解析 YAML",yamlParsed:"YAML 解析成功,字段已自动填充",yamlParseFailed:"YAML 解析失败:未找到 name 字段",name:"模板名称",namePlaceholder:"例如 macOS Node.js v24",description:"描述",descriptionPlaceholder:"可选的模板描述",enableGrease:"启用 GREASE",enableGreaseHint:"在 TLS ClientHello 扩展中插入 GREASE 值",cipherSuites:"密码套件",cipherSuitesHint:"逗号分隔的十六进制值,例如 0x1301, 0x1302, 0xc02c",curves:"椭圆曲线",curvesHint:"逗号分隔的曲线 ID",pointFormats:"点格式",signatureAlgorithms:"签名算法",alpnProtocols:"ALPN 协议",alpnProtocolsHint:"逗号分隔,例如 h2, http/1.1",supportedVersions:"支持的 TLS 版本",keyShareGroups:"密钥共享组",pskModes:"PSK 模式",extensions:"扩展"},deleteConfirm:"删除模板",deleteConfirmMessage:'确定要删除模板 "{name}" 吗?使用此模板的账号将回退到内置默认值。',createSuccess:"模板创建成功",updateSuccess:"模板更新成功",deleteSuccess:"模板删除成功",loadFailed:"加载模板失败",saveFailed:"保存模板失败",deleteFailed:"删除模板失败"}},subscriptionProgress:{title:"我的订阅",viewDetails:"查看订阅详情",activeCount:"{count} 个有效订阅",daily:"每日",weekly:"每周",monthly:"每月",daysRemaining:"剩余 {days} 天",expired:"已过期",expiresToday:"今天到期",expiresTomorrow:"明天到期",viewAll:"查看全部订阅",noSubscriptions:"暂无有效订阅",unlimited:"无限制",lowBalance:"额度即将用尽",renewNow:"去续费"},messages:{title:"站内消息",markAllRead:"全部已读",viewDetail:"查看",empty:"暂无消息"},coupon:{entryLabel:"{discount}券",entryTooltip:"你有一张月订阅{discount}券,点击去开通",limitedTimeDiscount:"限时{discount}",couponDeducted:"券已抵扣 ¥{amount}"},version:{rollback:"版本回退",rollbackSelectVersion:"选择要回退到的版本(近 3 个版本)",rollbackConfirm:"回退到 {version}",rollbackWarning:"回退将下载所选版本并替换当前程序,完成后需重启服务",rollingBack:"正在回退...",rollbackComplete:"回退完成",rollbackFailed:"回退失败",manualRollbackCommand:"手动回退方式",copyCommand:"复制",copied:"已复制",noRollbackVersions:"暂无可回退的版本",loadVersionsFailed:"获取版本列表失败",rollbackSourceHint:"源码构建不支持在线回退",deployScript:"脚本部署",deployDocker:"Docker",dockerEditCompose:"修改 docker-compose.yml 中的镜像版本",dockerRecreate:"重新创建容器",currentVersion:"当前版本",latestVersion:"最新版本",upToDate:"已是最新版本",updateAvailable:"有新版本可用!",releaseNotes:"更新日志",noReleaseNotes:"暂无更新日志",viewUpdate:"查看更新",viewRelease:"查看发布",viewChangelog:"查看更新日志",refresh:"刷新",sourceMode:"源码构建",sourceModeHint:"源码构建请使用 git pull 更新",updateNow:"立即更新",updating:"正在更新...",updateComplete:"更新完成",updateFailed:"更新失败",restartRequired:"请重启服务以应用更新",restartNow:"立即重启",restarting:"正在重启...",retry:"重试"},purchase:{title:"充值/订阅",description:"通过内嵌页面完成充
36值/订阅",rechargeDescription:"通过内嵌页面完成充值",subscriptionDescription:"通过内嵌页面完成订阅",openInNewTab:"新窗口打开",notEnabledTitle:"该功能未开启",notEnabledDesc:"管理员暂未开启充值/订阅入口,请联系管理员。",notConfiguredTitle:"充值/订阅链接未配置",notConfiguredDesc:"管理员已开启入口,但尚未配置充值/订阅链接,请联系管理员。"},customPage:{title:"自定义页面",openInNewTab:"新窗口打开",notFoundTitle:"页面不存在",notFoundDesc:"该自定义页面不存在或已被删除。",notConfiguredTitle:"页面链接未配置",notConfiguredDesc:"该自定义页面的 URL 未正确配置。",tableOfContents:"目录",copyCode:"复制",copiedCode:"已复制",copyCodeFailed:"失败"},buyPage:{quickSubscribe:"立即订阅套餐",quickIndex:"快速选择套餐",quickNav:{eyebrow:"订阅套餐",hint:"内容较长时可直接跳到套餐价格区,或按系列快速定位。"},title:"购买订阅",description:"套餐开通、升级续费与灵活额度补充统一入口",hero:{title:"把购买、续费、补充余额放到同一个入口里看清楚",subtitle:"先确认当前账户状态,再决定是灵活购买还是直接开通套餐。支付成功后会立即生效,后续调用按当前分组规则扣减。",rateBadge:"当前汇率 Â¥{rate} = $1",highlights:{reserve:{label:"灵活额度",title:"适合先补余额再慢慢用",desc:"买完立即到账,切换到灵活额度分组后即可使用。"},subscription:{label:"订阅套餐",title:"适合稳定高频调用",desc:"固定周期内优先消耗套餐额度,适合持续稳定使用。"},deduction:{label:"扣减顺序",title:"按分组执行扣减规则",desc:"不同分组对应不同扣减规则,调用前请先确认当前分组。"}}},tabs:{plans:"套餐购买",subscriptions:"我的订阅",balance:"我的余额"},summary:{title:"当前账户状态",currentPlan:"当前套餐",noPlan:"未开通",balance:"当前余额",activeSubscriptions:"有效订阅",exchangeRate:"当前汇率",exchangeRateValue:"Â¥{rate} = $1",currentPlanHint:"这里显示你当前正在生效的套餐分组。",balanceHint:"账户内可直接参与后续扣减的当前余额。",subscriptionHint:"含正在生效中的订阅数量。",exchangeRateHint:"官方美元定价会按你所在分组汇率换算扣减。",usageHintTitle:"当前扣减逻辑",usageHint:"套餐和灵活额度分别对应不同分组。调用前请先切换到要使用的分组。"},choiceCards:{reserve:{title:"补充灵活额度,适合按需使用",tag:"按需补充",desc:"如果你的调用量还不稳定,或者只想先给账户预留一部分可用额度,灵活额度会更合适。",points:{0:"支付成功后立即到账,可直接进入余额体系。",1:"使用灵活额度前,请先切换到灵活额度对应分组。",2:"适合按需灵活购买,或不想被周期方案限制的场景。"}},subscription:{title:"开通套餐,适合稳定使用",tag:"周期方案",desc:"如果你的调用量较稳定,套餐会更清晰,也更容易预估每周和每月的成本。",points:{0:"套餐在对应分组生效;需要使用灵活额度时请切换到灵活额度分组。",1:"支持现有系统里的升级、余额结转和历史订单管理。",2:"更适合长期、高频或需要固定容量预期的用户。"}}},storedQuota:{title:"灵活额度",headline:"补充账户可用额度",subtitle:"支付成功后立即到账,可按系统规则参与后续扣减。",sectionHint:"当前支持固定档位购买,支付成功后会立即计入当前账户。",highlights:{permanent:{label:"余额属性",text:"灵活额度适合给账户做长期补充,具体有效期以余额批次规则为准。"},fallback:{label:"扣减位置",text:"灵活额度按灵活额度分组规则扣减;使用前请先切换到对应分组。"},arrival:{label:"到账方式",text:"固定档位下单更直观,支付金额、预计到账和优惠信息会同步展示。"}}},planCatalog:{title:"套餐方案",headline:"选择合适的套餐",subtitle:"套餐在对应分组生效;调用前请先切换 API Key 到对应分组。",manageAction:"查看订阅管理",seriesCount:"{count} 个档位",signals:{reset:{label:"恢复机制",text:"套餐额度按当前系统规则恢复,适合对容量有稳定预期的用户。"},upgrade:{label:"升级路径",text:"已有订阅时,可直接在本系统现有能力里继续升级更高档套餐。"},transfer:{label:"结转规则",text:"如果系统开启余额结转,剩余价值可按规则转成账户ä½
36™é¢ã€‚"}}},planAliases:{names:["基础套餐","标准套餐","进阶套餐","高配套餐","旗舰套餐","企业套餐","尊享套餐","至尊套餐","旗舰Pro套餐","无限套餐"],tags:["入门使用","日常使用","高频使用","大额容量","超大额度","企业专属","团队首选","重度使用","海量额度","顶配无忧"],recommended:"常用选择",fallbackName:"方案 {index}",fallbackTag:"当前可购"},guide:{title:"如何选择",steps:[{title:"先判断是灵活购买还是开通套餐",desc:"如果只是补充余额或还在观察用量,优先选择灵活额度;如果使用频率稳定,优先看套餐。"},{title:"先确认分组,再发起调用",desc:"系统不会自动切换分组。使用套餐或灵活额度前,请先切换到对应 API Key 分组。"},{title:"购买后继续在管理页处理后续操作",desc:"升级套餐、查看历史订单、余额批次和充值记录,都可以在后两个 Tab 中继续管理。"}],balanceAction:"进入我的余额",subscriptionAction:"进入订阅管理"},subscriptionsTab:{title:"在这里管理当前套餐、升级入口和历史记录",subtitle:"这里保留原订阅页的全部能力,包括可购买套餐、有效订阅、历史记录、升级、结转余额和待支付订单。"},balanceTab:{title:"在这里查看当前余额、余额批次和充值记录",subtitle:"这里保留原余额页的全部能力,包括当前余额、余额明细、充值记录和继续购买灵活额度。"},faq:{title:"常见问题",headline:"把关键规则先看明白,再决定怎么买",subtitle:"购买前先把关键规则看清,后续升级、结转和余额消耗都会更容易理解。",items:{quotaVsPlan:{q:"灵活额度和套餐有什么区别?",a:"灵活额度和套餐是两种购买方式,也对应不同分组。使用哪种额度,取决于你当前 API Key 选择的分组。"},whyFixedAmounts:{q:"为什么灵活额度只能按固定档位购买?",a:"当前站点采用固定档位下单,方便直接展示到账额度、优惠规则和支付金额,减少支付环节的理解偏差。不同档位适合不同使用强度,可以按需要分次补充。"},quotaExpiry:{q:"灵活额度会不会过期?",a:"是否过期取决于当前站点的余额批次规则。购买成功后,你可以在“我的余额”里查看每一笔额度的来源、剩余量和有效期。"},planActivation:{q:"套餐购买后什么时候生效?",a:"支付成功后套餐会立即生效。生效后请确认你的 API Key 已切换到对应套餐分组,否则请求仍可能走旧分组。"},upgrade:{q:"已经有套餐了,还能升级吗?",a:"如果当前站点开放套餐升级,你会在“我的订阅”里看到可升级的目标套餐。系统会按当前规则计算可抵扣部分,最终以下单页显示为准。"},transfer:{q:"什么是订阅结转余额?",a:"如果当前站点开启了订阅结转功能,你可以把仍在有效期内的套餐剩余价值按系统当前规则转换成账户余额。转换后原套餐会立即结束,到账金额和有效期以确认弹窗展示为准。"},billingFallback:{q:"套餐额度不足时会怎么样?",a:"不会自动切换到灵活额度。你需要在 API Key 页面切换到灵活额度对应分组后再调用。"}}}},stripeReturn:{title:"支付结果",orderNo:"订单号",cancelledEyebrow:"支付已取消",cancelledTitle:"已取消支付",cancelledHint:"你已取消本次 Stripe 支付,订单不会扣款。可以回到购买页面重新选择支付方式。",confirmingEyebrow:"Stripe Checkout",confirmingTitle:"正在确认支付结果…",confirmingHint:"支付已提交,正在等待 Stripe 确认到账,通常只需几秒钟。",paidEyebrow:"订单已完成",paidTitle:"支付成功",paidHint:"订单已完成,相应额度/订阅已生效。",processingEyebrow:"等待确认",processingTitle:"支付处理中",processingHint:"暂未确认到支付结果。若已完成支付请稍后在订单列表查看,到账可能略有延迟。",confirmingSteps:{submitted:{title:"支付已提交",description:"Stripe 已返回支付结果。"}
36,syncing:{title:"同步订单",description:"系统正在核对订单状态。"},applying:{title:"写入权益",description:"确认后余额或订阅会生效。"}},nextStepsEyebrow:"下一步",nextStepsTitle:"回到常用页面",nextStepsHint:"支付完成后可以直接查看权益,也可以继续购买其他方案。",checkAgain:"再次查询",returnToContext:"返回相关页面",backToOrders:"返回订单",viewSubscriptions:"查看我的订阅",viewBalance:"查看余额",goToSubscriptions:"我的订阅",goToSubscriptionsHint:"查看当前生效套餐、升级和历史记录。",goToBuy:"购买页面",goToBuyHint:"继续购买套餐或补充灵活额度。",goToBalance:"我的余额",goToBalanceHint:"查看余额、批次和充值记录。"},recharge:{title:"我的余额",description:"查看当前余额、批次明细与灵活额度购买记录",subtitle:"在这里查看账户余额状态,也可以继续补充灵活额度。",currentBalance:"当前余额",eyebrow:"灵活额度",heroTitle:"补充账户灵活额度,按需购买即刻可用",heroSubtitle:"选择固定档位后即可完成支付。到账额度、汇率和可用优惠会在下单前明确展示。",comingSoon:"充值功能即将上线,敬请期待。",fixedAmountsTitle:"选择充值档位",fixedAmountsHint:"当前仅支持固定额度充值,不支持手动输入任意金额。",highlights:{instant:{title:"支付完成后立即到账",desc:"购买成功后会直接计入当前账户,可立即参与后续扣减。"},transparent:{title:"金额和到账一目了然",desc:"每个档位都会直接展示支付金额与预计到账额度,购买前信息清晰可见。"},secure:{title:"优惠规则提前说明",desc:"首充优惠、折扣券、支付方式和到账规则都会在下单前说明。"}},campaignSignals:{offerLabel:"首充优惠",offerEligible:"当前账号符合资格,本次可直接使用一次性首充优惠。",offerLimited:"首充优惠仅限首次购买使用,不符合资格时系统会自动隐藏该权益。",featuredLabel:"推荐档位",featuredText:"¥{amount} 档适合大多数日常使用场景,可作为常用补充方案。",couponLabel:"可用优惠",couponText:"当前有 {percent}% 充值折扣券,下单时会自动抵扣。",fixedLabel:"购买方式",fixedText:"当前仅提供固定档位,方便快速完成下单。"},amount:"充值金额",customAmount:"自定义金额",selectAmount:"选择充值金额{amount}元",amountRange:"充值范围:¥{min} - ¥{max}
36",invalidAmount:"请输入有效金额",amountTooSmall:"最小充值金额为 Â¥{min}",amountTooLarge:"最大充值金额为 Â¥{max}",exchangeRateInfo:"支付 Â¥{payAmount} → 到账 ${creditAmount}(汇率 {rate}:1)",exchangeRateHint:"当前汇率:支付 Â¥{rate} = 到账 $1",fixedAmountCredit:"预计到账 ${amount}",fixedCards:{featured:"推荐档位",creditTag:"到账预估",badges:{starter:"入门补充",flex:"日常补充",featured:"常用档位",pro:"大额补充"},notes:{starter:"适合先补一笔余额试用,低门槛完成首次购买。",flex:"适合日常使用场景,补充节奏更灵活。",featured:"适合作为常用补充档位,支付金额与到账额度更平衡。",pro:"适合高频使用场景,减少反复支付带来的打断。"}},selectionPanelTitle:"当前选择",selectionPanelEmptyTitle:"先选一个档位",selectionPanelEmptyDesc:"选择左侧档位后,这里会显示支付金额和预计到账。",selectionPanelPay:"本次支付",selectionPanelCredit:"预计到账",selectionPanelRule:"购买规则",selectionPanelOffer:"当前优惠",selectionPanelSavings:"本次优惠",selectionPanelSavingsBadge:"已享优惠",selectionPanelSavingsOffer:"首充优惠仅限一次。",selectionPanelSavingsCoupon:"当前可用 {percent}% 折扣券。",selectionPanelOfferNewUser:"按当前汇率,同等额度原价约 Â¥{normalValue},现在立省 Â¥{savedAmount}",selectionPanelCouponLine:"将自动叠加 {percent}% 充值折扣券,以下单页实际结算为准。",selectionPanelFeaturedLine:"这是当前推荐档位,适合大多数日常使用场景。",selectionPanelStandardLine:"固定档位到账稳定,支付成功后自动计入余额。",selectionPanelStandardTitle:"Â¥{amount} 固定充值",ctaHint:"支付成功后会立即到账;如果当前账号可用首充优惠,建议优先使用。",newUserOffer:{badge:"首充优惠",title:"首充优惠,仅限一次",subtitle:"支付 Â¥{payAmount},直接到账 ${creditAmount}",normalValue:"按当前汇率,同等额度原价约 Â¥{amount}",available:"当前可用",unavailable:"暂不可用",payLabel:"本次支付",creditLabel:"到账额度",savedLabel:"本次优惠",limit:"每个账号仅可享受一次,支付成功后不可重复购买。",ineligibleFallback:"当前账号暂不满足新人专享资格。",exchangeRateInfo:"新人专享:支付 Â¥{payAmount} → 直接到账 ${creditAmount},按当前汇率相当于立省 Â¥{savedAmount}",nonStackable:"新人专享为单独特惠,不与其他充值优惠券叠加。"},submitButton:"确认支付 Â¥{amount}",submitButtonDefault:"请选择金额",submitting:"处理中...",paymentMethod:"支付方式",selectPaymentMethod:"选择{method}支付",wechatPay:"微信支付",wechatPayDesc:"使用微信扫码支付",wechatInvoiceNote:"可联系客服开具发票",alipay:"支付宝",alipayDesc:"使用支付宝支付",stripe:"Stripe",stripeDesc:"使用银行卡等方式在线支付(Stripe)",stripeInvoiceNote:"Stripe 支付不支持开发票",stripeRedirectFailed:"跳转 Stripe 支付页失败,请稍后重试",comingSoonLabel:"即将上线",orderCreating:"正在创建订单...",orderCreateFailed:"创建订单失败,请重试",orderCreateSuccess:"订单创建成功",selectPaymentMethodFirst:"请选择支付方式",rateLimitCountdown:"{seconds} 秒后可再次提交",dailyLimitReached:"今日充值次数已达上限",captchaRequired:"请完成验证码验证",captchaError:"验证码加载失败,请刷新重试",paymentTitle:"支付",paymentDescription:"完成订单支付",orderInfo:"订单信息",orderNo:"订单号",orderAmount:"支付金额",orderStatus:"订单状态",qrcodeComingSoon:"二维码支付功能即将上线",qrcodeLoading:"正在生成二维码...",qrcodeError:"二维码生成失败",qrcodeHint:"请使用微信扫码支付",maxRetriesReached:"已达最大重试次数",statusPending:"待支付",statusPaid:"已支付",statusFailed:"支付失败",statusExpired:"已过期",statusUnknown:"未知",statusCancelled:"已取消",statusRefunded:"已退款",waitingPayment:"等待支付中...",remainingTime:"剩余时间",countdown:"剩ä
36½™ {time}",pleaseOpenInWeChat:"请在微信中打开此页面进行支付",clickToPayInWeChat:"点击下方按钮调起微信支付",payNow:"立即支付",retryPayment:"重试支付",paymentProcessing:"正在调起支付...",paymentFailed:"支付失败,请重试",successTitle:"充值成功",successSubtitle:"您的充值已到账",rechargeAmount:"充值金额",paidTime:"支付时间",backToDashboard:"返回首页",continueRecharge:"继续充值",failedTitle:"充值失败",failedSubtitle:"订单支付未完成",failedReasonPayment:"支付过程中出现问题,请重试",failedReasonExpired:"订单已过期,请重新创建订单",failedReasonCancelled:"订单已取消",failedReasonUnknown:"未知错误,请重试",retryRecharge:"重新充值",paying:{syncStatus:"手动查询订单状态",syncing:"查询中...",syncCooldown:"{seconds}秒后可再次查询",syncHint:"如果支付成功但页面未跳转,请点击上方按钮手动查询",syncError:"查询失败,请稍后重试",syncResult:{paid:"支付成功!正在跳转...",pending:"订单仍在支付中,请完成支付",failed:"订单已失败或过期",unknown:"订单状态未知,请稍后再试"}},modal:{orderDetail:"订单详情",createdAt:"创建时间",refreshStatus:"刷新状态",repay:"重新支付",loadError:"加载订单失败",cancelPayment:"暂不支付",confirmPaid:"我已完成支付",qrcodeExpire:"二维码有效期:",orderCancelled:"订单已取消"},records:{title:"充值记录",refresh:"刷新",viewDetail:"查看详情",actions:"操作",loadMore:"加载更多",typeName:"余额充值",typeLabel:"类型",deleteOrder:"删除",deleteConfirm:"确定要删除此充值订单吗?删除后无法恢复。",deleteSuccess:"订单已删除"},pendingOrderCreated:"支付订单已创建",pendingOrderHint:"请完成支付,成功后额度会自动到账",viewQrcode:"查看支付二维码",rechargeCouponHint:"当前有一张 {percent}% 充值折扣券,下单时会自动抵扣"},rechargeRecords:{title:"充值记录",description:"查看您的历史充值订单",filterStatus:"订单状态",filterStartDate:"开始日期",filterEndDate:"结束日期",allStatus:"全部状态",resetFilters:"重置",noRecords:"暂无充值记录",noRecordsDesc:"您还没有任何充值订单记录",goRecharge:"去充值",paidAt:"支付时间",totalRecords:"共 {count} 条记录"},announcements:{title:"公告",description:"查看系统公告",unreadOnly:"仅显示未读",markRead:"标记已读",markAllRead:"全部已读",viewAll:"查看全部公告",markedAsRead:"已标记为已读",allMarkedAsRead:"所有公告已标记为已读",newCount:"有 {count} 条新公告",readAt:"已读时间",read:"已读",unread:"未读",startsAt:"开始时间",endsAt:"结束时间",empty:"暂无公告",emptyUnread:"暂无未读公告",total:"条公告",emptyDescription:"暂时没有任何系统公告",readStatus:"您已阅读此公告",markReadHint:'点击"已读"标记此公告'},userSubscriptions:{title:"我的订阅",description:"查看当前有效订阅、升级选项和历史记录",notify:{configure:"配置提醒",title:"额度提醒设置",forPlan:"为套餐配置:",enableTitle:"启用额度提醒",enableHint:"当本月额度低于阈值时,通过群机器人主动通知你",thresholdLabel:"触发阈值",thresholdPrefix:"本月额度剩余低于",thresholdHint:"本月剩余额度低于该百分比时触发提醒",frequencyLabel:"提醒频率",frequency:{once:"仅提醒一次(续费后重置)",daily:"每天一次",every_12h:"每 12 小时",every_6h:"每 6 小时"},notifyHourLabel:"提醒时间",notifyHourHint:"每天在该时间点检查并提醒(按服务器时区)",feishuTitle:"飞书群机器人",feishuHint:"在飞书群里添加自定义机器人后,把它的 webhook 地址粘贴到这里即可",wecomTitle:"企业微信群机器人",wecomHint:"在企业微信群里添加群机器人后,把它的 webhook 地址粘贴到这里即可",test:"测试",testing:"发送中…",testSent:"测试消息已发送,请到群里查看",testFailed:"测试消息发送失败,请检查 webhook 地址",saved:"通知设置已保存",validation:{noChannel:"请至少启用一个通知渠道(飞书或企业微信)",feishuWebhookRequired:"请填写飞书 webhook 地址",wecomWebhookRequired:"请填写企业微信 webhook 地址"}},modelPricingHintText:"对模型扣费有疑问?查看每个模型的详细价格表",modelPricingHintLink:"查看模型价格表",noActiveSubscriptions:"暂无有效订阅",noActiveSubscriptionsDesc:"您没有任何有效订阅。请联系管理员获取订阅。",failedToLoad:"加载订阅失败",status:{active:"有效",expired:"已过期",quota_exhausted:"额度耗尽",revoked:"已撤销",upgraded:"已升级"},usage:"用量",expires:"到期时间",noExpiration:"无到期时间",unlimited:"无限制",unlimitedDesc:"该订阅无用量限制",daily:"每日",weekly:"每周",monthly:"每月",daysRemaining:"剩余 {days} 天",expiresOn:"{date} 到期",resetIn:"{time} 后重置",quotaEndsIn:"额度将在 {time} 后结束",windowNotActive:"等待首次使用",usageOf:"已用 {used} / {limit}",history:"历史订阅记录",noHistory:"暂无历史订阅记录",subscribeTime:"订阅时间",planName:"套餐名称",expireTime:"到期时间",statusLabel:"状态",orderHistory:{title:"订单记录",plan:"套餐",amount:"金额",createdAt:"下单时间",status:"状态",action:"操作",statusPaid:"已支付",statusCancelled:"已取消",statusExpired:"已过期",repurchase:"重新购买",deletedPlan:"已删除套餐 #{id}",deleteOrder:"删除",deleteConfirm:"确定要删除此订单吗?删除后无法恢复。",deleteSuccess:"订单已删除",recentHint:"仅显示最近 20 条",showAll:"查看全部 {total} 条订单"},transfer:{action:"结转余额",title:"确认结转为余额",previewSubtitle:"当前订阅还剩约 {days} 天可用时长",previewAmount:"预计到账",remainingValue:"剩余价值",exchangeRate:"当前汇率",exchangeRateValue:"Â¥{rate} = $1",balanceExpiry:"余额有效期至",expiryPolicy:"有效期规则",policyRemainingDays:"按订阅剩余时间",policyFixed30Days:"重新计算 30 天",noticeTitle:"确认前请注意",acknowledge:"我已理解结转后当前订阅会立即结束,且结转金额按当前规则重新计算。",confirm:"确认结转",disabled:"当前暂未开放订阅结转",notAllowed:"该套餐不支持结转余额",previewFailed:"加载结转预览失败",failed:"订阅结转失败",success:"结转成功,已到账 ${amount}",term1:"结转后,当前订阅会立即结束,且无法恢复。",term2:"系统会按当前兑换比例计算剩余价值,并转成余额发放到你的账户。",term3:"余额有效期会按系统当前规则计算,请在确认前留意到期时间。",term4
36:"若后续价格或汇率发生变化,结转金额也会按结转当时的规则重新计算,不追溯购买时的价格。"}},subscriptionPlan:{title:"套餐方案",popular:"推荐",purchase:"立即开通",purchaseLocked:"暂不可购买",enterprise:{sectionTitle:"企业方案",sectionChip:"定制",sectionDesc:"需要更大额度、合同结算或专属对接时,与销售沟通定制方案——与上方任一模型系列无关。",tag:"企业定制",name:"更多企业套餐",featured:"联系销售",desc:"团队规模更大、需要专属配额与独立结算?我们提供定制化企业方案。",feature1:"更高额度与专属并发",feature2:"独立结算与发票支持",feature3:"一对一技术对接",action:"联系销售",modalTitle:"联系销售",modalDesc:"扫码添加专属顾问,获取企业定制方案与报价。",contactFallback:"如需企业方案,请联系客服顾问。"},subscribed:"已订阅",subscription:"订阅套餐",orderInfo:"订单信息",paymentSuccess:"支付成功,订阅已生效",purchaseNoticeTitle:"购买前请确认",purchaseNoticeIntro:"为了减少误解,我们把关键规则提前说明:",purchaseNoticeFooter:"我们尽量把规则写清楚,是为了减少误解,不是为了给你设置门槛。只要系统稳定可用,你买到的就是持续可用的额度与服务能力。",purchaseNoticeAcknowledge:"我已阅读并理解以上规则,确认继续购买。",confirmAndPay:"确认并去支付",wechatInvoiceNote:"可联系客服开具发票",stripeInvoiceNote:"不支持开发票",stripeInvoiceConfirmNotice:"Stripe 支付不支持开发票;如需开具发票,请选择微信支付。",upgradeKeyGuideTitle:"升级已完成",upgradeKeyGuideMessage:"套餐已升级。请前往 API 密钥页面,将密钥分组切换为新套餐,否则请求仍会走旧分组而报错。",purchaseKeyGuideTitle:"订阅已生效",purchaseKeyGuideMessage:"套餐已开通。请前往 API 密钥页面,将密钥分组切换为当前套餐,否则可能因分组不匹配而报错。",goToKeys:"去 API 密钥页面",later:"稍后处理",createOrderFailed:"创建订单失败",alreadyActiveError:"您已有该套餐的生效中订阅,如需更多配额请升级套餐,或等额度耗尽/订阅到期后再购买。",pendingOrders:"待支付订单",pendingOrderExpireIn:"剩余 {time}",pendingOrderExpired:"已过期",resumePayment:"继续支付",cancelOrder:"取消订单",orderCancelled:"订单已取消,优惠券已释放",subscriptionCouponHint:"你有一张 ¥{amount} 订阅立减券,订购或升级套餐时将自动抵扣",validity:"有效期",validityDays:"{days}天",validityUnit:"月",priceHint:"支付成功后立即生效,并按当前规则开始计量。",dailyQuota:"每日 ${amount} 额度",weeklyQuota:"每周 ${amount} 额度",monthlyQuota:"每月 ${amount} 额度",unlimitedQuota:"无限额度",avgCostPerDollar:"约 ¥{amount}/$1",noPlans:"暂无开放购买的套餐",noPlansDesc:"如需开通包月套餐或定制更大额度的订阅方案,请联系客服",contactUs:"联系方式",upgradeNow:"立即升级",upgradeDiscount:"已抵扣 ¥{amount}",upgradeCouponExtra:"券再抵 ¥{amount}",upgradeDiscountHint:"按源套餐剩余额度对应的剩余金额折算。",upgradeDiscountHintMulti:"已合计同系列 {count} 份订阅的剩余额度折算,升级后这几份都将被作废。",upgradeBadge:"升级",upgradeVoidedTitle:"升级后这 {count} 份订阅将被作废",upgradeVoidedCredit:"抵扣 ¥{amount}",upgradeVoidedUnnamed:"订阅 #{id}",upgradeVoidedHint:"它们的剩余价值已计入上方抵扣金额,支付成功后立即停止使用,额度不结转。",renewNow:"立即续费",renewBadge:"可续费",renewDiscount:"剩余价值已抵扣 ¥{amount}",renewCouponExtra:"券再抵 ¥{amount}",renewDiscountHint:"续费按剩余额度折算抵扣;支付后套餐从当天重新起算 30 天,额度满额重置。",soldOutToday:"今日已售罄",soldOutTodayMessage:"今日开放名额已售完,明天再来看看。",scarcity:{availableToday:"今日可开通,名额有限",remaining:"今日可开通,当前剩余 {remaining} 名",soldOutTomorrow:"今日名额已售罄,明天会重新开放少量名额。"},audience:{existingSubscribers:"老订阅用户可购",activeSubscribers:"当前有效订阅用户可购",existingSubscribersHint:"该套餐仅面向曾经开通过包月订阅的用户开放。",activeSubscribersHint:"该套餐仅面向当前仍有有效包月订阅的用户开放。"},metric:{limit:"核心额度",cost:"成本参考",avgCostValue:"¥{amount}/$1",immediateActivation:"支付成功后立即生效",dailyLimitValue:"每日 ${amount}",weeklyLimitValue:"每周 ${amount}",monthlyLimitValue:"每月 ${amount}",unlimitedValue:"不限额度"},purchaseTerms:{default1:"订阅开通后会立即生效,并开始占用对应服务资源。",default2:"若系统仅出现局部波动、个别模型短时异常,订阅仍默认继续生效,不支持因此退款。",default3:"只有在系统整体不可用,且连续超过 3 天无法恢复时,我们才会按规则处理补偿或特殊售后。",default4:"若你后续不想继续使用,可将剩余价值按当时系统兑换比例结转为余额,结转后当前订阅会同步结束。"}},onboarding:{restartTour:"重新查看新手引导",dontShowAgain:"不再提示",dontShowAgainTitle:"永久关闭新手引导",confirmDontShow:`确定不再显示新手引导吗?
37
38您可以随时在右上角头像菜单中重新开启。`,confirmExit:"确定要退出新手引导吗?您可以随时在右上角菜单重新开始。",interactiveHint:"按 Enter 或点击继续",navigation:{flipPage:"翻页",exit:"退出"},admin:{welcome:{title:"欢迎使用 Code80",description:'<div style="line-height: 1.8;"><p style="margin-bottom: 16px;">Code80 是一个强大的 AI 服务中转平台,让您轻松管理和分发 AI 服务。</p><p style="margin-bottom: 12px;"><b>核心功能:</b></p><ul style="margin-left: 20px; margin-bottom: 16px;"><li><b>分组管理</b> - 创建不同的服务套餐(VIP、免费试用等)</li><li><b>账号池</b> - 连接多个上游 AI 服务商账号</li><li><b>密钥分发</b> - 为用户生成独立的 API Key</li><li><b>计费管理</b> - 灵活的费率和配额控制</li></ul><p style="color: #10b981; font-weight: 600;">接下来,我们将用 3 分钟带您完成首次配置 →</p></div>',nextBtn:"开始配置",prevBtn:"跳过"},groupManage:{title:"第一步:分组管理",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;"><b>什么是分组?</b></p><p style="margin-bottom: 12px;">分组是 Code80 的核心概念,它就像一个"服务套餐":</p><ul style="margin-left: 20px; margin-bottom: 12px; font-size: 13px;"><li>每个分组可以包含多个上游账号</li><li>每个分组有独立的计费倍率</li><li>可以设置为公开或专属分组</li></ul><p style="margin-top: 12px; padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>示例:</b>您可以创建"VIP专线"(高倍率)和"免费试用"(低倍率)两个分组</p><p style="margin-top: 16px; color: #10b981; font-weight: 600;">点击左侧的"分组管理"开始</p></div>'},createGroup:{title:"创建新分组",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">现在让我们创建第一个分组。</p><p style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>提示:</b>
38建议先创建一个测试分组,熟悉流程后再创建正式分组</p><p style="color: #10b981; font-weight: 600;">点击"创建分组"按钮</p></div>'},groupName:{title:"1. 分组名称",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">为您的分组起一个易于识别的名称。</p><div style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>命名建议:</b><ul style="margin: 8px 0 0 16px;"><li>"测试分组" - 用于测试</li><li>"VIP专线" - 高质量服务</li><li>"免费试用" - 体验版</li></ul></div><p style="font-size: 13px; color: #6b7280;">填写完成后点击"下一步"继续</p></div>',nextBtn:"下一步"},groupPlatform:{title:"2. 选择平台",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">选择该分组支持的 AI 平台。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>平台说明:</b><ul style="margin: 8px 0 0 16px;"><li><b>Anthropic</b> - Claude 系列模型</li><li><b>OpenAI</b> - GPT 系列模型</li><li><b>Google</b> - Gemini 系列模型</li></ul></div><p style="font-size: 13px; color: #6b7280;">一个分组只能选择一个平台</p></div>',nextBtn:"下一步"},groupMultiplier:{title:"3. 费率倍数",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">设置该分组的计费倍率,控制用户的实际扣费。</p><div style="padding: 8px 12px; background: #fef3c7; border-left: 3px solid #f59e0b; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>计费规则:</b><ul style="margin: 8px 0 0 16px;"><li><b>1.0</b> - 原价计费(成本价)</li><li><b>1.5</b> - 用户消耗 $1,扣除 $1.5</li><li><b>2.0</b> - 用户消耗 $1,扣除 $2</li><li><b>0.8</b> - 补贴模式(亏本运营)</li></ul></div><p style="font-size: 13px; color: #6b7280;">建议测试分组设置为 1.0</p></div>',nextBtn:"下一步"},groupExclusive:{title:"4. 专属分组(可选)",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">控制分组的可见性和访问权限。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>权限说明:</b><ul style="margin: 8px 0 0 16px;"><li><b>关闭</b> - 公开分组,所有用户可见</li><li><b>开启</b> - 专属分组,仅指定用户可见</li></ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>使用场景:</b>VIP 用户专属、内部测试、特殊客户等</p></div>',nextBtn:"下一步"},groupSubmit:{title:"保存分组",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">确认信息无误后,点击创建按钮保存分组。</p><p style="padding: 8px 12px; background: #fef3c7; border-left: 3px solid #f59e0b; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>注意:</b>分组创建后,平台类型不可修改,其他信息可以随时编辑</p><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>下一步:</b>创建成功后,我们将添加上游账号到这个分组</p><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击"创建"按钮</p></div>'},accountManage:{title:"第二步:添加账号",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;"><b>太棒了!分组已创建成功</b></p><p style="margin-bottom: 12px;">现在需要添加上游 AI 服务商的账号,让分组能够实际提供服务。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>账号的作用:</b><ul style="margin: 8px 0 0 16px;"><li>连接到上游 AI 服务(Claude、GPT 等)</li><li>一个分组可以包含多个账号(负载均衡)</li><li>支持 OAuth 和 Session Key 两种方式</li></ul></div><p style="margin-top: 16px; color: #10b981; font-weight: 600;">点击左侧的"账号管理"</p></div>'},createAccount:{title:"添加新账号",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">点击按钮开始添加您的第一个上游账号。</p><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>提示:</b>建议使用 OAuth 方式,更安全且无需手动提取密钥</p><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击"添加账号"按钮</p></div>'},accountName:{title:"1. 账号名称",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">为账号设置一个便于识别的名称。</p><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>命名建议:</b>"Claude主账号"、"GPT备用1"、"测试账号" 等</p></div>',nextBtn:"下一步"}
38,accountPlatform:{title:"2. 选择平台",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">选择该账号对应的服务商平台。</p><p style="padding: 8px 12px; background: #fef3c7; border-left: 3px solid #f59e0b; border-radius: 4px; font-size: 13px;"><b>重要:</b>平台必须与刚才创建的分组平台一致</p></div>',nextBtn:"下一步"},accountType:{title:"3. 授权方式",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">选择账号的授权方式。</p><div style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>推荐:OAuth 方式</b><ul style="margin: 8px 0 0 16px;"><li>无需手动提取密钥</li><li>更安全,支持自动刷新</li><li>适用于 Claude Code、ChatGPT OAuth</li></ul></div><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px;"><b>Session Key 方式</b><ul style="margin: 8px 0 0 16px;"><li>需要手动从浏览器提取</li><li>可能需要定期更新</li><li>适用于不支持 OAuth 的平台</li></ul></div></div>',nextBtn:"下一步"},accountPriority:{title:"4. 优先级(可选)",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">设置账号的调用优先级。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>优先级规则:</b><ul style="margin: 8px 0 0 16px;"><li>数字越小,优先级越高</li><li>系统优先使用低数值账号</li><li>相同优先级则随机选择</li></ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>使用场景:</b>主账号设置低数值,备用账号设置高数值</p></div>',nextBtn:"下一步"},accountGroups:{title:"5. 分配分组",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;"><b>关键步骤!</b>将账号分配到刚才创建的分组。</p><div style="padding: 8px 12px; background: #fee2e2; border-left: 3px solid #ef4444; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>重要提醒:</b><ul style="margin: 8px 0 0 16px;"><li>必须勾选至少一个分组</li><li>未分配分组的账号无法使用</li><li>一个账号可以分配给多个分组</li></ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>提示:</b>请勾选刚才创建的测试分组</p></div>',nextBtn:"下一步"},accountSubmit:{title:"保存账号",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">确认信息无误后,点击保存按钮。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>OAuth 授权流程:</b><ul style="margin: 8px 0 0 16px;"><li>点击保存后会跳转到服务商页面</li><li>在服务商页面完成登录授权</li><li>授权成功后自动返回</li></ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>下一步:</b>账号添加成功后,我们将创建 API 密钥</p><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击"保存"按钮</p></div>'},keyManage:{title:"第三步:生成密钥",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;"><b>恭喜!账号配置完成</b></p><p style="margin-bottom: 12px;">最后一步,生成 API Key 来测试服务是否正常工作。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>API Key 的作用:</b><ul style="margin: 8px 0 0 16px;"><li>用于调用 AI 服务的凭证</li><li>每个 Key 绑定一个分组</li><li>可以设置配额和有效期</li><li>支持独立的使用统计</li></ul></div><p style="margin-top: 16px; color: #10b981; font-weight: 600;">点击左侧的"API 密钥"</p></div>'},createKey:{title:"创建密钥",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">点击按钮创建您的第一个 API Key。</p><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>提示:</b>创建后请立即复制保存,密钥只显示一次</p><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击"创建密钥"按钮</p></div>'},keyName:{title:"1. 密钥名称",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">为密钥设置一个便于管理的名称。</p><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>命名建议:</b>"测试密钥"、"生产环境"、"移动端" 等</p></div>',nextBtn:"下一步"},keyGroup:{title:"2. 选择分组",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">选择刚才配置好的分组。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>分组决定:</b><ul style="margin: 8px 0 0 16px;"><li>该密钥可以使用哪些账号</li><li>计费倍率是多少</li><li>是否为专属密钥</li></ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>提示:</b>选择刚才创建的测试分组</p></div>',nextBtn:"下一步"},keySubmit:{title:"生成并复制",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">点击创建后,系统会生成完整的 API Key。</p><div style="padding: 8px 12px; background: #fee2e2; border-left: 3px solid #ef4444; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>重要提醒:</b><ul style="margin: 8px 0 0 16px;"><li>密钥只显示一次,请立即复制</li><li>丢失后需要重新生成</li><li>妥善保管,不要泄露给他人</li></ul></div><div style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>下一步:</b><ul style="margin: 8px 0 0 16px;"><li>复制生成的 sk-xxx 密钥</li><li>在支持 OpenAI 接口的客户端中使用</li><li>开始体验 AI 服务!</li></ul></div><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击"创建"按钮</p></div>'}},user:{welcome:{title:"欢迎使用 Code80",description:'<div style="line-height: 1.8;"><p style="margin-bottom: 16px;">
38您好!欢迎来到 Code80 AI 服务平台。</p><p style="margin-bottom: 12px;"><b>快速开始:</b></p><ul style="margin-left: 20px; margin-bottom: 16px;"><li>创建 API 密钥</li><li>复制密钥到您的应用</li><li>开始使用 AI 服务</li></ul><p style="color: #10b981; font-weight: 600;">只需 1 分钟,让我们开始吧 →</p></div>',descriptionStandard:'<div style="line-height: 1.8;"><p style="margin-bottom: 16px;">您好!欢迎来到 Code80 AI 服务平台。</p><p style="margin-bottom: 12px;"><b>快速开始三步走:</b></p><ul style="margin-left: 20px; margin-bottom: 16px;"><li>创建 API 密钥</li><li>了解订阅和余额</li><li>开始使用 AI 服务</li></ul><p style="color: #10b981; font-weight: 600;">跟着指引走,马上就能用 →</p></div>',nextBtn:"开始",prevBtn:"跳过"},keyManage:{title:"API 密钥管理",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">在这里管理您的所有 API 访问密钥。</p><p style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px;"><b>什么是 API 密钥?</b><br/>API 密钥是您访问 AI 服务的凭证,就像一把钥匙,让您的应用能够调用 AI 能力。</p><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击进入密钥页面</p></div>'},createKey:{title:"创建新密钥",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">点击按钮创建您的第一个 API 密钥。</p><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>提示:</b>创建后密钥只显示一次,请务必复制保存</p><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击"创建密钥"</p></div>'},keyName:{title:"密钥名称",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">为密钥起一个便于识别的名称。</p><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>示例:</b>"我的第一个密钥"、"测试用" 等</p></div>',nextBtn:"下一步"},keyGroup:{title:"选择分组",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">选择管理员为您分配的服务分组。</p><p style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px;"><b>分组说明:</b><br/>不同分组可能有不同的服务质量和计费标准,请根据需要选择。</p></div>',nextBtn:"下一步"},keySubmit:{title:"完成创建",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">点击确认创建您的 API 密钥。</p><div style="padding: 8px 12px; background: #fee2e2; border-left: 3px solid #ef4444; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>重要:</b><ul style="margin: 8px 0 0 16px;"><li>创建后请立即复制密钥(sk-xxx)</li><li>密钥只显示一次,丢失需重新生成</li></ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>如何使用:</b><br/>将密钥配置到支持 OpenAI 接口的任何客户端(如 ChatBox、OpenCat 等),即可开始使用!</p><p style="margin-top: 12px; color: #10b981; font-weight: 600;">点击"创建"按钮</p></div>'},subscriptions:{title:"订阅与余额",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">密钥创建好了,接下来了解下如何获取使用额度。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>关于余额:</b><ul style="margin: 8px 0 0 16px;"><li>调用 API 会消耗余额</li><li>余额不足时请求将被拒绝</li><li>可以在"我的订阅"页面查看当前余额和用量</li></ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>提示:</b>先了解余额获取方式,再开始使用服务</p></div>'},complete:{title:"引导完成",description:'<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">密钥已准备就绪,还需要获取余额才能开始使用。</p><div style="padding: 8px 12px; background: #eff6ff; border-left: 3px solid #3b82f6; border-radius: 4px; font-size: 13px; margin-bottom: 12px;"><b>获取余额的方式:</b><ul style="margin: 8px 0 0 16px;">__METHODS__</ul></div><p style="padding: 8px 12px; background: #f0fdf4; border-left: 3px solid #10b981; border-radius: 4px; font-size: 13px;"><b>准备好了?</b><br/>获取余额后,将密钥配置到支持 OpenAI 接口的客户端即可开始使用!</p></div>',methodPurchase:"购买订阅套餐",methodRecharge:"在线充值",methodRedeem:"兑换码兑换"}}},installGuide:{title:"AI编程巴士CLI工具配置教程",subtitle:"快速配置 Claude Code、Codex CLI、Gemini CLI 和 Grok Build 等 AI 编程助手",officialDocs:"官方文档",recommended:"推荐",or:"或",claudeCode:{description:"Anthropic 官方 AI 编程助手命令行工具"},codex:{description:"OpenAI 官方 AI 编程助手命令行工具",linuxSandbox:"沙箱è¿
38è¡Œéœ€è¦ bubblewrap"},gemini:{description:"Google 官方 AI 编程助手命令行工具"},grok:{description:"xAI 官方 Grok Build 终端 AI 编程工具",officialOnlyWarning:"请只使用 xAI 官方 Grok Build(xai-org/grok-build)。不要安装 {'@'}vibe-kit/grok-cli、grok-dev 等社区同名包。",pathHelpTitle:"找不到 grok 命令?",pathHelpDesc:"官方脚本通常安装到 ~/.grok/bin/grok。把该目录加入 PATH 后重试:",cleanupTitle:"清理非官方同名 CLI",cleanupDesc:"先确认当前 grok 命令来源。如果命中了社区 npm 包,先卸载再使用官方二进制。",cleanupIfNeeded:"若发现非官方包,执行:",envKeyTitle:"设置 XAI_API_KEY 环境变量",envKeyDesc:"官方 Grok Build 用 XAI_API_KEY 为 /v1/models 与推理请求添加 Bearer 鉴权。变量名必须是 XAI_API_KEY。",configPermissionNote:"建议限制配置文件权限,仅当前用户可读:",replaceKeyHint:"请将 your-api-key 替换为实际的 Code80 API Key,并确保已写入 XAI_API_KEY"},tips:{title:"配置提示",tip1:"配置文件修改后需重启工具才能生效",tip2:"建议将 API Key 保存在安全的地方,避免泄露",tip3:"如遇网络问题,可配置代理或使用国内镜像源"},step1:{title:"安装 Node.js",installGrok:"安装 Grok Build",nodeRequired:"需要 Node.js {version} 或更高版本",verifyNode:"验证安装",recommendedMethod:"推荐方法",otherMethods:"其他安装方式",downloadFromNodejs:"访问 nodejs.org 下载 LTS 版本安装",brewNote:"如未安装 Homebrew,先执行:",nodeSourceNote:"使用 NodeSource 获取最新 LTS 版本:"},step2:{title:"安装 CLI 工具",verify:"验证安装:",adminNote:"如遇权限问题,Windows 请以管理员身份运行,Linux/macOS 请加 sudo"},step3:{title:"配置 API",getToken:"获取 API Token",getTokenDesc:"前往令牌管理页面创建新的 API Key",goToTokenPage:"前往令牌管理",selectGroupHint:"创建时请选择对应工具的专用分组",configFilePath:"配置文件路径",replaceKeyHint:"请将 your-api-key 替换为实际的 API Key",configNote:"修改配置后需重启工具才能生效",claude:{settingsFile:"配置文件"},codex:{createDir:"创建配置目录",configToml:"配置文件",authJson:"认证文件"},gemini:{envFile:"环境变量文件",settingsFile:"设置文件"}},step4:{title:"开始使用",enterProject:"进入项目目录:",startTool:"启动工具:",firstTimeNotes:"首次启动提示",claudeFirstTime:"选择主题 → 确认安全须知 → 配置终端 → 信任工作目录 → 开始编程",codexFirstTime:"选择开发环境 → 配置偏好 → 开始 AI 辅助编程",geminiFirstTime:"超大上下文窗口 · Agent Mode 自动规划 · Google Search 联网",grokFirstTime:"启动后输入 /model 选择中转返回的模型;模型目录在启动时读取,已打开的 TUI 需重启后才会刷新"}},codeBlock:{copy:"复制",copied:"已复制"},lottery:{title:"抽奖活动",activeActivities:"进行中的活动",noActiveActivities:"暂无进行中的活动",myParticipations:"我参与的活动",noParticipations:"暂无参与记录",endTime:"结束时间",drawTime:"开奖时间",participantCount:"参与人数",winRate:"中奖率",participate:"立即参与",participating:"参与中...",participated:"已参与",participateSuccess:"参与成功!等待开奖结果",participateFailed:"参与失败",needEmailBind:"请先绑定邮箱再参与抽奖",activityEnded:"活动已结束",activityNotStarted:"活动未开始",status:{pending:"待开始",active:"进行中",drawing:"开奖中",completed:"已完结",cancelled:"已取消",expired:"已过期"},recentWinners:"最近开奖公示",winnersBoard:"中奖名单",winnerUser:"用户 #{id}",winnerCount:"中奖 {count} 人",copyAnnouncement:"复制公告文本",announcementCopied:"公告文本已复制,可直接粘贴到公众号或其他平台",detail:{title:"活动详情",description:"活动描述",rules:"活动规则",rule1:"每位用户每个活动限参与一次",rule2:"需绑定邮箱方可参与",prizeDesc:"{days}天订阅体验券",status:"我的状态",notParticipated:"尚未参与",waitingDraw:"等待开奖",won:"🎉 恭喜中奖!",lost:"未中奖",results:"开奖结果",totalParticipants:"总参与人数",totalWinners:"中奖人数",claimGuide:{title:"如何领取奖品",expireHint:"奖品有效期至 {date},请尽快领取",step1Title:"进入 API 密钥页面",step1Desc:"点击左侧菜单「API 密钥」,创建或编辑一个 API Key",step2Title:"选择体验分组",step2Desc:"在分组选项中选择本次抽奖的专属体验分组(系统已自动为你开通订阅)",step3Title:"开始使用",step3Desc:"用该 API Key 通过兼容 OpenAI 格式的客户端连接,即可体验 Claude Max 纯血账号",goToApiKeys:"去创建 API Key"}},coupons:{title:"我的优惠券",noCoupons:"暂无优惠券",status:{all:"全部",active:"可用",locked:"待支付锁定中",used:"已使用",expired:"已过期"},type:{winner_discount:"充值折扣券",loser_reduction:"订阅立减券"}
38,scope:{recharge:"充值",monthly_subscription:"包月订阅"},discount:"{percent}% 折扣",reduction:"立减 Â¥{amount}",validUntil:"有效期至",usedAt:"使用时间",fromActivity:"来自活动"},systemCoupons:{title:"系统优惠券",sourceRenewal:"续订优惠",sourceReferralRegister:"推荐注册福利",sourceReferralRegisterSubscription:"推荐注册订阅券",sourceAdminBatchIssue:"批量发放",sourceNewUserWelcome:"新用户注册礼",lotteryCouponsTitle:"抽奖优惠券"},share:{title:"邀请参与抽奖",loading:"加载中...",notFound:"活动未找到",notFoundDesc:"该活动不存在或已被删除",backHome:"返回首页",joinNow:"立即参与",loginToJoin:"登录后参与",registerToJoin:"注册并参与",activityInfo:"活动信息",drawTime:"开奖时间",participants:"参与人数",winRate:"中奖率",prizes:"奖品设置",winnerPrize:"中奖奖品",loserPrize:"参与奖",participationPrize:"参与奖",discountCoupon:"充值{percent}折优惠券",rechargeDiscount:"充值享{percent}%折扣",reductionCoupon:"订阅立减 Â¥{amount} 优惠券",subscriptionReduction:"包月订阅立减 Â¥{amount}",participate:"立即参与",expired:"活动已结束",activityEnded:"活动已结束",hasAccount:"已有账户?登录",newUser:"新用户?注册",qrCode:"扫码参与",copyLink:"复制链接",linkCopied:"链接已复制"}},releaseNotes:{title:"更新中心",subtitle:"查看 Code80 的最新更新和改进",tabs:{announcements:"公告",versions:"版本"},types:{major:"重大更新",minor:"功能更新",patch:"问题修复"},sections:{features:"新功能",improvements:"改进优化",bugFixes:"问题修复"}},modelPlaza:{title:"模型广场",description:"按分组浏览可用模型与价格",loading:"加载中...",empty:"暂无可展示的分组",loadFailed:"加载模型广场失败",noSearchResult:"没有匹配的模型",anonymousHint:"登录后可查看你的专属分组与专属倍率",filters:{platformLabel:"平台",groupLabel:"分组",rateLabel:"倍率",modelLabel:"模型",searchPlaceholder:"搜索模型名称",all:"全部"},badges:{exclusive:"专属分组",subscription:"订阅"},detail:{noModels:"该分组暂未配置模型",noPricing:"未配置定价",peakNote:"高峰时段 {window} 计费倍率 ×{multiplier}",longContextDisabledNote:"该分组未启用长上下文阶梯计费,超阈值请求仍按基础档计费,官方阶梯仅供参考"},table:{model:"模型",input:"输入",output:"输出",cache:"缓存",cacheWrite:"写入",cacheRead:"读取",cacheWriteShort:"写",cacheReadShort:"读",tierHint:"按单次请求的总上下文(输入 + 缓存写入 + 缓存读取)所在档位对整单计价",tierHintMarginal:"仅超过阈值的部分按该档计价,输出不加价",maxReasoningMultiplierBadge:"Max ×{multiplier}",reasoningMultiplierBadge:"{effort} ×{multiplier}",reasoningMultiplierHint:"最终转发的思考等级为 {effort} 时,整次请求的计费与额度消耗乘以 {multiplier};未配置的等级按 1 倍计费",maxReasoningMultiplierHint:"最终转发的推理强度为 max 时,整次请求的计费与额度消耗乘以 {multiplier}",marginalBadge:"超出部分计价",timePricingRowHint:"按 {timezone} 时间,在该时段内发起的请求按本行价格计费",timePricingRowHintWeekdays:"按 {timezone} 时间,仅工作日(周一至周五)在该时段内发起的请求按本行价格计费,周末全天按标准价",timePricingRowHintPeak:";本行价格未含高峰倍率,与高峰时段 {window} 重叠的部分实付再乘 ×{multiplier}",timePricingWeekdays:"工作日",timePricingRateHint:"生效倍率 {rate} × 时段倍率 {multiplier}",paidPrice:"实付价格(折后)",officialPrice:"官方价格",rate:"折扣倍率",unitPerMillion:"$ / 1M token",perUnitRequest:"/ 次",perUnitImage:"/ å¼ ",perRequest:"按次计费",perImage:"按图片计费"},nav:{login:"登录",backToDashboard:"回到后台"}},affiliate:{title:"推广中心",description:"查看您的推广收益和邀请数据",yourCode:"我的邀请码",inviteLink:"邀请链接",copyCode:"复制邀请码",codeCopied:"邀请码已复制",linkCopied:"邀请链接已复制",loadFailed:"加载推广中心数据失败",transferFailed:"转入余额失败",inviteLinkTitle:"邀请链接",copyLink:"复制链接",copied:"已复制",copySuccess:"复制成功",referralCode:{label:"推荐码",copy:"复制",hint:"好友也可以在注册时输入推荐码完成绑定,使用链接或推荐码均可,建议优先使用链接",newUserBenefit:"新用户通过推荐注册可获得 95 折充值券、¥20 充值立减券和 8 折订阅券"},earningsTitle:"收益概览",totalEarnings:"累计收益",withdrawable:"可提现",withdrawProgress:"提现进度",remainingHint:"还差 {amount}",loadError:"加载推广信息失败",statsTitle:"战绩总览",totalInvites:"邀请总数",effectiveInvites:"有效用户",currentTier:"当前档位",tierProgress:"升级进度",maxTierReached:"已达最高档位",upgradeHint:"再邀请 {count} 人升级",tierRulesTitle:"档位佣金规则",tierRulesUnit:"人",tierRulesHint:"有效用户:通过您的邀请注册并å
38®Œæˆé¦–次充值的用户",tierUpgradeTitle:"档位升级",tierUpgradeMessage:"恭喜晋升为 {tier}",tierUpgradeRate:"佣金比例已提升至 {rate}",stats:{rebateRate:"我的返利比例",rebateRateHint:"被邀请用户每次充值后你可获得的返利比例",invitedUsers:"邀请人数",availableQuota:"可转返利额度",frozenQuota:"冻结中",frozenQuotaHint:"新产生的返利正在冻结期中",totalQuota:"历史返利额度"},transfer:{title:"返利额度转余额",description:"将当前可用返利额度一键转入账户余额",button:"转入余额",transferring:"转入中...",empty:"当前没有可转入额度",success:"已转入余额:{amount}"},invitees:{title:"已邀请用户",empty:"暂无邀请记录",columns:{email:"邮箱",username:"用户名",rebate:"返利明细",joinedAt:"注册时间"}},tips:{title:"使用说明",line1:"将邀请码或邀请链接分享给新用户。",line2:"被邀请用户充值后,你可获得 {rate} 的返利额度。",line3:"返利额度可随时转入账户余额。",line4:"新产生的返利需要经过冻结期后才能提现。"},inviteRecords:{title:"邀请记录",all:"全部",effective:"有效",pending:"待激活",nickname:"用户信息",registeredAt:"注册时间",status:"状态",statusTooltip:`为什么需要状态?
39为了确保邀请的真实性,防止虚假注册套取佣金,我们设置了激活机制。
40
41待激活:用户已注册成功,双方各获得 $1 余额奖励,但尚未完成首次充值,暂不计入有效邀请。
42
43有效:用户首次充值后 7 天内未退款,即转为有效状态。
44• 普通推广:邀请人仅享受被邀请人的首充佣金。
45• KOL 终身绑定:被邀请人后续每次充值均产生佣金。`,firstChargeAt:"首充时间",firstChargeAtTooltip:`被邀请用户首次充值的时间。
46待激活用户尚未充值,显示为"-"。`,firstChargeAmount:"首充金额",firstChargeAmountTooltip:`被邀请用户首次充值的订单金额(人民币)。
47该金额从佣金记录中推算得出。`,estimatedConfirmAt:"预计生效",estimatedConfirmAtTooltip:`佣金预计确认时间 = 首充时间 + 7 天。
487 天内未退款则佣金自动确认。
49已确认的不再显示预计时间。`,estimatedCommission:"预计佣金",estimatedCommissionTooltip:`预计佣金 = 首充金额 × 您当前的佣金比例。
50实际佣金以确认时的比例为准。`,contributed:"佣金",contributedTooltip:`该用户为您贡献的充值佣金累计(含已确认和待确认)。
51
52计算规则:佣金 = 用户充值金额 × 您的佣金比例
53(佣金比例由您的推广档位决定,详见推广规则页面)
54
55注:注册奖励($1)为余额奖励,不计入佣金。
56
57点击金额可展开查看每笔佣金的计算明细。`,rechargeHistory:"历史充值",rechargeHistoryTooltip:`查看被邀请人的全部充值记录。
58仅限终身绑定(lifetime)的被邀请人可查看。`,viewRechargeHistory:"查看",rechargeHistoryTitle:"历史充值记录",rechargeTime:"充值时间",rechargeAmount:"充值金额",creditedAmount:"到账额度",noRechargeRecords:"暂无充值记录",loadRechargeHistoryError:"加载充值记录失败",statusRegistered:"待激活",statusFirstCharged:"有效",commissionCalcTitle:"佣金计算明细",registerBonus:"注册奖励($1)",rechargeCommission:"佣金",commissionConfirmed:"已确认",commissionPending:"待确认",commissionNoDetail:"暂无明细记录",empty:"暂无邀请记录",emptyHint:"分享您的邀请链接以邀请好友",loadError:"加载邀请记录失败"},commissions:{title:"佣金明细",description:"查看您的佣金收益明细",tabs:{all:"全部",pending:"待确认",confirmed:"已确认"},sourceType:{register:"注册奖励",recharge:"充值佣金",subscriptionPurchase:"首购佣金",subscriptionUpgrade:"升级订阅",subscriptionRenewal:"续费佣金"},status:{pending:"还剩 {days} 天",confirmed:"已确认",cancelled:"已取消"},empty:"暂无佣金记录",loadError:"加载佣金明细失败"},poster:{title:"生成海报",templates:{minimal:"简约",vibrant:"科技",festive:"暗夜"},headline:`分享 AI 编程
59共享额度奖励`,subheadline:"邀请开发者加入 Code80",scanHint:"扫码注册体验",benefit:"邀请人与被邀请人均获额度奖励",download:"保存海报",generating:"生成中...",generateError:"海报生成失败,请重试"},rules:{title:"推广规则说明",description:"了解推广奖励机制和规则详情",inviteRe
59ward:{title:"邀请奖励",description:"成功邀请好友注册后,双方均可获得奖励。",inviterReward:"邀请人奖励",inviteeReward:"被邀请人奖励"},tierCommission:{title:"阶梯佣金比例",tier:"档位",effectiveUsers:"有效用户数",commissionRate:"佣金比例"},threshold:{title:"分成门槛",description:'被邀请用户需完成首次充值后,该邀请才被视为"有效邀请",并开始计算后续充值佣金。'},withdraw:{title:"提现规则",minAmount:"最低提现金额",minAmountValue:"¥{amount}(以系统配置为准)",period:"提现周期",periodValue:"每月可申请一次",method:"提现方式",methodValue:"仅支持微信提现(需绑定微信)",confirmPeriod:"确认期",confirmPeriodValue:"佣金创建后需经过 7 天确认期"},faq:{title:"常见问题",items:{0:{q:"什么是有效邀请?",a:"被邀请人注册后完成首次充值即为有效邀请。未充值的邀请不计入有效邀请数,也不产生后续佣金。"},1:{q:"佣金多久到账?",a:'佣金创建后有 7 天确认期,确认期结束后自动转为"已确认"状态,即可用于提现。如果在确认期内发生退款,佣金将被取消。'},2:{q:"提现门槛是多少?",a:"累计可提现金额达到门槛后即可申请提现(默认 ¥{amount},以系统配置为准)。每月可提现一次,仅支持微信提现。"},3:{q:"如何升级佣金档位?",a:"当您的有效邀请用户数达到对应档位的阈值时,系统自动升级。升级后的佣金比例对后续所有订单生效。"}}}},guide:{title:"推广赚钱指南",summary:"分享链接 → 好友注册充值 → 获得佣金奖励",collapse:"收起",expand:"展开",step1:{title:"分享邀请链接",desc:"复制专属邀请链接或生成海报,分享给好友"},step2:{title:"好友注册",desc:"好友通过链接注册,邀请成功双方各得余额奖励"},step3:{title:"首充获取佣金收益",desc:"好友首充后算有效用户,邀请人获得佣金"},tierTitle:"阶梯佣金",rewardsTitle:"奖励规则",inviteRewardDesc:"好友完成首次充值后,邀请人立得 +${inviterBonus},好友同享 +${inviteeBonus} 余额——帮朋友省钱,自己也有收益",commissionDesc:"好友完成首次充值即成为你的有效邀请,邀请人获得首充佣金奖励",commissionFormula:"佣金 = 充值金额 × 佣金比例,结算后自动到账",withdrawRule:"累计佣金满 ¥{withdrawThreshold} 即可随时申请提现"},withdraw:{title:"申请提现",description:"将您的佣金收益提现到账户",backToCenter:"返回推广中心",availableBalance:"可提现余额",minWithdraw:"最低提现 {amount}",needMore:"还需赚取 {amount} 才能提现",formTitle:"提现申请",amountLabel:"提现金额",amountPlaceholder:"请输入提现金额",amountHint:"最多可提现 {max}",methodLabel:"提现方式",methods:{alipay:"支付宝",wechat:"微信",bank:"银行卡"},accountLabels:{alipay:"支付宝账号",wechat:"微信账号",bank:"银行卡号"},accountPlaceholders:{alipay:"请输入支付宝账号(手机号或邮箱)",wechat:"请输入微信号",bank:"请输入银行卡号"},accountSecurityHint:"您的账户信息将被加密存储,仅用于提现打款",wechatHint:"仅支持微信提现,收款账户将使用您已绑定的微信账号",submitButton:"提交提现申请",submitting:"提交中...",submitError:"提交失败,请稍后重试",wechatNotBound:"请先绑定微信账号后再申请提现",successTitle:"提现申请已提交",successMessage:"您的提现申请已成功提交,我们将在 1-3 个工作日内处理,请耐心等待。",notesTitle:"提现说明",note1:"• 提现申请提交后,将在 1-3 个工作日内审核处理",note2:"• 请先绑定微信账号,系统将自动使用该账号收款",note3:"• 如有疑问请联系客服微信:20133213"},withdrawRecords:{title:"提现记录",empty:"暂无提现记录",loadError:"加载提现记录失败,请重试",status:{pending:"待审核",approved:"已通过",completed:"转账已提交",rejected:"已拒绝"},completedAt:"提交时间",rejectReason:"拒绝原因"}},payment:{title:"充值/订阅",amountLabel:"充值金额",paymentAmount:"支付金额",creditedBalance:"到账余额",quickAmounts:"快捷金额",customAmount:"自定义金额",enterAmount:"输入金额",paymentMethod:"支付方式",fee:"手续费",actualPay:"实付金额",createOrder:"确认支付",methods:{easypay:"易支付",alipay:"支付宝",wxpay:"微信支付",stripe:"Stripe",card:"银行卡",link:"Link",alipay_direct:"支付宝(直连)",wxpay_direct:"微信支付(直连)",redirect:"跳转支付"},status:{pending:"待支付",paid:"已支付",recharging:"充值中",completed:"已完成",expired:"已过期",cancelled:"已取消",failed:"失败",refund_requested:"退款申请中",refunding:"退款中",refund_pending:"退款处理中",refunded:"已退款",partially_refunded:"部分退款",refund_failed:"退款失败"},qr:{scanToPay:"请扫码支付",scanAlipay:"支付宝扫码支付",scanWxpay:"微信扫码支付",scanAlipayHint:"请使用手机打开支付宝,扫描二维码完成支付",scanWxpayHint:"请使用手机打开微信,扫描二维码完成支付",payInNewWindow:"请在新窗口中完成支付",payInNewWindowHint:"支付页面已在新窗口打开,请在新窗口中完成支付后返回此页面",openPayWindow:"重新打开支付页面",expires
59In:"剩余支付时间",expired:"订单已过期",expiredDesc:"订单已超时,请重新创建订单",cancelled:"订单已取消",cancelledDesc:"您已取消本次支付",waitingPayment:"等待支付...",cancelOrder:"取消订单",alipayOpening:"正在打开支付宝",alipayContinueInApp:"请在支付宝中完成支付",alipayWaitingHint:"支付结果将由服务端确认,本页面会自动更新",alipayFallbackTitle:"打开支付宝未成功",alipayFallbackHint:"可重新打开支付宝,或保存下方二维码后从支付宝相册识别",reopenAlipay:"重新打开支付宝",saveQRCode:"保存二维码",alipaySaveAndScanHint:"保存二维码后,打开支付宝扫一扫,从相册选择二维码"},orders:{title:"我的订单",empty:"暂无订单",orderId:"订单 ID",orderNo:"订单编号",amount:"金额",payAmount:"实付",creditedAmount:"到账金额",originalAmount:"原价",fee:"手续费",baseAmount:"充值金额",includedInPayAmount:"已含在实付金额中",status:"状态",paymentMethod:"支付方式",createdAt:"创建时间",cancel:"取消订单",userId:"用户 ID",orderType:"订单类型",actions:"操作",requestRefund:"申请退款"},result:{success:"支付成功",subscriptionSuccess:"订阅成功",processing:"支付处理中",processingHint:"支付结果仍在确认中,页面会自动刷新。",failed:"支付失败",backToRecharge:"返回充值",viewOrders:"查看订单"},currentBalance:"当前余额",groupFallback:"分组 #{id}",rechargeAccount:"充值账户",activeSubscription:"当前订阅",noActiveSubscription:"暂无有效订阅",tabTopUp:"充值",tabSubscribe:"订阅",noPlans:"暂无可用订阅套餐",notAvailable:"充值功能暂未开放",billingUnavailable:"充值与订阅均暂未开放,请联系管理员。",confirmSubscription:"确认订阅",confirmCancel:"确定要取消此订单吗?",amountTooLow:"最低金额为 {min}",amountTooHigh:"最高金额为 {max}",amountNoMethod:"该金额没有可用的支付方式",rechargeRatePreview:"当前倍率:1 CNY = {usd} USD",refundReason:"退款原因",refundReasonPlaceholder:"请描述您的退款原因",stripeLoadFailed:"支付组件加载失败,请刷新页面重试",stripeMissingParams:"缺少订单ID或支付密钥",stripeNotConfigured:"Stripe 未配置",errors:{tooManyPending:"待支付订单过多(最多 {max} 个),请先完成或取消现有订单",cancelRateLimited:"取消订单过于频繁,请稍后再试",wechatH5NotAuthorized:"当前商户未开通微信 H5 支付,请在微信中打开当前页面继续支付。",wechatPaymentMpNotConfigured:"当前站点未完成公众号/JSAPI 支付配置,暂时无法在微信内直接拉起支付。",wechatJsapiUnavailable:"当前环境未能拉起微信支付,请确认正在微信内打开本页后重试。",wechatJsapiFailed:"微信支付未完成,请重新拉起支付或改用扫码支付。",wechatUnavailable:"当前微信支付暂不可用,请稍后重试。",wechatOpenInWeChatHint:"请复制当前页面链接到微信内打开,或直接改用电脑端微信扫码支付。",wechatScanOnDesktopHint:"电脑端请直接使用微信扫一扫完成支付;移动端请在微信内打开当前页面。",wechatSwitchBrowserHint:"请改用电脑端微信扫码,或在外部浏览器重新打开本页后再试。",mobilePaymentFallbackToQr:"当前商户未开通移动支付,已自动切换为扫码支付。",alipayDesktopUnavailable:"当前支付宝桌面支付未成功生成二维码。",alipayDesktopQrHint:"电脑端支付宝应展示扫码单,请刷新后重试,或确认浏览器未拦截当前支付页。",alipayMobileUnavailable:"当前页面未成功跳转到支付宝。",alipayMobileOpenHint:"请允许当前页面打开支付宝 App,或改用系统浏览器重新发起支付。",PAYMENT_DISABLED:"支付系统已关闭",USER_INACTIVE:"账号已被禁用",BALANCE_PAYMENT_DISABLED:"余额充值功能已关闭",INVALID_AMOUNT:"金额无效",INVALID_INPUT:"参数有误",PLAN_NOT_AVAILABLE:"套餐不存在或已下架",GROUP_NOT_FOUND:"订阅分组不可用",GROUP_TYPE_MISMATCH:"分组类型不是订阅类型",TOO_MANY_PENDING:"待支付订单过多(最多 {max} 个),请先完成或取消现有订单",DAILY_LIMIT_EXCEEDED:"今日充值已达上限,剩余额度 {remaining}",PAYMENT_GATEWAY_ERROR:"支付方式不可用",NO_AVAILABLE_INSTANCE:"暂无可用的支付通道",PAYMENT_PROVIDER_MISCONFIGURED:"支付通道配置错误,请联系管理员",WXPAY_CONFIG_MISSING_KEY:"微信支付配置缺少必填项:{key}",WXPAY_CONFIG_INVALID_KEY_LENGTH:"微信支付 {key}
59 长度错误,应为 {expected} 字节(实际 {actual})",WXPAY_CONFIG_INVALID_KEY:"微信支付 {key} 格式错误,请确认复制了完整的 PEM 内容",PENDING_ORDERS:"该服务商有未完成的订单,请等待订单完成后再操作",PAYMENT_PROVIDER_CONFLICT:"该支付方式已有其他启用中的服务商实例,请先停用后再继续。",CANCEL_RATE_LIMITED:"取消订单过于频繁,请稍后再试",NOT_FOUND:"订单不存在",FORBIDDEN:"无权限操作此订单",CONFLICT:"订单状态已变更,请刷新",INVALID_ORDER_TYPE:"仅余额订单可申请退款",INVALID_STATUS:"当前订单状态不允许此操作",BALANCE_NOT_ENOUGH:"退款金额超过余额",REFUND_AMOUNT_EXCEEDED:"退款金额超过充值金额",REFUND_FAILED:"退款失败"},stripePay:"立即支付",stripeSuccessProcessing:"支付成功,正在处理订单...",stripePopup:{redirecting:"正在跳转到支付页面...",loadingQr:"正在获取微信支付二维码...",timeout:"等待支付凭证超时,请重试",qrFailed:"未能获取微信支付二维码"},subscribeNow:"立即开通",renewNow:"续费",selectPlan:"选择套餐",planFeatures:"功能特性",planCard:{rate:"倍率",peakRate:"高峰倍率",dailyLimit:"日限额",weeklyLimit:"周限额",monthlyLimit:"月限额",quota:"配额",unlimited:"无限制",models:"模型"},days:"天",weeks:"周",months:"个月",years:"年",oneMonth:"1 个月",oneYear:"1 年",perMonth:"月",perYear:"年",admin:{tabs:{overview:"概览",orders:"订单管理",channels:"支付渠道",plans:"订阅套餐"},todayRevenue:"今日收入",totalRevenue:"总收入",todayOrders:"今日订单",orderCount:"订单数",avgAmount:"平均金额",revenue:"收入",dailyRevenue:"每日收入",paymentDistribution:"支付方式分布",colUser:"用户",topUsers:"消费排行",noData:"暂无数据",days:"天",weeks:"周",months:"月",searchOrders:"搜索订单...",allStatuses:"全部状态",allPaymentTypes:"全部支付方式",allOrderTypes:"全部订单类型",orderDetail:"订单详情",orderType:"订单类型",orders:"订单",balanceOrder:"余额充值",subscriptionOrder:"订阅",paidAt:"支付时间",completedAt:"完成时间",expiresAt:"过期时间",feeRate:"手续费率",refund:"退款",refundOrder:"退款订单",refundAmount:"退款金额",maxRefundable:"最大可退金额",refundReason:"退款原因",refundReasonPlaceholder:"请输入退款原因",confirmRefund:"确认退款",refundSuccess:"退款成功",refundPending:"退款处理中,待网关确认",queryRefundStatus:"查询退款状态",refundInfo:"退款信息",refundEnabled:"允许退款",alreadyRefunded:"已退款",deductBalance:"扣除余额",deductBalanceHint:"从用户余额中扣回充值金额",userBalance:"用户余额",orderAmount:"订单金额",insufficientBalance:"余额不足,将扣至 $0",noDeduction:"将不扣除用户余额",forceRefund:"强制退款(忽略余额检查)",orderCancelled:"订单已取消",retry:"重试",retrySuccess:"重试成功",a
59pproveRefund:"批准退款",retryRefund:"重试退款",refundRequestInfo:"退款申请信息",refundRequestedAt:"申请时间",refundRequestedBy:"申请人",refundRequestReason:"申请原因",auditLogs:"操作日志",operator:"操作人",channelName:"渠道名称",channelDescription:"渠道描述",createChannel:"创建渠道",editChannel:"编辑渠道",deleteChannel:"删除渠道",deleteChannelConfirm:"确定要删除此渠道吗?",planName:"套餐名称",planDescription:"套餐描述",createPlan:"创建套餐",editPlan:"编辑套餐",deletePlan:"删除套餐",deletePlanConfirm:"确定要删除此套餐吗?",originalPrice:"原价",price:"ä»·æ ¼",subscriptionCnyPayPreview:"CNY 通道实扣预览:{amount}",subscriptionCnyPayPreviewWithFee:"(含 {feeRate}% 手续费:{total})",validity:"有效期",validityUnit:"有效期单位",sortOrder:"排序",forSale:"上架状态",onSale:"上架",offSale:"下架",group:"分组",groupId:"分组 ID",features:"功能特性",featuresHint:"每行一个特性",featuresPlaceholder:"输入套餐特性...",providerManagement:"服务商管理",providerManagementDesc:"管理支付服务商实例",createProvider:"创建服务商",editProvider:"编辑服务商",deleteProvider:"删除服务商",deleteProviderConfirm:"确定要删除此服务商吗?",providerName:"服务商名称",providerKey:"服务商标识",selectProviderKey:"选择服务商标识",providerConfig:"服务商配置",noProviders:"暂无服务商",noProvidersHint:"创建一个服务商实例以开始接受支付",supportedTypes:"支持的支付方式",supportedTypesHint:"选择此服务商支持的支付方式",rateMultiplier:"费率倍数",dashboardTitle:"支付概览",dashboardDesc:"充值订单统计与分析",daySuffix:"天",paymentConfigTitle:"支付配置",paymentConfigDesc:"管理支付服务商与相关设置",plansPageTitle:"订阅套餐管理",plansPageDesc:"管理订阅套餐配置",tabPlanConfig:"套餐配置",tabUserSubs:"用户订阅",selectGroup:"请选择分组",groupRequired:"请选择订阅分组",priceRequired:"价格必须大于 0",validityRequired:"有效期必须大于 0",groupMissing:"缺失",groupInfo:"分组信息",platform:"平台",rateMultiplierLabel:"倍率",dailyLimit:"日限额",weeklyLimit:"周限额",monthlyLimit:"月限额",unlimited:"无限制",searchUserSubs:"搜索用户订阅...",daily:"日",weekly:"周",monthly:"月",subsStatus:{active:"生效中",expired:"已过期",revoked:"已撤销"}}}};function p(r,s){for(const[l,d]of Object.entries(s)){const n=l.split("."),t=n.pop();if(!t)continue;let e=r;for(const i of n){const a=e[i];(!a||typeof a!="object"||Array.isArray(a))&&(e[i]={}),e=e[i]}e[t]===void 0&&(e[t]=d)}}p(o,{"admin.dashboard.newUsersToday":"New Users Today","admin.dashboard.active":"active","admin.dashboard.ok":"ok","admin.dashboard.err":"err","admin.dashboard.create":"Create","admin.dashboard.userUsageTrend":"User Usage Trend (Top 12)","admin.groups.claudeMaxSimulation.title":"Claude Max Usage Simulation","admin.groups.claudeMaxSimulation.tooltip":"When enabled, for Claude models without upstream cache-write usage, the system deterministically maps tokens to a small input plus 1h cache creation while keeping total tokens unchanged.","admin.groups.claudeMaxSimulation.enabled":"Enabled (simulate 1h cache)","admin.groups.claudeMaxSimulation.disabled":"Disabled","admin.groups.claudeMaxSimulation.hint":"Only token categories in usage billing logs are adjusted. No per-request mapping state is persisted.","admin.auditLogs.title":"Audit Logs","admin.auditLogs.auditLogId":"ID","admin.auditLogs.actionType":"Action Type","admin.auditLogs.userId":"User ID","admin.auditLogs.entityInfo":"Entity Info","admin.auditLogs.beforeAfter":"Changes","admin.auditLogs.operator":"Operator","admin.auditLogs.createdAt":"Created At","admin.auditLogs.actions.relationCreated":"Relation Created","admin.auditLogs.actions.commissionCreated":"Commission Created","admin.auditLogs.actions.commissionConfirmed":"Commission Confirmed","admin.auditLogs.actions.commissionCancelled":"Commission Cancelled","admin.auditLogs.actions.tierUpgraded":"Tier Upgraded","admin.auditLogs.actions.withdrawRequested":"Withdraw Requested","admin.auditLogs.actions.withdrawApproved":"Withdraw Approved","admin.auditLogs.actions.withdrawRejected":"Withdraw Rejected","admin.auditLogs.actions.kolGranted":"KOL Granted","admin.auditLogs.actions.kolRevoked":"KOL Revoked","payment.admin.allowUserRefund":"Allow User Refund","admin.accounts.autoResetCredit.title":"额度窗口自动重置","admin.accounts.autoResetCredit.hint":"当用量窗口剩ä
59½™é¢åº¦é™åˆ°é˜ˆå€¼æ—¶ï¼Œè‡ªåŠ¨é‡ç½®è¯¥çª—å£ï¼Œè´¦å·å¯ç»§ç»­è¢«è°ƒåº¦ã€‚","admin.accounts.autoResetCredit.threshold5h":"5 小时窗口阈值(%)","admin.accounts.autoResetCredit.threshold7d":"7 天窗口阈值(%)","admin.accounts.autoResetCredit.thresholdHint":"按窗口剩余百分比,范围 0.1–100。仅在开启自动重置后生效。","admin.accounts.autoResetCredit.thresholdInvalid":"自动重置阈值必须在 0.1 到 100 之间","admin.accounts.cnProviders.balanceProbeTooltip":"查询服务商余额接口","admin.accounts.cnProviders.probe":"探测","admin.accounts.oauth.grok.pleaseEnterSSOToken":"请输入 SSO Token","admin.accounts.oauth.grok.failedToValidateSSO":"SSO Token 校验失败","admin.accounts.oauth.grok.pleaseEnterPassword":"请输入 email----password","admin.accounts.oauth.grok.failedToAuthorizePassword":"密码授权失败","admin.accounts.status.tempUnschedulableUntil":"临时不可调度至 {time}","admin.accounts.tempUnschedulable.multipleErrorTrigger":"{minutes} 分钟内出现 {count} 次错误,已达到阈值 {threshold}","admin.accounts.tempUnschedulable.multipleErrorTriggerNoWindow":"出现 {count} 次错误,已达到阈值 {threshold}","admin.accounts.tempUnschedulable.multipleErrorCountInWindow":"{minutes} 分钟内出现 {count} 次错误","admin.accounts.tempUnschedulable.multipleErrorCount":"出现 {count} 次错误","admin.accounts.usageWindow.grokMonthlyLimit":"月额度","admin.accounts.usageWindow.grokPrepaid":"预付","admin.accounts.usageWindow.grokUsed":"已用","admin.channels.form.timePricingDayScope":"生效日期","admin.channels.form.timePricingEveryDay":"每天","admin.channels.form.timePricingWeekdaysOnly":"仅工作日生效(周一至周五)","admin.groups.explicitPricing.title":"显式定价","admin.groups.explicitPricing.description":"可选的搜索与语音单价。留空则走默认价表。","admin.groups.explicitPricing.searchPricePer1k":"搜索价 / 1K","admin.groups.explicitPricing.pricePlaceholder":"0 表示未设置","admin.groups.voicePricing.audioRealtimePerMin":"实时音频 / 分钟","admin.groups.voicePricing.audioTtsPerMillionChars":"TTS / 百万字符","admin.groups.voicePricing.audioSttPerHour":"STT / 小时","admin.groups.voicePricing.pricePlaceholder":"0 表示未设置","admin.users.concurrencyNonNegative":"并发数不能为负数","admin.users.form.concurrencyHint":"0 表示不额外限制该用户并发","admin.users.form.concurrencyPlaceholder":"并发数"});Object.assign(o,c);Object.assign(o.admin,{plugins:u.plugins});export{o as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.