export const zhTranslations = { // App / global appTitle: "Kimi Switch", loading: "加载中...", loadTimeout: "加载时间较长,如果一直卡住,请尝试重新启动应用。", loadFailed: "加载失败:", retry: "重试", saveConfig: "保存配置", reloadConfig: "读取配置", openConfigDir: "打开配置目录", unsavedConfirm: "有未保存修改,确定要重新读取配置吗?", validationNoApiKey: "缺少 API Key", validationNoBaseUrl: "缺少 Base URL", validationNoModels: "未配置模型", validationBlankModels: "存在未填写 model id 的模型:{aliases}", saveValidationConfirm: "以下供应商尚未完成配置,仍要保存吗?\n\n{details}\n\n(点击「确定」仍会保存到 config.toml;点击「取消」可继续编辑)", providerNotFound: "供应商不存在", backToList: "返回列表", syncToOmp: "同步到 OMP", syncedToOmp: "已同步到 OMP:", ompOverwriteConfirm: "OMP 中已存在供应商「{existing}」,是否替换为「{name}」?", deleteProviderConfirm: "确定删除供应商 {name}?", // Provider list providers: "供应商", dashboard: "用量仪表盘", sessions: "会话管理", addProvider: "添加供应商", noProviders: "暂无供应商", addFirstProvider: "添加第一个供应商", noUrl: "无 URL", modelCount: "{count} 个模型", ompActive: "OMP 活跃", defaultModel: "默认: {name}", edit: "编辑", delete: "删除", copyProvider: "复制供应商", testConnectivity: "测试连通性", testing: "测试中...", connectivityOk: "{name} 连通正常({latency}ms)", connectivitySlow: "{name} 连通较慢({latency}ms)", connectivityFail: "{name} 无法连通:{error}", copiedProvider: "已复制为 {name}", // Provider edit editProvider: "编辑供应商", back: "返回", basicInfo: "基本信息", modelMapping: "模型映射", configJson: "配置 JSON", providerName: "供应商名称", note: "备注", notePlaceholder: "例如:公司专用账号", officialUrl: "官网链接", managedProvider: "托管供应商(无需凭证)", kimiOAuthLogin: "Kimi 授权登录", kimiOAuthOpenPage: "打开授权页", kimiOAuthCopyCode: "复制授权码", kimiOAuthCodeCopied: "已复制", kimiOAuthWaiting: "请在打开的页面中输入授权码,等待授权中…", kimiOAuthSuccess: "授权成功,已写入 Kimi 登录凭据", kimiOAuthExpired: "授权码已过期,请重新开始", kimiOAuthDenied: "授权被拒绝", kimiOAuthTimeout: "授权超时,请重新开始", kimiOAuthRetry: "重新开始", kimiOAuthCancel: "取消", kimiOAuthNetworkError: "网络错误,正在重试…", apiSettings: "API 设置", apiFormat: "API 格式", authField: "认证字段", apiKey: "API Key", getApiKeyLink: "获取 API Key", show: "显示", hide: "隐藏", requestUrl: "请求地址", fullUrl: "完整 URL", baseUrlHint: "填写兼容 {type} API 的服务端点地址,不要以斜杠结尾", envPairs: "Env 键值对", addEnv: "+ 添加", modelMappingDesc: "显示名称只影响 /model 菜单;1M 只是给 Kimi Code 的上下文能力声明。", oneClickSetup: "一键设置", fetchModels: "获取模型列表", fetchingModels: "获取中...", discoveredModels: "发现 {count} 个模型", addSelected: "添加选中的", alreadyAdded: "已添加", displayName: "显示名称", actualModel: "实际请求模型", contextSize: "上下文长度", supports1M: "声明支持 1M", default: "默认", operation: "操作", isDefault: "已默认", setDefault: "设为默认", deleteModelConfirm: "确定删除模型 {alias}?", noModelMappings: "暂无模型映射", addModelMapping: "+ 添加模型映射", readOnlyPreview: "可编辑 JSON", apply: "应用", invalidJson: "JSON 格式错误:{message}", clickToSelectIcon: "点击选择图标", clickToChangeIcon: "点击更换图标", selectIcon: "选择图标", clearIcon: "清除图标", iconPickerSearch: "搜索图标", iconPickerSearchPlaceholder: "输入图标名称...", iconPickerNoResults: "未找到匹配的图标", // Agent / target target: "目标", targetKimi: "Kimi Code", targetOmp: "OMP", targetQwen: "Qwen Code", agent: "智能体", agentKimiCode: "Kimi Code", agentPi: "Pi", activate: "启用", activated: "已启用", disabled: "已停用", switchTo: "切换使用", inUse: "使用中", switchReloadHint: "切换供应商后,请在 Kimi Code 中执行 /reload 以生效。", reloadCopiedHint: "已切换供应商,/reload 已复制到剪贴板,请在 Kimi Code 中粘贴执行。", unsavedChanges: "未保存修改", qwenActivateNotImplemented: "Qwen Code 启用功能将在后续实现。", agentSettings: "全局配置", enableThinking: "启用思考", thinkingLevel: "思考等级", thinkingKeep: "保留思考内容", thinkingLow: "低", thinkingMedium: "中", thinkingHigh: "高", thinkingMax: "最大", thinkingContextHint: "启用思考会占用更多上下文,请确保模型上下文长度和预留空间足够。", loopControlSettings: "循环控制", maxRetriesPerStep: "单步重试次数", reservedContextSize: "上下文预留大小", backgroundSettings: "后台任务", maxRunningTasks: "最大并发数", keepAliveOnExit: "退出时保持运行", permissionRules: "权限规则", permissionDecision: "处置", permissionPattern: "模式", permissionAllow: "允许", permissionDeny: "拒绝", permissionAsk: "询问", addRule: "+ 添加规则", addCommonRules: "添加常用规则", hooks: "生命周期钩子", hookEvent: "事件", hookMatcher: "匹配器", hookCommand: "命令", hookTimeout: "超时", addHook: "+ 添加钩子", importConfig: "导入当前配置", importConfigConfirm: "导入会覆盖当前未保存的修改,是否继续?", importConfigFailed: "导入失败:{message}", capabilities: "能力标签", fetchEnableThinking: "为获取的模型启用思考", capThinking: "思考", capAlwaysThinking: "始终思考", capImageIn: "图像输入", capVideoIn: "视频输入", capToolUse: "工具调用", customCapabilities: "其他能力(逗号分隔)", // Sessions sessionsTitle: "会话管理", sessionsSubtitle: "按工作区查看、预览、归档或删除 Kimi Code 会话。归档不会删除数据。", workspaces: "工作区", workspaceIsolatedHint: "会话按工作区隔离存储", allWorkspaces: "全部工作区", emptyWorkspace: "空", deleteWorkspace: "删除工作区", noSessions: "暂无会话", statusActive: "活跃", statusArchived: "已归档", statusAll: "全部", selectAll: "全选", deselectAll: "取消全选", selectedCount: "已选 {n} 项", archive: "归档", unarchive: "取消归档", sessionTitle: "会话", workspace: "工作区", status: "状态", size: "大小", updated: "更新时间", actions: "操作", sessionsInView: "共 {n} 个会话", isolatedToWorkspace: "当前工作区", openPreview: "打开预览", scanning: "扫描中…", refresh: "刷新", refreshing: "刷新中…", loadStats: "加载 {ms} ms · 数据 {kb} KB", refreshed: "已刷新", cancel: "取消", confirmDeleteTitle: "永久删除会话?", confirmDeleteSession: "删除后无法恢复。若只是暂时不用,请改用归档。", confirmBulkTitle: "批量永久删除?", confirmBulkDelete: "将永久删除 {n} 个会话,此操作无法撤销。", confirmDeleteWorkspaceTitle: "删除空工作区?", confirmDeleteWorkspace: "仅允许删除没有任何会话的工作区。", deleteForever: "永久删除", previewTitle: "会话预览", previewHint: "仅展示角色与截断后的文本,不会暴露密钥或工具原始输出。", previewEmpty: "没有可预览的消息", previewTruncated: "预览已截断", roleUser: "用户", roleAssistant: "助手", roleSystem: "系统", // Heatmap noData: "暂无数据", heatLess: "少", heatMore: "多", requests: "请求", cacheHitRate: "缓存命中率", // Daily detail modal dayDetail: "每日用量详情", close: "关闭", totalTokens: "总 Token", cost: "费用", modelDistribution: "模型用量分布", providerDistribution: "供应商用量分布", modalEscHint: "按 Esc 或点击外部关闭", doubleClickHint: "双击查看详情", // Languages language: "语言", zh: "中文", en: "English", // Theme & Settings themeLight: "浅色", themeDark: "深色", themeAuto: "跟随系统", settings: "设置", settingsTitle: "设置", settingsAppearance: "外观", settingsUpdates: "更新", settingsAbout: "关于", checkUpdate: "检查更新", checking: "检查中…", upToDate: "已是最新版本", updateAvailable: "有新版本可用", currentVersion: "当前版本", latestVersion: "最新版本", downloadUpdate: "下载更新", downloading: "下载中…", downloadComplete: "下载完成,点击安装", install: "安装", updateCheckFailed: "检查更新失败", lastChecked: "上次检查", appDescription: "Windows 桌面端 LLM 供应商配置管理器", settingsWebsite: "官方网站", referenceProject: "引用项目", // Validation errors emptyProviderName: "供应商名称为空", duplicateProviderName: "重复的供应商名称:{0}", missingCredentials: "供应商「{0}」缺少凭证(api_key 或环境变量键)", ambiguousCredentials: "供应商「{0}」同时设置了直接凭证和 Env 凭证,只允许一种", missingVertexProject: "Vertex 供应商「{0}」缺少 GOOGLE_CLOUD_PROJECT 或 GOOGLE_CLOUD_LOCATION", emptyModelAlias: "模型别名为空", duplicateModelAlias: "重复的模型别名:{0}", unknownModelProvider: "模型「{0}」引用了未知供应商「{1}」", emptyModelId: "模型「{0}」的模型 ID 为空", invalidMaxContextSize: "模型「{0}」的 max_context_size 无效", // Dashboard — ranges / status rangeToday: "今天", range7d: "7 天", range30d: "30 天", rangeAll: "全部", dashLoadFailed: "加载失败", // Dashboard — KPI labels kpiRequests: "请求数", kpiInputOther: "非缓存输入", kpiOutput: "输出", kpiCacheRead: "缓存读", kpiCacheCreation: "缓存创建", kpiCacheHit: "缓存命中", kpiCost: "预估费用", // Dashboard — cards cardHeatmap: "全年热力图", cardHeatmapSub: "按 Token 量着色", cardDailyTrend: "用量趋势", cardDailyTrendSubCapped: "近 30 天 · 共 {n} 天", tabModelTrend: "模型用量趋势", tabProviderTrend: "供应商模型用量趋势", tabDailyTrend: "每日用量趋势", providerUnknown: "未知供应商", cardDailyTrendSub: "共 {n} 天", cardModelUsage: "模型用量", cardModelUsageSub: "{n} 个模型", cardRecent: "最近请求", cardRecentCapped: "显示前 {n} / {m} 条", cardRecentCount: "{n} 条", // Dashboard — table columns / units colModel: "模型", colTokens: "Token", colCacheHit: "缓存命中", colTime: "时间", colInput: "输入", colOutput: "输出", colCacheRead: "缓存读", unitTimes: "次", estimate: "估算", collapse: "收起", expandAll: "展开全部 ({n})", // Dashboard — pagination paginationPage: "第 {x} / {y} 页", paginationRange: "{x}–{y} 条", paginationPerPage: "每页 {n} 条", pageFirst: "首页", pagePrev: "上一页", pageNext: "下一页", pageLast: "末页", // Dashboard — footer / attribution footerScanned: "扫描 {n} 个文件 · {m} 条记录", attributionPorted: "仪表盘与会话管理功能基于", attributionSuffix: "(MIT,© JochenYang)", modelDataSourcePrefix: "新增模型与价格参考来自于", // Sessions — preview previewCollapseChars: "收起 · {n} 字符", previewExpandChars: "展开全文 · {n} 字符", // Provider presets presetPickerTitle: "选择预设供应商", presetSearchPlaceholder: "搜索预设供应商...", presetSortOriginal: "原始", presetSortAlpha: "A-Z", presetNoResults: "没有匹配的预设", presetCustomConfig: "+ 自定义配置", presetFooterHint: "预设只是一键填表,后续可继续修改所有字段。", presetCategoryOfficial: "官方", presetCategoryCnOfficial: "国产", presetCategoryThirdParty: "第三方", presetCategoryAggregator: "聚合", presetNameAnthropic: "Anthropic 官方", presetNameKimiCoding: "Kimi For Coding", presetNameMoonshot: "Moonshot 平台", presetNameDeepseek: "DeepSeek", presetNameZhipuApi: "智谱 GLM(按量)", presetNameZhipuCoding: "智谱 GLM Coding Plan", presetNameZaiApi: "z.ai(按量)", presetNameZaiCoding: "z.ai Coding Plan", presetNameBailian: "阿里百炼", presetNameMinimax: "MiniMax", presetNameMinimaxTokenPlan: "MiniMax Token Plan", presetNameStepfun: "阶跃星辰", presetNameStepfunPlan: "阶跃星辰 Step Plan", presetNameSiliconflow: "硅基流动", presetNameNovita: "Novita AI", presetNameOpenrouter: "OpenRouter", presetNameTokenRhythm: "基元律动", presetNameOpenai: "OpenAI 官方", presetNameGoogleGenai: "Google AI Studio", presetNameVolcengine: "火山方舟", presetNameOpencodeGo: "OpenCode Go", presetNameOpencodeZen: "OpenCode Zen", // Provider usage usageBalance: "余额", usageUsed: "已使用", usageRemaining: "剩余", usageRefresh: "刷新", usageRetry: "重试", usageQueryFailed: "查询失败", usageNetworkError: "网络异常", usageInvalidKey: "API Key 无效", usageResetIn: "{time} 后重置", usageResetDone: "已重置", usageLoading: "查询中…", usageQueryOk: "查询成功", // Usage config panel (cc-switch style) usageConfigTitle: "配置用量查询 - {name}", usageConfigBtn: "配置用量查询", usageEnable: "启用用量查询", usageTemplate: "查询模板", usageTemplateAuto: "自动检测", usageTemplateNewapi: "NewAPI 中转站", usageAutoDetectHint: "自动使用供应商的 API Key 和 Base URL 查询余额 / 套餐", usageNewapiHint: "查询 NewAPI / OneAPI 中转站的账号余额(需网页后台 Access Token,不是 sk- 推理 Key)", usageOAuthManagedHint: "官方 OAuth 托管:自动使用 Kimi Code 登录凭据查询订阅用量", usageDetectedKinds: "检测到的查询类型", usageNoKinds: "未识别(可切换到 NewAPI 模板手动配置)", usageBaseUrl: "查询地址 (Base URL)", usageAccessToken: "Access Token", usageAccessTokenPlaceholder: "网页后台生成的 Access Token", usageAccessTokenHint: "在 NewAPI 站点网页后台「个人设置 → Access Token」生成,不是 sk- 开头的推理 Key", usageUserId: "User ID", usageUserIdPlaceholder: "NewAPI 用户 ID(数字)", usageUserIdHint: "网页后台「个人中心」页面的用户 ID,用于 New-Api-User 请求头", usageAutoInterval: "自动查询间隔(分钟)", usageAutoIntervalHint: "0 表示不自动查询,仅在打开页面或手动刷新时查询", usageTimeout: "超时时间(秒)", usageTimeoutHint: "0 表示使用默认值(8 秒)", usageSupportedVars: "支持的变量", usageBack: "返回", usageNoKindsHint: "未识别此供应商的自动查询类型,请切换到 NewAPI 模板手动配置,或添加自定义查询脚本(即将支持)", usageSwitchToNewapi: "切换到 NewAPI 模板", usageUnsupportedProvider: "此供应商暂不支持自动查询", usageTier5h: "5小时", usageTierWeekly: "7天", usageErrNoKey: "未配置 API Key", usageErrDisabled: "用量查询已在配置面板中停用", usageErrLoginExpired: "Kimi Code 登录已过期且自动续期失败,请重新运行 `kimi login`", usageErrNoOauth: "未找到 Kimi Code 登录凭据,请先运行 `kimi login`", usageErrNewapiCreds: "NewAPI 模板需要填写 Access Token 和 User ID", usageTestQuery: "测试查询", usageUpdatedAgo: "{time}前", usageMinAgo: "{n} 分钟前", usageHourAgo: "{n} 小时前", usageDayAgo: "{n} 天前", // Billing mode (套餐 / 按量) billingTabSubscription: "套餐", billingTabPayAsYouGo: "按量", billingTabAll: "全部", billingBadgeSubscription: "套餐", billingBadgePayAsYouGo: "按量", // Usage trend line chart trendLineTitle: "用量趋势", trendLineSub: "最近 {n} 天", trendLineLegendTokens: "Token 用量", trendLineLegendCacheHit: "缓存命中率", trendLineLegendRequests: "请求数", trendLineShowRequests: "显示请求数", trendLineTooltip: "{date}\nToken: {tokens}\n命中率: {cache}\n请求: {req}", trendLineNoData: "暂无数据", } as const; export type TranslationKey = keyof typeof zhTranslations;