mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
f5c9da03f4
Result: {"status":"keep","total_issues":8,"golint_canonicalheader":0,"golint_errname":0,"golint_errorlint":1,"golint_exhaustive":0,"golint_forcetypeassert":0,"golint_gosec":0,"golint_intrange":0,"golint_modernize":3,"golint_nilnil":3,"golint_perfsprint":0,"golint_prealloc":0,"golint_recvcheck":1,"golint_usestdlibvars":0,"golint_wastedassign":0,"golint_total":8,"golint_test_testifylint":0,"golint_test_thelper":0,"golint_test_usetesting":0,"golint_test_total":0,"golint_vetx_total":0,"eslint_problems":0,"eslint_errors":0,"eslint_warnings":0,"tsc_errors":0,"measure_s":39}
4405 lines
197 KiB
JSON
4405 lines
197 KiB
JSON
{
|
||
"common": {
|
||
"save": "保存",
|
||
"cancel": "取消",
|
||
"confirm": "确认",
|
||
"delete": "删除",
|
||
"loading": "加载中...",
|
||
"retry": "重试",
|
||
"optional": "(可选)",
|
||
"settings": "设置",
|
||
"search": "搜索",
|
||
"unknownError": "发生错误,请重试",
|
||
"loadFailed": "加载失败"
|
||
},
|
||
"layout": {
|
||
"nav": {
|
||
"home": "首页",
|
||
"myFiles": "我的文件",
|
||
"users": "用户管理",
|
||
"tasks": "任务管理",
|
||
"storage": "存储管理",
|
||
"database": "数据管理",
|
||
"push": "通知推送",
|
||
"messageGateway": "消息通道",
|
||
"logs": "系统日志",
|
||
"system": "系统配置",
|
||
"adminSettings": "系统设置",
|
||
"demo": "规范示例",
|
||
"apiDocs": "接口文档",
|
||
"usageDocs": "使用文档",
|
||
"dashboard": "数据看板",
|
||
"nodes": "节点管理",
|
||
"proxyRoutes": "规则管理",
|
||
"websites": "域名列表",
|
||
"certificates": "TLS证书",
|
||
"dnsAccounts": "DNS账号",
|
||
"cloudflare": "Cloudflare",
|
||
"origins": "源站地址",
|
||
"responses": "响应页面",
|
||
"waf": "WAF",
|
||
"ipGroups": "IP 组",
|
||
"rateLimits": "限流",
|
||
"pages": "Pages",
|
||
"configVersions": "版本发布",
|
||
"accessLogs": "访问日志",
|
||
"performance": "性能调优",
|
||
"applyLogs": "应用日志"
|
||
},
|
||
"groups": {
|
||
"admin": "管理",
|
||
"docs": "文档库",
|
||
"security": "安全性",
|
||
"websites": "网站管理"
|
||
},
|
||
"user": {
|
||
"adminRole": "系统管理员",
|
||
"userRole": "普通用户",
|
||
"notLoggedIn": "未登录",
|
||
"syncing": "正在同步账户",
|
||
"profile": "我的资料",
|
||
"settings": "设置",
|
||
"help": "使用帮助",
|
||
"logout": "退出登录",
|
||
"unknownUser": "未知用户"
|
||
},
|
||
"logoutDialog": {
|
||
"title": "确认登出",
|
||
"description": "您确定要登出当前账户吗?",
|
||
"loggingOut": "正在登出,请稍候...",
|
||
"confirm": "确认登出",
|
||
"inProgress": "登出中...",
|
||
"failed": "登出失败",
|
||
"failedDescription": "登出时发生错误,请重试"
|
||
},
|
||
"header": {
|
||
"notifications": "通知",
|
||
"settings": "设置",
|
||
"search": "搜索",
|
||
"toggleFullWidth": "切换全宽",
|
||
"toggleTheme": "主题切换",
|
||
"changePasswordBanner": "为了您的账号安全,请立即修改密码!",
|
||
"changePasswordAction": "去修改密码",
|
||
"bannerTitle": "最新通知",
|
||
"bannerLink": "查看详情",
|
||
"dismiss": "关闭",
|
||
"guest": "访客"
|
||
},
|
||
"search": {
|
||
"categoryPage": "页面",
|
||
"categoryFeature": "功能",
|
||
"categorySetting": "设置",
|
||
"categoryAdmin": "管理",
|
||
"tipPrefix": "Tips:",
|
||
"tipSlash": "还可以使用 / 来打开此界面",
|
||
"tipArrow": "来切换选中项",
|
||
"tipNewTab": "在新标签页打开",
|
||
"tipDidYouKnow": "你知道吗:搜索功能还在持续升级中",
|
||
"searchPlaceholder": "搜索页面和功能...",
|
||
"noResults": "没有找到相关内容,换个词试试?",
|
||
"openInNewTab": "在新标签页打开",
|
||
"open": "打开",
|
||
"closeSearch": "关闭搜索界面",
|
||
"items": {
|
||
"globalSettings": "全局设置",
|
||
"appearance": "外观设置",
|
||
"homeDesc": "返回控制台总览",
|
||
"usageDocsDesc": "查看新手教程和集成示例",
|
||
"nodesDesc": "管理边缘节点、中继节点与内网穿透通道",
|
||
"proxyRoutesDesc": "配置反向代理、路由匹配规则、WAF 策略与缓存设置",
|
||
"websitesDesc": "管理托管域名及证书绑定与监听配置",
|
||
"certificatesDesc": "申请与管理 SSL/TLS 证书,支持自动续期",
|
||
"dnsAccountsDesc": "配置 DNS 服务商 API 凭证以自动申请证书及管理解析",
|
||
"originsDesc": "管理反向代理的目标后端服务器与负载均衡组",
|
||
"responsesDesc": "配置源站错误页与离线兜底联系页",
|
||
"wafDesc": "配置 Web 应用防火墙规则,阻断恶意请求",
|
||
"ipGroupsDesc": "定义 IP 地址列表以在 WAF 或路由中实现黑白名单控制",
|
||
"rateLimitsDesc": "配置边缘站点默认并发与带宽限流策略",
|
||
"pagesDesc": "上传或部署静态网页,提供全球 CDN 加速托管",
|
||
"configVersionsDesc": "查看、对比、发布与回滚系统配置版本",
|
||
"accessLogsDesc": "查看并检索全量网站访问请求日志与网络分析数据",
|
||
"applyLogsDesc": "查看节点配置下发、同步与生效的历史记录",
|
||
"performanceDesc": "调优网络连接、代理超时与核心系统性能参数",
|
||
"settingsDesc": "配置应用个人偏好选项",
|
||
"profileDesc": "编辑昵称、头像和个人属性",
|
||
"appearanceDesc": "配置系统显示主题(亮色/暗色)",
|
||
"adminSettingsDesc": "管理系统登录注册与认证源配置 (管理员专属)",
|
||
"systemDesc": "动态修改平台核心运行时配置 (管理员专属)",
|
||
"usersDesc": "管理平台注册用户的活跃状态 (管理员专属)",
|
||
"tasksDesc": "下发与排查后台异步定时任务 (管理员专属)",
|
||
"storageDesc": "查看、检索与清理上传到对象存储中的文件 (管理员专属)",
|
||
"databaseDesc": "监控数据库表大小、分页浏览物理表内容并支持交互式 SQL (管理员专属)",
|
||
"pushDesc": "配置与下发邮件、Lark 和 Telegram 渠道通知推送 (管理员专属)",
|
||
"logsDesc": "查看系统日志与后台异步任务执行日志 (管理员专属)"
|
||
}
|
||
},
|
||
"error": {
|
||
"loadFailed": "加载失败",
|
||
"retry": "重试",
|
||
"unknownError": "发生未知错误,请稍后重试",
|
||
"viewDetails": "查看详细错误信息",
|
||
"unknownErrorShort": "发生未知错误"
|
||
},
|
||
"loading": {
|
||
"loading": "加载中",
|
||
"loadingDesc": "正在获取活动数据..."
|
||
},
|
||
"empty": {
|
||
"noData": "暂无数据",
|
||
"noContent": "当前没有任何记录"
|
||
}
|
||
},
|
||
"auth": {
|
||
"login": {
|
||
"title": "登录到您的账号",
|
||
"description": "欢迎回来,请输入您的账号信息继续。",
|
||
"username": "邮箱或用户名",
|
||
"usernamePlaceholder": "输入邮箱或用户名",
|
||
"password": "密码",
|
||
"passwordPlaceholder": "输入您的密码",
|
||
"showPassword": "显示密码",
|
||
"hidePassword": "隐藏密码",
|
||
"submit": "登录",
|
||
"submitting": "登录中...",
|
||
"success": "登录成功",
|
||
"failed": "登录失败,请重试",
|
||
"incomplete": "邮箱/用户名或密码未填写完整",
|
||
"incompleteDesc": "请先输入邮箱/用户名和密码后再登录",
|
||
"capPending": "人机验证尚未完成,请稍候…",
|
||
"capRequired": "请先点击「开始验证」完成人机验证",
|
||
"orUse": "或者使用",
|
||
"oauthLogin": "{name} 登录",
|
||
"oauthFailed": "第三方登录失败",
|
||
"noAccount": "还没有账号?",
|
||
"registerNow": "立即注册",
|
||
"codeSent": "登录验证码已发送至您的邮箱,请注意查收",
|
||
"codeTipMasked": "已向您的安全邮箱 {email} 发送了登录验证码。",
|
||
"codeTipGeneric": "请输入您的登录验证码。",
|
||
"needBind": "您的第三方账号未绑定本地账号,系统已关闭注册。请登录已有本地账号进行绑定。",
|
||
"bindSuccess": "绑定成功",
|
||
"checkingSession": "正在检查登录状态",
|
||
"checkingSessionDesc": "请稍候,我们正在确认当前会话...",
|
||
"redirecting": "正在跳转至控制台...",
|
||
"verifyingCredentials": "正在验证凭据",
|
||
"establishingSession": "请稍候,我们正在为您建立安全会话..."
|
||
},
|
||
"otp": {
|
||
"title": "验证您的登录",
|
||
"description": "输入发送到安全邮箱的 6 位验证码。",
|
||
"code": "验证码",
|
||
"resend": "重新发送",
|
||
"resendIn": "{seconds}秒后重发",
|
||
"submit": "验证",
|
||
"submitting": "验证中...",
|
||
"help": "遇到登录问题?",
|
||
"contactSupport": "联系客服"
|
||
},
|
||
"register": {
|
||
"title": "创建您的账号",
|
||
"description": "填写以下信息,开始使用平台服务。",
|
||
"username": "用户名",
|
||
"usernamePlaceholder": "请输入用户名",
|
||
"nickname": "昵称",
|
||
"nicknamePlaceholder": "请输入昵称",
|
||
"email": "电子邮箱",
|
||
"emailPlaceholder": "请输入电子邮箱",
|
||
"password": "密码",
|
||
"passwordPlaceholder": "请输入密码(至少 8 位)",
|
||
"emailCode": "邮箱验证码",
|
||
"emailCodePlaceholder": "请输入 6 位邮箱验证码",
|
||
"getCode": "获取验证码",
|
||
"resendIn": "{seconds}秒后重发",
|
||
"submit": "创建账号",
|
||
"submitting": "注册中...",
|
||
"success": "注册并登录成功",
|
||
"failed": "注册失败,请重试",
|
||
"closed": "系统注册功能已关闭",
|
||
"codeSent": "验证码已发送至您的邮箱,请查收",
|
||
"sendCodeFailed": "发送验证码失败,请重试",
|
||
"emailRequired": "请先输入邮箱地址",
|
||
"emailInvalid": "请输入有效的邮箱地址",
|
||
"usernamePasswordRequired": "用户名和密码不能为空",
|
||
"passwordTooShort": "密码长度不能少于 8 位",
|
||
"emailEmpty": "邮箱不能为空",
|
||
"codeRequired": "验证码不能为空",
|
||
"capPending": "人机验证尚未完成,请稍候…",
|
||
"capRequired": "请先点击「开始验证」完成人机验证",
|
||
"hasAccount": "已经有账号?",
|
||
"backToLogin": "返回登录"
|
||
},
|
||
"capWidget": {
|
||
"clickToStart": "点击开始人机验证",
|
||
"waitingVerification": "等待人机验证…",
|
||
"verifying": "正在完成人机验证…",
|
||
"verificationPassed": "人机验证通过",
|
||
"verificationFailed": "人机验证失败",
|
||
"retry": "重试"
|
||
},
|
||
"requireAuth": {
|
||
"accessDenied": "访问被拒绝",
|
||
"noPermission": "您没有权限访问此页面"
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "设置",
|
||
"categories": {
|
||
"personal": "个人设置",
|
||
"account": "账户设置"
|
||
},
|
||
"items": {
|
||
"profile": "个人资料",
|
||
"profileDesc": "查看您的账户信息",
|
||
"accessToken": "访问令牌 (AccessToken)",
|
||
"accessTokenDesc": "管理用于 API 访问的个人 Token",
|
||
"notifications": "通知设置",
|
||
"notificationsDesc": "设置您的通知偏好",
|
||
"appearance": "外观设置",
|
||
"appearanceDesc": "自定义界面主题与显示"
|
||
},
|
||
"appearance": {
|
||
"breadcrumb": "外观设置",
|
||
"themeMode": "主题模式",
|
||
"themeModeDesc": "选择应用程序的整体明暗主题",
|
||
"modeLight": "明亮",
|
||
"modeDark": "黑暗",
|
||
"modeSystem": "自动",
|
||
"interface": "界面外观",
|
||
"interfaceDesc": "选择界面的配色方案和视觉风格",
|
||
"switched": "外观已切换为 {name}",
|
||
"switchFailed": "切换失败",
|
||
"language": "语言",
|
||
"languageDesc": "选择界面显示语言",
|
||
"comingSoon": "即将推出",
|
||
"comingSoonBody": "更多自定义选项正在开发中..."
|
||
},
|
||
"notifications": {
|
||
"breadcrumb": "通知设置",
|
||
"display": "通知显示",
|
||
"displayDesc": "设置通知相关的显示选项",
|
||
"showBell": "显示通知铃铛",
|
||
"showBellDesc": "在顶部导航栏中显示通知铃铛图标"
|
||
},
|
||
"accessToken": {
|
||
"breadcrumb": "访问令牌",
|
||
"title": "个人访问令牌 (AccessToken)",
|
||
"generate": "生成新令牌",
|
||
"securityTitle": "安全提示:",
|
||
"securityBody": "访问令牌具有您账户的完整接口调用权限。为了您的账户与资产安全,请切勿通过任何代码库提交、即时通讯工具或公共媒介泄露此令牌。推荐按需创建,不使用时及时撤销。",
|
||
"listTitle": "活动令牌列表",
|
||
"listDesc": "当前可用的所有访问令牌",
|
||
"userToken": "用户令牌",
|
||
"empty": "您当前暂无生成任何访问令牌",
|
||
"generateFirst": "生成第一个令牌",
|
||
"createTitle": "生成新令牌",
|
||
"createDesc": "请为新的访问令牌设置一个易于识别的名称,以便将来管理。",
|
||
"name": "令牌名称",
|
||
"adminHint": "开启后此令牌可访问 /admin/** 管理端点,默认关闭",
|
||
"generateAction": "生成令牌",
|
||
"readyTitle": "令牌密钥已就绪",
|
||
"readyBody": "这是您唯一一次能够查看此访问令牌明文密钥的机会。请立即将其复制并安全地保存。",
|
||
"nameRequired": "请输入令牌名称",
|
||
"createSuccess": "访问令牌创建成功",
|
||
"createFailed": "创建访问令牌失败",
|
||
"deleteSuccess": "访问令牌已撤销",
|
||
"deleteFailed": "删除访问令牌失败",
|
||
"rotateSuccess": "访问令牌轮换成功,旧密钥已失效",
|
||
"rotateFailed": "轮换访问令牌失败",
|
||
"deleteConfirm": "确定要删除并撤销令牌「{name}」吗?删除后此令牌将立即失效且不可恢复。",
|
||
"rotateConfirm": "确定要轮换令牌「{name}」的密钥吗?轮换后系统将生成全新密钥,原令牌密钥将立即失效。",
|
||
"deleteConfirmTitle": "确认撤销访问令牌",
|
||
"rotateConfirmTitle": "确认轮换访问令牌",
|
||
"confirmRevoke": "确认撤销",
|
||
"confirmRotate": "确认轮换",
|
||
"revoking": "撤销中...",
|
||
"rotating": "轮换中...",
|
||
"subtitle": "管理您的 API 访问密钥,用于开发或第三方工具直接调用系统 API",
|
||
"adminBadge": "管理员",
|
||
"adminPermission": "管理员权限",
|
||
"createdAt": "创建于: {date}",
|
||
"copy": "复制",
|
||
"rotate": "轮换",
|
||
"revoke": "撤销",
|
||
"copySuccess": "复制成功",
|
||
"copyFailed": "复制失败",
|
||
"namePlaceholder": "例如:my-development-key",
|
||
"generating": "正在生成...",
|
||
"importantTitle": "重要提示:",
|
||
"savedConfirm": "我已经复制并妥善保存"
|
||
},
|
||
"profile": {
|
||
"passwordChangeSuccess": "密码修改成功",
|
||
"passwordChangeFailed": "修改密码失败,请重试",
|
||
"passwordMismatch": "两次输入的新密码不一致",
|
||
"passwordTooShort": "新密码长度不能少于 8 位",
|
||
"profileUpdateSuccess": "个人信息修改成功",
|
||
"profileUpdateFailed": "修改个人信息失败,请重试",
|
||
"bindSourceFailed": "绑定认证源失败",
|
||
"avatarUploadSuccess": "头像上传成功,点击保存以生效",
|
||
"avatarUploadFailed": "上传头像失败",
|
||
"genderMale": "男",
|
||
"genderFemale": "女",
|
||
"genderSecret": "保密",
|
||
"title": "个人资料",
|
||
"userNotFound": "未找到用户信息",
|
||
"breadcrumbSettings": "设置",
|
||
"breadcrumbProfile": "个人资料",
|
||
"basicInfo": "基本资料",
|
||
"basicInfoDesc": "您的个人账户基本信息",
|
||
"editProfile": "编辑资料",
|
||
"account": "账户",
|
||
"nickname": "昵称",
|
||
"notSet": "未设置",
|
||
"uid": "用户ID (UID)",
|
||
"email": "邮箱",
|
||
"notBound": "未绑定",
|
||
"phone": "手机号码",
|
||
"gender": "性别",
|
||
"website": "个人网站",
|
||
"location": "所在地",
|
||
"isAdmin": "管理员身份",
|
||
"yes": "是",
|
||
"no": "否",
|
||
"bio": "个人简介",
|
||
"bioDefault": "这个人很懒,什么都没有留下。",
|
||
"changePassword": "修改密码",
|
||
"changePasswordDesc": "更改您的账号密码以确保安全。密码长度不能少于 8 位。",
|
||
"passwordRiskWarning": "密码风险提示",
|
||
"mustChangePassword": "为了账号安全,您必须修改初始密码。",
|
||
"currentPassword": "当前密码",
|
||
"currentPasswordPlaceholder": "请输入当前密码",
|
||
"newPassword": "新密码",
|
||
"newPasswordPlaceholder": "新密码(至少 8 位)",
|
||
"confirmNewPassword": "确认新密码",
|
||
"confirmNewPasswordPlaceholder": "确认新密码",
|
||
"submitting": "提交中...",
|
||
"confirmChange": "确认修改",
|
||
"thirdPartyBinding": "第三方账号绑定",
|
||
"thirdPartyBindingDesc": "管理并关联您的第三方授权账户,便于快捷登录与验证",
|
||
"boundAccounts": "已绑定账号",
|
||
"noAccountIdentifier": "未提供账号标识",
|
||
"unbind": "解绑",
|
||
"bindingRemoved": "绑定已移除",
|
||
"noBoundAccounts": "暂无绑定的第三方账号",
|
||
"bindNewAccount": "绑定新账号",
|
||
"bindSource": "绑定 {name}",
|
||
"noAvailableSources": "暂无可用第三方认证源",
|
||
"editProfileTitle": "编辑个人资料",
|
||
"editProfileDesc": "修改您的基本信息,保存后立即生效。",
|
||
"uploadAvatar": "点击上传/修改头像",
|
||
"nicknamePlaceholder": "请输入您的昵称",
|
||
"emailPlaceholder": "请输入您的邮箱",
|
||
"phonePlaceholder": "请输入手机号",
|
||
"genderPlaceholder": "选择性别",
|
||
"locationPlaceholder": "如:北京",
|
||
"bioPlaceholder": "介绍一下自己吧...",
|
||
"cancel": "取消",
|
||
"saving": "保存中...",
|
||
"saveChanges": "保存修改",
|
||
"cropAvatar": "裁剪头像",
|
||
"cropAvatarDesc": "调整头像位置和大小,使其处于居中圆形区域内。"
|
||
},
|
||
"botBinding": {
|
||
"title": "绑定机器人",
|
||
"description": "把 Telegram / QQ 私聊身份绑定到此账号,向机器人发消息即可入库。",
|
||
"bound": "已绑定",
|
||
"empty": "尚未绑定任何机器人",
|
||
"unbind": "解绑",
|
||
"bind": "绑定配对码",
|
||
"bindDialogTitle": "绑定机器人",
|
||
"bindDialogDescription": "选择一个已启用的通道,并输入机器人发给你的配对码。",
|
||
"selectChannel": "选择通道",
|
||
"pairingCode": "配对码",
|
||
"pairingCodePlaceholder": "ABCD-EFGH",
|
||
"submit": "绑定",
|
||
"cancel": "取消",
|
||
"bindSuccess": "绑定成功",
|
||
"bindFailed": "绑定失败",
|
||
"unbindSuccess": "已解绑",
|
||
"unbindFailed": "解绑失败",
|
||
"platformUserId": "平台用户 ID",
|
||
"noChannels": "暂无可用通道,请联系管理员添加。",
|
||
"typeTelegram": "Telegram",
|
||
"typeQQ": "QQ",
|
||
"loadFailed": "加载绑定失败"
|
||
},
|
||
"security": {
|
||
"passwordLoginEnabled": "允许密码登录",
|
||
"passwordLoginEnabledDesc": "关闭后仅保留第三方 OIDC 认证源进行系统登录。",
|
||
"registrationEnabled": "允许注册",
|
||
"registrationEnabledDesc": "关闭后系统将禁止新用户进行自主账号注册。",
|
||
"passwordRegisterEnabled": "允许密码注册",
|
||
"passwordRegisterEnabledDesc": "关闭后只能通过管理员创建或第三方认证关联建号。",
|
||
"oidcLoginEnabled": "允许 OIDC 登录",
|
||
"oidcLoginEnabledDesc": "关闭后所有的第三方 OIDC 认证登录入口都会被隐藏。",
|
||
"emailLoginVerification": "邮箱登录验证",
|
||
"emailLoginVerificationDesc": "开启后,使用账号密码登录时需要通过邮箱接收并验证 6 位验证码。",
|
||
"emailRegisterVerification": "邮箱注册验证",
|
||
"emailRegisterVerificationDesc": "开启后,用户注册账号时需要通过邮箱接收并验证 6 位验证码。",
|
||
"loginSessionTTLUpdated": "登录状态保持时间已更新",
|
||
"updateConfigFailed": "更新配置失败",
|
||
"invalidHours": "请输入有效的过期小时数(正整数)",
|
||
"securityConfigUpdated": "系统安全配置已更新",
|
||
"authSourceStatusUpdated": "认证源状态已更新",
|
||
"toggleStatusFailed": "切换状态失败",
|
||
"authSourceDeleted": "认证源已删除",
|
||
"deleteAuthSourceFailed": "删除认证源失败",
|
||
"captchaConfigSaved": "人机验证配置已成功保存",
|
||
"saveConfigFailed": "保存配置失败",
|
||
"loginRegistrationSettings": "系统登录/注册设置",
|
||
"loginRegistrationSettingsDesc": "配置系统的登录限制与用户自主注册权限",
|
||
"loginSessionTTL": "登录状态保持时间",
|
||
"loginSessionTTLDesc": "配置用户登录会话在浏览器中的保持期限。设置为\"关闭\"则在浏览器关闭后自动退登。",
|
||
"selectRetentionTime": "选择保留时间",
|
||
"sessionOff": "关闭 (浏览器关闭自动退登)",
|
||
"session7Days": "7 天",
|
||
"session30Days": "30 天",
|
||
"sessionNeverExpire": "永不过期",
|
||
"sessionCustom": "自定义时长",
|
||
"hoursPlaceholder": "小时",
|
||
"authSourceManagement": "认证源管理",
|
||
"authSourceManagementDesc": "添加、修改并启用系统自定义的 OIDC 认证源",
|
||
"addAuthSource": "新增认证源",
|
||
"enabled": "已启用",
|
||
"disabled": "已禁用",
|
||
"identifier": "标识符",
|
||
"type": "类型",
|
||
"secretConfigured": "Secret 已配置",
|
||
"secretNotConfigured": "Secret 未配置",
|
||
"deleteAuthSourceConfirm": "确定删除认证源「{name}」吗?删除后无法恢复。",
|
||
"deleteAuthSourceTitle": "确认删除认证源",
|
||
"confirmDelete": "确认删除",
|
||
"deleting": "删除中...",
|
||
"noAuthSources": "暂无配置的认证源,点击上方按钮新增",
|
||
"captchaConfig": "人机验证配置 (Cap CAPTCHA)",
|
||
"captchaConfigDesc": "配置基于 Proof-of-Work (PoW) 的无感人机验证,保护系统登录免受暴力破解和撞库攻击",
|
||
"autoStartSolving": "打开页面后自动开始计算",
|
||
"challengeCount": "难题数量 (Count)",
|
||
"challengeCountDesc": "客户端需求解的难题总数。默认 1,推荐 1 至 5",
|
||
"challengeDifficulty": "验证难度 (Difficulty)",
|
||
"challengeDifficultyDesc": "PoW 前缀哈希位数,每加 1 计算时间翻倍。默认 4,推荐 4",
|
||
"challengeSize": "盐值长度 (Size)",
|
||
"challengeSizeDesc": "难题盐值混淆字符长度。默认 32",
|
||
"challengeTTL": "难题超时时长 (秒)",
|
||
"challengeTTLDesc": "难题有效期限。默认 600 秒 (10 分钟)",
|
||
"tokenTTL": "验证凭证有效时长 (秒)",
|
||
"tokenTTLDesc": "PoW 计算求解通过后,签发的登录凭证有效时长。默认 1200 秒 (20 分钟)",
|
||
"saving": "保存中...",
|
||
"saveConfig": "保存配置"
|
||
},
|
||
"system": {
|
||
"addressAutoDetected": "已自动获取当前域名并填充",
|
||
"configUpdated": "配置已更新",
|
||
"updateConfigFailed": "更新配置失败",
|
||
"generalConfigSaved": "通用配置已成功保存",
|
||
"saveConfigFailed": "保存配置失败",
|
||
"smtpConfigSaved": "SMTP 邮件配置已成功保存",
|
||
"connectingTest": "正在发起连接测试...",
|
||
"testEmailSent": "测试邮件发送成功",
|
||
"sendFailedCheckConfig": "发送失败,请检查配置和日志。",
|
||
"testEmailFailed": "测试邮件发送失败",
|
||
"requestFailed": "请求发送失败",
|
||
"requestError": "[请求错误]",
|
||
"testRequestFailed": "测试请求发送失败",
|
||
"enterTargetEmail": "请输入目标邮箱地址",
|
||
"generalSettings": "通用设置",
|
||
"generalSettingsDesc": "配置站点标识、服务地址与搜索引擎收录策略",
|
||
"siteName": "站点名称",
|
||
"siteNameDesc": "用于网页标题、登录注册页面、管理后台与系统邮件。",
|
||
"serverAddress": "服务器访问地址",
|
||
"useCurrentDomain": "使用当前域名",
|
||
"serverAddressDesc": "限定 API 的允许来源;留空将开放任意来源访问。",
|
||
"searchEngineIndexing": "搜索引擎抓取与收录",
|
||
"indexingAllowed": "允许收录",
|
||
"indexingDenied": "禁止收录",
|
||
"searchEngineIndexingDesc": "控制 Google、Baidu、Bing 等搜索引擎是否可以索引公开页面。",
|
||
"addressChangeWarning": "地址变更会影响跨域访问策略,请填写完整协议与域名。",
|
||
"saving": "保存中...",
|
||
"saveConfig": "保存配置",
|
||
"smtpSettings": "SMTP 邮件设置",
|
||
"smtpSettingsDesc": "配置系统的邮件发送服务 (SMTP)",
|
||
"smtpHost": "SMTP 服务器地址",
|
||
"smtpPort": "SMTP 端口",
|
||
"smtpUsername": "SMTP 账户",
|
||
"smtpPassword": "SMTP 访问凭证",
|
||
"smtpPasswordMasked": "•••••• (已配置,留空或输入新值)",
|
||
"smtpPasswordPlaceholder": "输入凭证密码",
|
||
"testSend": "测试发件",
|
||
"smtpTestTitle": "SMTP 发件测试",
|
||
"smtpTestDesc": "输入接收测试邮件的邮箱地址。系统将使用您在表单中当前填写的 SMTP 配置进行发件测试。",
|
||
"targetEmail": "目标邮箱地址",
|
||
"connectionLog": "连接与传输日志",
|
||
"testSuccess": "测试成功!邮件已顺利发出。",
|
||
"testFailed": "测试失败",
|
||
"close": "关闭",
|
||
"testing": "测试中...",
|
||
"startTest": "开始测试"
|
||
},
|
||
"other": {
|
||
"menuDisplayUpdated": "目录显示配置已更新",
|
||
"updateConfigFailed": "更新配置失败",
|
||
"menuDisplayManagement": "目录显示管理",
|
||
"menuDisplayManagementDesc": "配置系统左侧菜单的显示与隐藏状态,适用于所有登录用户。",
|
||
"notHideable": "不可隐藏",
|
||
"securityTipTitle": "安全提示:",
|
||
"securityTipDesc": "为了防止管理员在关闭\"系统设置\"后导致无法重新访问此配置页,系统限制了\"系统设置\"的关闭权限。其它所有菜单均可自由开关,隐藏后对应的分组标题在为空时也会自动隐藏。",
|
||
"groupBusiness": "业务菜单",
|
||
"groupAdmin": "管理菜单",
|
||
"groupDocs": "文档菜单",
|
||
"descDashboard": "查看边缘节点请求、访客与流量等多维度图表看板",
|
||
"descNodes": "注册与管理反向代理边缘节点服务状态",
|
||
"descProxyRoutes": "配置和发布反代路由规则、负载均衡与源站绑定",
|
||
"descWebsites": "配置站点根域名并查看关联网站详情",
|
||
"descCertificates": "管理和下发网站 SSL/TLS 证书",
|
||
"descDnsAccounts": "配置 Cloudflare/Alidns 等 DNS 服务商 API 凭证",
|
||
"descOrigins": "集中维护和管理后端业务源站服务器组",
|
||
"descWaf": "配置 Web 应用防火墙自定义规则与频率限制",
|
||
"descIpGroups": "管理黑白名单 IP 集合,用于 WAF 规则过滤",
|
||
"descPages": "托管和发布静态网页项目,支持自动关联域名",
|
||
"descConfigVersions": "查看规则快照版本并进行配置热更新分发与回滚",
|
||
"descAccessLogs": "多维度实时浏览边缘节点请求访问明细",
|
||
"descPerformance": "配置缓存、图片压缩等页面性能加速策略",
|
||
"descUsers": "查看和管理系统用户列表及其状态",
|
||
"descTasks": "查看和调度系统异步及定时任务",
|
||
"descStorage": "管理系统文件存储和清理无用文件",
|
||
"descDatabase": "监控物理数据库状态、分页浏览表数据及交互式 SQL 查询",
|
||
"descPush": "配置和发送系统通知及推送消息",
|
||
"descLogs": "查看异步任务执行日志和系统运行情况",
|
||
"descSystem": "管理和维护系统基础键值对配置",
|
||
"descAdminSettings": "配置安全验证、邮箱服务及目录显示",
|
||
"descUsageDocs": "面向开发与运营的部署使用指南"
|
||
},
|
||
"templates": {
|
||
"templateCreated": "通知模板已成功创建",
|
||
"createTemplateFailed": "创建模板失败",
|
||
"templateSaved": "通知模板已成功保存",
|
||
"updateTemplateFailed": "修改模板失败",
|
||
"templateDeleted": "通知模板已删除",
|
||
"deleteTemplateFailed": "删除模板失败",
|
||
"templateManagement": "通知模板管理",
|
||
"templateManagementDesc": "配置与编辑系统各类场景的通知邮件/短信模板,支持动态变量渲染",
|
||
"addTemplate": "新增模板",
|
||
"systemBuiltIn": "系统内置",
|
||
"custom": "自定义",
|
||
"identifier": "标识符",
|
||
"subject": "主题",
|
||
"deleteTemplateConfirm": "确定删除模板「{name}」吗?删除后无法恢复。",
|
||
"deleteTemplateTitle": "确认删除模板",
|
||
"confirmDelete": "确认删除",
|
||
"deleting": "删除中...",
|
||
"noTemplates": "暂无配置的通知模板,点击上方按钮新增",
|
||
"editTemplate": "编辑通知模板",
|
||
"addTemplateTitle": "新增通知模板",
|
||
"templateDesc": "配置模板渲染逻辑,支持 Go `text/template` 语法(例如 `{{.Code}}` 表示验证码变量)。",
|
||
"templateKey": "模板标识符 (Key)",
|
||
"templateKeyDesc": "模板的唯一标识,在代码中通过此 Key 调用。",
|
||
"templateName": "模板名称",
|
||
"templateNameDesc": "用于后台识别该模板的可读名称。",
|
||
"templateType": "模板类型",
|
||
"templateTypeDesc": "模板分类标识,目前支持 `email`。",
|
||
"templateSubject": "模板主题 (Subject)",
|
||
"templateSubjectDesc": "邮件标题(类型为 email 时生效)。",
|
||
"templateDescription": "模板说明与变量描述",
|
||
"templateContent": "模板正文内容 (Content)",
|
||
"cancel": "取消",
|
||
"saving": "保存中...",
|
||
"saveConfig": "保存配置"
|
||
},
|
||
"info": {
|
||
"upgradeVerified": "升级包已校验完成,服务正在重启",
|
||
"applyUpgradeFailed": "应用升级失败",
|
||
"appUpdate": "应用更新",
|
||
"appUpdateDesc": "检查上游 GitHub Actions Release 并升级当前服务",
|
||
"newVersionAvailable": "发现新版本",
|
||
"alreadyLatest": "已是最新",
|
||
"cannotGetVersion": "无法获取上游版本信息",
|
||
"recheck": "重新检查",
|
||
"currentVersion": "当前版本",
|
||
"latestVersion": "最新版本",
|
||
"buildTime": "构建时间",
|
||
"platform": "运行平台",
|
||
"upstreamRepo": "上游仓库",
|
||
"releaseAsset": "Release 资产",
|
||
"releaseNotes": "更新说明",
|
||
"checkUpdate": "检查更新",
|
||
"viewRelease": "查看 Release",
|
||
"upgradeNow": "立即升级",
|
||
"upgradeTo": "升级到 {version}?",
|
||
"upgradeDesc": "服务将下载并校验 {asset},随后替换当前二进制并重启。请确保安装目录可写,且服务允许原地重启。",
|
||
"cancel": "取消",
|
||
"confirmUpgrade": "确认升级",
|
||
"devBuildNoUpgrade": "开发构建没有可比较的 Release 版本,不能执行自动升级。",
|
||
"platformNotSupported": "当前平台暂不支持自动替换二进制,请从 Release 页面手动升级。",
|
||
"noUpgradeNeeded": "当前版本无需升级。"
|
||
},
|
||
"operation": {
|
||
"whitelistUpdated": "文件访问白名单已更新",
|
||
"updateWhitelistFailed": "更新白名单失败",
|
||
"fileAccessControl": "文件访问权限控制",
|
||
"fileAccessControlDesc": "配置免登录直接访问的文件业务类型。不在白名单内的文件将要求登录鉴权。",
|
||
"addAuthFreeType": "添加免鉴权类型:",
|
||
"selectBusinessType": "选择业务类型...",
|
||
"allTypesAdded": "所有类型已添加",
|
||
"currentAuthFreeList": "当前免鉴权列表",
|
||
"whitelistEmpty": "白名单已空,所有类型文件的访问都将需要登录。",
|
||
"typeAvatar": "头像 (avatar)",
|
||
"typeAttachment": "附件 (attachment)",
|
||
"typeDoc": "文档 (doc)",
|
||
"typeGeneric": "通用 (generic)",
|
||
"logRetentionTitle": "日志保留时间",
|
||
"logRetentionDesc": "配置各日志数据库的日志保留天数,切换日志数据库后自动按对应配置清理过期日志。",
|
||
"days": "天",
|
||
"save": "保存",
|
||
"logRetentionUpdated": "日志保留时间已更新",
|
||
"logRetentionUpdateFailed": "更新日志保留时间失败",
|
||
"retentionInvalid": "{label}必须为大于等于 1 的整数",
|
||
"retentionPostgresDesc": "访问日志与可观测指标统一保留天数",
|
||
"retentionSqliteDesc": "SQLite 日志保留天数",
|
||
"retentionClickhouseDesc": "ClickHouse 日志保留天数"
|
||
},
|
||
"authSourceModal": {
|
||
"authSourceSaved": "认证源已保存",
|
||
"saveAuthSourceFailed": "保存认证源失败",
|
||
"editAuthSource": "编辑认证源",
|
||
"addAuthSource": "新增认证源",
|
||
"editAuthSourceDesc": "修改系统自定义的 OIDC 认证源参数。",
|
||
"addAuthSourceDesc": "配置新的自定义 OIDC 认证源。",
|
||
"identifier": "标识符 (英文名称)",
|
||
"displayName": "展示名称",
|
||
"keepOriginalIfEmpty": "留空则保留原值",
|
||
"discoveryURL": "Discovery URL (OIDC 发行方 URL)",
|
||
"iconURL": "图标 URL (可选)",
|
||
"enableAuthSource": "启用认证源",
|
||
"enableAuthSourceDesc": "启用后会立即显示在登录页和账号绑定中。",
|
||
"cancel": "取消",
|
||
"saving": "保存中...",
|
||
"save": "保存"
|
||
}
|
||
},
|
||
"admin": {
|
||
"files": {
|
||
"pageTitle": "存储管理",
|
||
"tabStats": "文件存储信息",
|
||
"tabList": "文件列表",
|
||
"tabStorage": "存储配置",
|
||
"stats": {
|
||
"noData": "暂无上传数据",
|
||
"noDataDesc": "上传文件后即可在此查看容量与文件分布分析。",
|
||
"totalFiles": "总文件数",
|
||
"countUnit": "个",
|
||
"totalFilesDesc": "您上传的可用文件数量汇总",
|
||
"totalSize": "占用存储容量",
|
||
"totalSizeDesc": "文件实际在磁盘/S3中占用的总空间",
|
||
"weeklyNewFiles": "近 7 天新增文件",
|
||
"weeklyNewFilesDesc": "最近 7 天上传成功的文件总数",
|
||
"weeklyNewSize": "近 7 天新增大小",
|
||
"weeklyNewSizeDesc": "最近 7 天上传所消耗的存储带宽",
|
||
"trendTitle": "最近 7 天新增趋势",
|
||
"trendDesc": "按日统计近一周期内的上传波动",
|
||
"trendCount": "新增数量 (个)",
|
||
"trendSize": "新增大小 (MB)",
|
||
"chartLabelCount": "新增文件数",
|
||
"chartLabelSize": "新增大小",
|
||
"countDistTitle": "文件格式数量分布",
|
||
"countDistDesc": "各种格式类型的文件个数占比",
|
||
"noCategoryData": "暂无分类数据",
|
||
"maxCountHint": "文件类型中数量最多的是「{name}」,累计上传了 {count} 个文件。",
|
||
"sizeDistTitle": "文件占用容量分布",
|
||
"sizeDistDesc": "各种格式类型的文件大小占比",
|
||
"noSizeData": "暂无容量数据",
|
||
"maxSizeHint": "文件类型中占用存储最大的是「{name}」,共消耗了 {size} 存储容量。",
|
||
"catImages": "图片",
|
||
"catVideos": "视频",
|
||
"catAudio": "音频",
|
||
"catDocuments": "文档",
|
||
"catArchives": "压缩包",
|
||
"catOthers": "其他",
|
||
"none": "无"
|
||
},
|
||
"list": {
|
||
"searchPlaceholder": "搜索文件名...",
|
||
"selectAll": "全选本页",
|
||
"deselectAll": "取消全选",
|
||
"selectedCount": "已选 {count} 个",
|
||
"batchDownload": "打包下载",
|
||
"batchDownloadSuccess": "批量下载已开始",
|
||
"batchDownloadFailed": "批量下载失败",
|
||
"totalFiles": "共 {count} 个文件",
|
||
"noMatch": "没有匹配的文件",
|
||
"noFiles": "您还没有上传任何文件",
|
||
"colPreview": "预览",
|
||
"colName": "文件名",
|
||
"colPath": "路径",
|
||
"colType": "业务类别",
|
||
"colMime": "MIME类型",
|
||
"colSize": "大小",
|
||
"colUploadedAt": "上传时间",
|
||
"colActions": "操作",
|
||
"viewDetail": "查看详情",
|
||
"download": "下载",
|
||
"delete": "删除",
|
||
"prevPage": "上一页",
|
||
"nextPage": "下一页",
|
||
"detailTitle": "文件详情",
|
||
"detailDesc": "查看文件的完整元数据与配置属性。",
|
||
"detailId": "文件 ID",
|
||
"detailName": "文件名",
|
||
"detailPath": "存储路径",
|
||
"detailSize": "大小",
|
||
"bytes": "字节",
|
||
"detailMime": "MIME 类型",
|
||
"detailExtension": "文件后缀",
|
||
"detailBizType": "业务类型",
|
||
"detailDriver": "存储驱动",
|
||
"detailUploaderId": "上传者 ID",
|
||
"detailUploadedAt": "上传时间",
|
||
"detailMetadata": "额外元数据",
|
||
"deleteTitle": "确认删除文件",
|
||
"deleteConfirm": "确定要删除文件「{name}」吗?此操作不可撤销。",
|
||
"cancel": "取消",
|
||
"confirmDelete": "确认删除",
|
||
"deleteSuccess": "文件已删除",
|
||
"deleteFailed": "删除失败",
|
||
"extensionFile": "{ext} 文件"
|
||
},
|
||
"storage": {
|
||
"maintenanceMode": "存储维护模式",
|
||
"maintenanceDesc": "{source} → {target}。迁移期间文件只允许读取,禁止上传、删除和清理。",
|
||
"migrationProgress": "迁移进度请查看任务执行日志:{taskId}",
|
||
"notDispatched": "尚未下发",
|
||
"retryMigration": "重试迁移",
|
||
"fileStorage": "文件存储",
|
||
"fileStorageDesc": "默认使用本地存储。配置系统文件的存储媒介,切换存储类型且已有文件时,系统会自动进入维护模式并迁移文件。",
|
||
"storageType": "存储类型",
|
||
"rootDir": "根目录",
|
||
"endpoint": "服务地址",
|
||
"username": "用户名",
|
||
"password": "密码",
|
||
"basePath": "基础路径",
|
||
"switchWarning": "⚠️ 您已切换存储类型。点击「保存配置」将立即切换活动存储引擎,并同步更新已有文件的存储驱动标记。仅在需要复制物理文件时才使用「开始迁移」。",
|
||
"saveConfig": "保存配置",
|
||
"startMigration": "开始迁移",
|
||
"keyPrefix": "对象前缀",
|
||
"cdnUrl": "CDN 地址",
|
||
"pathStyleDesc": "MinIO 等自托管 S3 通常需要开启。",
|
||
"saveSuccess": "存储配置已保存",
|
||
"saveFailed": "保存存储配置失败",
|
||
"migrateSuccess": "存储迁移任务已下发",
|
||
"migrateFailed": "下发存储迁移任务失败",
|
||
"retrySuccess": "存储迁移任务已重新下发",
|
||
"retryFailed": "运行存储迁移失败",
|
||
"driverLocal": "本地文件系统",
|
||
"driverS3": "AWS S3",
|
||
"driverR2": "Cloudflare R2",
|
||
"driverMinio": "MinIO",
|
||
"driverOss": "阿里云 OSS",
|
||
"driverWebdav": "WebDAV",
|
||
"driverUnknown": "未知"
|
||
}
|
||
},
|
||
"users": {
|
||
"pageTitle": "用户管理",
|
||
"createUser": "新增用户",
|
||
"colUser": "用户",
|
||
"colEmail": "邮箱",
|
||
"colLastLogin": "上次登陆",
|
||
"colRegisteredAt": "注册时间",
|
||
"colLastUpdate": "上次更新",
|
||
"colActions": "操作",
|
||
"loadingUsers": "加载用户列表中...",
|
||
"noUsers": "暂无用户数据",
|
||
"adminAccount": "管理员账户",
|
||
"disableAccount": "禁用账户",
|
||
"enableAccount": "启用账户",
|
||
"viewDetail": "查看详情",
|
||
"editUser": "编辑用户",
|
||
"editTitle": "编辑用户",
|
||
"editDesc": "修改用户档案、授予/撤销管理权限或重置其密码。",
|
||
"usernameImmutable": "用户名 (不可修改)",
|
||
"nicknameOptional": "昵称 (选填)",
|
||
"nicknamePlaceholder": "请输入昵称",
|
||
"email": "邮箱",
|
||
"emailPlaceholder": "请输入邮箱地址",
|
||
"resetPasswordOptional": "重置密码 (选填)",
|
||
"resetPasswordPlaceholder": "留空表示保持当前密码,输入则重置 (至少 8 位)",
|
||
"adminPermission": "管理员权限",
|
||
"adminPermissionDesc": "开启后此账号将拥有后台管理权限。",
|
||
"cannotRevokeSelfAdmin": "不能撤销当前登录用户的管理员权限。",
|
||
"deleteUser": "删除用户",
|
||
"cancel": "取消",
|
||
"save": "保存",
|
||
"saving": "保存中...",
|
||
"deleteConfirmTitle": "确认删除用户",
|
||
"deleteConfirmDesc": "确定要删除用户 {name} 吗?该操作会移除用户账号,删除后无法撤销。",
|
||
"confirmDelete": "确认删除",
|
||
"createTitle": "新增用户",
|
||
"createDesc": "直接创建一个本地密码登录的新账户。",
|
||
"username": "用户名",
|
||
"usernamePlaceholder": "请输入用户名 (至少 3 位)",
|
||
"password": "密码",
|
||
"passwordPlaceholder": "请输入登录密码 (至少 8 位)",
|
||
"enableAccountLabel": "启用账户",
|
||
"enableAccountDesc": "禁用后此账号将无法登录系统。",
|
||
"create": "创建",
|
||
"creating": "创建中...",
|
||
"userProfile": "用户档案",
|
||
"refreshingDetail": "正在刷新详情",
|
||
"registeredAt": "注册时间",
|
||
"personalInfo": "个人资料",
|
||
"phone": "手机",
|
||
"gender": "性别",
|
||
"location": "所在地",
|
||
"website": "网站",
|
||
"bio": "简介",
|
||
"systemRecords": "系统记录",
|
||
"accountStatus": "账户状态",
|
||
"statusActive": "正常",
|
||
"statusDisabled": "禁用",
|
||
"isAdmin": "管理员",
|
||
"yes": "是",
|
||
"no": "否",
|
||
"lastLogin": "最后登录",
|
||
"lastUpdate": "最后更新",
|
||
"banAccount": "封禁账户",
|
||
"unbanAccount": "解除封禁",
|
||
"search": "搜索",
|
||
"searchUserIdPlaceholder": "输入用户 ID...",
|
||
"searchUsernamePlaceholder": "输入 username...",
|
||
"searchEmailPlaceholder": "输入邮箱...",
|
||
"clear": "清除",
|
||
"status": "状态",
|
||
"statusAll": "全部状态",
|
||
"clearFilters": "清空筛选",
|
||
"totalRecords": "{total} 条记录",
|
||
"perPage": "{count}条/页",
|
||
"refreshData": "刷新数据",
|
||
"validation": {
|
||
"emailRequired": "邮箱不能为空",
|
||
"emailInvalid": "邮箱格式不正确",
|
||
"passwordTooShort": "密码长度不能少于 8 位",
|
||
"usernameRequired": "用户名不能为空",
|
||
"usernameTooShort": "用户名长度不能少于 3 位",
|
||
"passwordRequired": "密码不能为空"
|
||
}
|
||
},
|
||
"tasks": {
|
||
"pageTitle": "任务管理",
|
||
"tabTasks": "任务管理",
|
||
"tabSchedules": "定时任务",
|
||
"tabExecutions": "任务日志",
|
||
"unknownError": "未知错误",
|
||
"statusPending": "等待中",
|
||
"statusRunning": "执行中",
|
||
"statusSucceeded": "成功",
|
||
"statusFailed": "失败",
|
||
"triggerSystem": "系统",
|
||
"triggerManual": "手动",
|
||
"triggerRetry": "重试",
|
||
"triggerSchedule": "定时",
|
||
"allStatuses": "全部状态",
|
||
"allTasks": "全部任务",
|
||
"refresh": "刷新",
|
||
"loadingExecutions": "加载任务执行记录中...",
|
||
"noExecutions": "暂无任务执行记录",
|
||
"colTask": "任务",
|
||
"colStatus": "状态",
|
||
"colTrigger": "触发",
|
||
"colRetry": "重试",
|
||
"colDuration": "耗时",
|
||
"colResult": "结果/错误",
|
||
"colCreatedAt": "创建时间",
|
||
"paginationInfo": "共 {total} 条,当前第 {current}/{totalPages} 页",
|
||
"prevPage": "上一页",
|
||
"nextPage": "下一页",
|
||
"executionDetailTitle": "任务执行详情",
|
||
"loadingDetail": "加载任务详情中...",
|
||
"detailStatus": "状态",
|
||
"detailTrigger": "触发来源",
|
||
"detailRetryCount": "重试次数",
|
||
"detailDuration": "耗时",
|
||
"detailTaskId": "任务标识",
|
||
"detailCreatedAt": "创建时间",
|
||
"detailStartedAt": "开始时间",
|
||
"detailFinishedAt": "结束时间",
|
||
"detailUpdatedAt": "更新时间",
|
||
"detailResult": "执行结果",
|
||
"detailError": "错误信息",
|
||
"detailPayload": "Payload",
|
||
"detailLog": "执行日志",
|
||
"noLog": "暂无日志",
|
||
"noExecutionSelected": "未选择任务记录",
|
||
"refreshDetail": "刷新详情",
|
||
"retryTask": "重试任务",
|
||
"retrySuccess": "任务已重新下发",
|
||
"retrySuccessDesc": "新任务 ID:{taskId}",
|
||
"retryFailed": "任务重试失败",
|
||
"loadSchedulesFailed": "加载定时任务配置失败",
|
||
"scheduleEnabled": "已启用定时任务:{name}",
|
||
"scheduleDisabled": "已停用定时任务:{name}",
|
||
"changeScheduleStatusFailed": "修改任务状态失败",
|
||
"scheduleNameRequired": "任务名称不能为空",
|
||
"cronRequired": "Cron 表达式不能为空",
|
||
"scheduleUpdateSuccess": "定时任务更新成功",
|
||
"scheduleCreateSuccess": "定时任务创建成功",
|
||
"submitFailed": "提交失败",
|
||
"scheduleDeleteSuccess": "定时任务删除成功",
|
||
"deleteFailed": "删除失败",
|
||
"addSchedule": "新增定时任务",
|
||
"loadingSchedules": "加载定时任务配置中...",
|
||
"noSchedules": "暂无定时任务配置,点击上方按钮新增",
|
||
"colScheduleName": "任务名称",
|
||
"colAssociatedTask": "关联异步任务",
|
||
"colCron": "Cron 表达式",
|
||
"colPayload": "执行参数 (Payload)",
|
||
"colEnabled": "启用状态",
|
||
"colActions": "操作",
|
||
"editSchedule": "修改定时任务",
|
||
"scheduleDialogDesc": "配置定时任务的调度参数和运行载荷。",
|
||
"scheduleName": "任务名称",
|
||
"scheduleNamePlaceholder": "例如:每日数据清理",
|
||
"associatedTask": "关联异步任务",
|
||
"cronExpression": "Cron 表达式",
|
||
"cronPlaceholder": "e.g. 0 */2 * * * 或 @daily",
|
||
"cronHint": "使用标准 5 位 Cron 字段格式(分钟、小时、日期、月份、星期几)。",
|
||
"scheduleActive": "启用状态",
|
||
"scheduleActiveDesc": "决定此定时任务是否会定时触发执行。",
|
||
"noParamsRequired": "所选任务类型不需要运行参数参数。",
|
||
"payloadConfig": "运行参数配置 (Payload)",
|
||
"paramOn": "开启",
|
||
"paramOff": "关闭",
|
||
"saveChanges": "保存修改",
|
||
"confirmCreate": "确认创建",
|
||
"deleteScheduleTitle": "删除定时任务",
|
||
"deleteScheduleDesc": "确定要删除此定时任务吗?该操作不可撤销,且会立即取消其在调度器中的调度计划。",
|
||
"cancel": "取消",
|
||
"confirmDelete": "确认删除",
|
||
"loadTaskTypesFailed": "加载任务类型失败",
|
||
"dispatchSuccess": "任务下发成功",
|
||
"dispatchSuccessDesc": "已成功将任务 {name} 加入队列:{taskId}",
|
||
"dispatchFailed": "任务下发失败",
|
||
"loadingTaskTypes": "加载任务类型中...",
|
||
"noTaskTypes": "暂无可用任务类型",
|
||
"taskType": "类型:",
|
||
"taskRetry": "重试:",
|
||
"executeNow": "立即执行",
|
||
"dispatchTask": "下发任务",
|
||
"dispatchTaskDesc": "配置任务参数并启动,任务将在后台异步执行。",
|
||
"executeTask": "执行任务",
|
||
"startTime": "开始时间",
|
||
"startTimeDesc": "选择同步的起始时间点",
|
||
"endTime": "结束时间",
|
||
"endTimeDesc": "选择同步的结束时间点",
|
||
"noParamsHint": "此任务无需额外配置参数,确认后将直接下发。",
|
||
"start": "启动",
|
||
"dispatching": "下发中",
|
||
"selectDate": "选择日期",
|
||
"logPrimaryDb": "日志主库",
|
||
"retentionDays": "保留天数",
|
||
"migrationStatus": "迁移状态",
|
||
"migrating": "迁移中",
|
||
"idle": "空闲",
|
||
"selectLogDb": "选择日志数据库",
|
||
"dbPostgresPrimary": "PostgreSQL(主库)",
|
||
"dbSqlitePrimary": "SQLite(主库)",
|
||
"dbClickhouse": "ClickHouse",
|
||
"taskTypeFilter": "任务类型",
|
||
"executionRecord": "执行记录"
|
||
},
|
||
"push": {
|
||
"pageTitle": "通知推送管理",
|
||
"eventsTab": "事件管理",
|
||
"historiesTab": "通知历史",
|
||
"settingsTab": "通道管理与设置",
|
||
"events": {
|
||
"eventUpdateSuccess": "事件更新成功",
|
||
"eventUpdateFailed": "事件更新失败",
|
||
"operationFailed": "操作失败",
|
||
"eventCreateSuccess": "事件创建成功",
|
||
"eventCreateFailed": "事件创建失败",
|
||
"configDeleteSuccess": "配置删除成功",
|
||
"configDeleteFailed": "配置删除失败",
|
||
"templateInvalidJson": "消息模板不是合法的 JSON 格式",
|
||
"selectSystemEvent": "请选择系统事件",
|
||
"selectAsyncTask": "请选择异步任务",
|
||
"addEvent": "新增通知事件",
|
||
"loadingEvents": "加载通知事件中...",
|
||
"noEvents": "暂无通知配置事件,请点击右上角新增",
|
||
"colEvent": "通知事件",
|
||
"colChannels": "关联渠道",
|
||
"colTargets": "推送目标",
|
||
"colStatus": "状态",
|
||
"colActions": "操作",
|
||
"taskBadge": "任务",
|
||
"noChannelSpecified": "未指定渠道",
|
||
"emailChannel": "邮件",
|
||
"configure": "配置",
|
||
"deleteEventConfirm": "确定要删除该通知事件配置吗?删除后无法恢复。",
|
||
"deleteEventTitle": "确认删除通知事件",
|
||
"confirmDelete": "确认删除",
|
||
"deleting": "删除中...",
|
||
"delete": "删除",
|
||
"addEventDialogTitle": "新增通知事件",
|
||
"addEventDialogDesc": "选择系统内置的事件并绑定推送渠道,创建后即可开始生效",
|
||
"eventType": "事件类型",
|
||
"builtinEventType": "系统内置事件",
|
||
"taskEventType": "任务完成事件",
|
||
"systemEvent": "系统事件",
|
||
"loadingSystemEvents": "加载系统事件中...",
|
||
"allBuiltinEventsConfigured": "所有内置事件都已配置,没有可新增的事件。",
|
||
"selectSystemEventPlaceholder": "请选择系统事件",
|
||
"systemAsyncTask": "系统异步任务",
|
||
"loadingAsyncTasks": "加载异步任务中...",
|
||
"noAvailableTasks": "暂无可用的系统任务。",
|
||
"selectAsyncTaskPlaceholder": "请选择异步任务",
|
||
"eventDescription": "事件说明:",
|
||
"noDescription": "无描述信息",
|
||
"taskDescription": "任务说明:",
|
||
"pushChannelsMulti": "推送渠道 (可多选)",
|
||
"selectConfiguredChannels": "选择已配置推送渠道",
|
||
"emailPush": "邮件推送",
|
||
"noAvailableChannels": "暂无可用渠道,请先在\"通道管理与设置\"中创建或启用。",
|
||
"pushTargets": "推送目标 (仅邮件等渠道需要)",
|
||
"pushTargetsPlaceholder": "多个目标用英文逗号分隔,例如:user1@test.com, user2@test.com",
|
||
"contentTemplate": "内容渲染模板 (JSON 格式)",
|
||
"taskTemplateVars": "支持变量:{{task_name}}, {{task_status}}, {{task_duration}}, {{user.username}}",
|
||
"eventTemplateVars": "支持变量:{{user.username}}, {{ip}}, {{time}}",
|
||
"enableStatus": "启用状态",
|
||
"enableStatusDesc": "创建后是否立即开始接收此事件的通知",
|
||
"cancel": "取消",
|
||
"enableSave": "启用保存",
|
||
"editEventDialogTitle": "事件通知渠道配置",
|
||
"editEventDialogDesc": "自定义本事件触发时,需要异步推送的渠道以及接收人邮箱等配置",
|
||
"eventName": "事件名称",
|
||
"eventKey": "事件键 (Key)",
|
||
"relatedAsyncTask": "关联异步任务",
|
||
"noAvailableChannelsEdit": "暂无可用渠道,请先在\"通道管理与设置\"中创建并启用。",
|
||
"saveChanges": "保存修改",
|
||
"taskCompleteTitle": "任务完成: {name}",
|
||
"taskCompleteContent": "异步任务 {{task_name}} 已完成。状态: {{task_status}},耗时: {{task_duration}} ms。"
|
||
},
|
||
"settings": {
|
||
"channelCreateSuccess": "通道创建成功",
|
||
"channelCreateFailed": "通道创建失败",
|
||
"channelUpdateSuccess": "通道更新成功",
|
||
"channelUpdateFailed": "通道更新失败",
|
||
"channelDeleteSuccess": "通道删除成功",
|
||
"channelDeleteFailed": "通道删除失败",
|
||
"channelNameRequired": "通道名称不能为空",
|
||
"channelNameFormat": "通道名称只能使用英文字母、数字和下划线",
|
||
"invalidChannelType": "无效的通道类型",
|
||
"httpsRequired": "地址必须以 https:// 开头以确保安全性",
|
||
"jsonFormatRequired": "请求体必须是合法的 JSON 格式",
|
||
"larkTemplateFormat": "自定义卡片模版必须是合法的 JSON 格式",
|
||
"sendingTestPush": "正在发送测试推送...",
|
||
"testPushSuccess": "测试推送发送成功,请前往对应平台确认。",
|
||
"connectivityTestFailed": "连通性测试失败",
|
||
"customPushChannels": "自定义推送通道",
|
||
"customPushChannelsDesc": "添加、配置及管理用于第三方 Webhook 对接的自定义数据推送通道",
|
||
"createChannel": "新建消息通道",
|
||
"loadingChannels": "加载消息通道中...",
|
||
"noCustomChannels": "暂无自定义通道配置,请点击右上角新建",
|
||
"colName": "名称",
|
||
"colType": "类型",
|
||
"colRemark": "备注",
|
||
"colStatus": "状态",
|
||
"colActions": "操作",
|
||
"noRemark": "无备注",
|
||
"test": "测试",
|
||
"edit": "编辑",
|
||
"deleteChannelConfirm": "确定要删除通道「{name}」吗?删除后无法恢复。",
|
||
"deleteChannelTitle": "确认删除通道",
|
||
"confirmDelete": "确认删除",
|
||
"deleting": "删除中...",
|
||
"delete": "删除",
|
||
"editChannelDialogTitle": "编辑消息通道",
|
||
"createChannelDialogTitle": "新建消息通道",
|
||
"channelDialogDesc": "配置自定义通知推送通道,支持以 POST 请求方式向第三方 Webhook 或推送服务投递数据",
|
||
"channelName": "名称",
|
||
"channelNamePlaceholder": "请输入通道名称,请仅使用英文字母和下划线,该名称必须唯一",
|
||
"channelNameHint": "通道唯一标识,创建后不可修改",
|
||
"channelRemark": "备注",
|
||
"channelRemarkPlaceholder": "请输入备注信息",
|
||
"channelType": "通道类型",
|
||
"selectChannelType": "选择通道类型",
|
||
"quickLoadTemplates": "快捷加载常用模版实例:",
|
||
"loadedFeishuTemplate": "已加载飞书 Webhook 模版",
|
||
"loadedDingTalkTemplate": "已加载钉钉机器人模版",
|
||
"loadedWeChatTemplate": "已加载企业微信机器人模版",
|
||
"loadedBarkTemplate": "已加载 Bark App 模版",
|
||
"cancel": "取消",
|
||
"confirm": "确定",
|
||
"sendTestNotification": "发送测试通知",
|
||
"sendTestNotificationDesc": "请输入消息测试的接收目标,点击发送后系统将通过此通道执行连通性推送测试",
|
||
"pushChannelName": "推送通道名称",
|
||
"testPushTarget": "测试推送目标 (对应模板变量 $to)",
|
||
"testPushTargetPlaceholder": "请输入测试推送接收人/目标标识,如 Bark Token、邮箱等",
|
||
"sendTest": "发送测试",
|
||
"fieldRequired": "{label}不能为空",
|
||
"configHelp": "{name}配置说明"
|
||
},
|
||
"histories": {
|
||
"searchPlaceholder": "输入事件键过滤...",
|
||
"sendStatus": "发送状态",
|
||
"allStatus": "全部状态",
|
||
"sendSuccess": "发送成功",
|
||
"sendFailed": "发送失败",
|
||
"colEvent": "事件",
|
||
"colChannel": "渠道",
|
||
"colTarget": "目标",
|
||
"colTitle": "标题",
|
||
"colLevel": "等级",
|
||
"colStatus": "状态",
|
||
"colTime": "时间",
|
||
"loadingHistories": "加载推送历史记录中...",
|
||
"noHistoryData": "无推送历史数据",
|
||
"emailChannel": "邮件",
|
||
"success": "成功",
|
||
"failed": "失败",
|
||
"totalRecords": "共 {total} 条历史记录",
|
||
"pushNotificationDetail": "推送通知详情",
|
||
"pushNotificationDetailDesc": "查看该条通知发送的详细审计信息与内容",
|
||
"eventIdentifier": "事件标识",
|
||
"sendChannel": "发送渠道",
|
||
"emailPush": "邮件推送",
|
||
"pushTarget": "推送目标",
|
||
"sendTime": "发送时间",
|
||
"notificationLevel": "通知等级",
|
||
"failureReason": "失败原因",
|
||
"notificationTitle": "通知标题",
|
||
"notificationContent": "通知内容",
|
||
"close": "关闭"
|
||
}
|
||
},
|
||
"messageGateway": {
|
||
"pageTitle": "消息通道",
|
||
"pageDescription": "配置实例级 Telegram / QQ 机器人,用户通过配对码绑定私聊身份。",
|
||
"addChannel": "添加通道",
|
||
"emptyTitle": "还没有消息通道",
|
||
"emptyDescription": "添加一个共享机器人,用户即可在资料页绑定并发送私聊消息。",
|
||
"enabled": "已启用",
|
||
"disabled": "已禁用",
|
||
"delete": "删除",
|
||
"deleteConfirmTitle": "删除通道?",
|
||
"deleteConfirmDescription": "将同时删除该通道下的绑定和未使用的配对码。此操作不可撤销。",
|
||
"createSuccess": "通道已创建",
|
||
"createFailed": "创建通道失败",
|
||
"updateSuccess": "通道已更新",
|
||
"updateFailed": "更新通道失败",
|
||
"deleteSuccess": "通道已删除",
|
||
"deleteFailed": "删除通道失败",
|
||
"testSuccess": "连通性测试通过",
|
||
"testFailed": "连通性测试失败",
|
||
"name": "名称",
|
||
"namePlaceholder": "例如:运营机器人",
|
||
"type": "类型",
|
||
"typeTelegram": "Telegram",
|
||
"typeQQ": "QQ",
|
||
"selectType": "选择通道类型",
|
||
"botToken": "Bot Token",
|
||
"botTokenPlaceholder": "从 BotFather 获取",
|
||
"baseUrl": "API 地址",
|
||
"baseUrlPlaceholder": "https://api.telegram.org",
|
||
"appId": "App ID",
|
||
"appSecret": "App Secret",
|
||
"portalHost": "开放平台域名",
|
||
"portalHostPlaceholder": "q.qq.com",
|
||
"keepSecretHint": "留空则保留已保存的密钥",
|
||
"cancel": "取消",
|
||
"create": "创建",
|
||
"testConnection": "测试连通性",
|
||
"loadFailed": "加载通道失败"
|
||
},
|
||
"database": {
|
||
"pageTitle": "数据管理",
|
||
"refreshData": "刷新数据",
|
||
"fetchOverviewFailed": "获取数据库概览失败",
|
||
"fetchTablesFailed": "获取数据库数据表列表失败",
|
||
"exportSuccess": "数据库导出成功",
|
||
"exportSuccessDesc": "已下载归档文件: {filename}",
|
||
"exportFailed": "数据库导出失败",
|
||
"dbType": "数据库类型",
|
||
"versionInfo": "版本信息",
|
||
"nameOrPath": "名称/路径",
|
||
"dbSize": "数据库大小",
|
||
"physicalTables": "物理数据表",
|
||
"activeConnections": "活跃连接数",
|
||
"featureArea": "功能区",
|
||
"featureAreaDesc": "数据库导出及自定义高级 SQL 执行终端",
|
||
"dbBackupExport": "数据库备份导出",
|
||
"dbBackupExportDesc": "直接导出并下载物理数据库镜像文件(SQLite 导出 .db,PostgreSQL 导出为打包的 .sql 文本文件)",
|
||
"preparing": "正在准备...",
|
||
"startExport": "开始导出",
|
||
"sqlQueryConsole": "SQL 查询控台",
|
||
"sqlQueryConsoleDesc": "打开在线 SQL 控制终端,执行原生的 SQL 进行数据筛选、更新、调试或性能优化",
|
||
"enterConsole": "进入控台",
|
||
"cache": {
|
||
"fetchCacheStatusFailed": "获取磁盘缓存状态失败",
|
||
"saveFailed": "保存失败",
|
||
"maxSizeMustBePositive": "最大容量限制必须是大于等于 1 的整数",
|
||
"ttlMustBeNonNegative": "默认过期时间必须是大于等于 0 的整数",
|
||
"saveSuccess": "保存成功",
|
||
"cachePolicyHotUpdated": "磁盘缓存策略已热更新",
|
||
"saveConfigFailed": "保存配置失败",
|
||
"clearSuccess": "清空成功",
|
||
"cacheDataCleared": "缓存数据已全部清除",
|
||
"clearCacheFailed": "清空缓存失败",
|
||
"cacheManagement": "缓存管理",
|
||
"cacheManagementDesc": "管理和监控系统级磁盘缓存的资源占用、生命周期及淘汰策略",
|
||
"refreshStatus": "刷新状态",
|
||
"runtimeStatus": "运行状态",
|
||
"usedSpace": "已用空间",
|
||
"cacheKeysCount": "缓存键数量",
|
||
"files": "个文件",
|
||
"cacheBaseDirectory": "缓存基准目录",
|
||
"clearCacheNow": "立即清空缓存",
|
||
"policyConfig": "策略配置",
|
||
"maxSizeLimit": "最大容量限制 (MB)",
|
||
"maxSizeHint": "当总大小超出该值时,自动触发淘汰算法",
|
||
"ttlLimit": "生存时间限制 (分钟)",
|
||
"ttlHint": "缓存项的最长存活时间,超期后将失效被清理",
|
||
"enableLru": "启用 LRU 淘汰机制",
|
||
"enableLruDesc": "在到达最大容量限制时,自动移除最久未被访问的缓存项。关闭该功能仅清理过期项。",
|
||
"saving": "正在保存...",
|
||
"saveSettings": "保存设置",
|
||
"noCacheStatus": "未加载到缓存状态信息",
|
||
"confirmClearAllCache": "确认清空所有缓存?",
|
||
"confirmClearDesc": "该操作将彻底清空磁盘目录下的全部缓存文件(包含临时解压、处理后的图片及各种块文件),重置键数量统计为 0。此操作不可撤销,且可能导致用户拉取资源时出现一过性的响应变慢。",
|
||
"cancel": "取消",
|
||
"clearing": "清理中...",
|
||
"confirmClear": "确认清空",
|
||
"unknownError": "未知错误",
|
||
"maxSizePlaceholder": "例如 100",
|
||
"ttlPlaceholder": "例如 60,0 表示永不过期"
|
||
},
|
||
"sql": {
|
||
"sqlExecSuccess": "SQL 执行成功",
|
||
"sqlExecFailed": "SQL 执行失败",
|
||
"sqlQueryTerminal": "SQL 查询终端",
|
||
"sqlEditor": "SQL 编辑器",
|
||
"quickTemplates": "快速模板:",
|
||
"selectPresetSQL": "选择预设 SQL",
|
||
"queryUsers": "查询用户 (SELECT users)",
|
||
"queryFiles": "查询文件 (SELECT uploads)",
|
||
"queryTaskExecutions": "查询任务流水 (SELECT task_executions)",
|
||
"sqliteVersion": "SQLite 版本 (SQLite only)",
|
||
"postgresVersion": "PostgreSQL 版本 (Postgres only)",
|
||
"running": "运行中...",
|
||
"run": "运行",
|
||
"executionOutput": "执行输出",
|
||
"type": "类型",
|
||
"duration": "耗时",
|
||
"executingQuery": "正在在数据库执行查询,请稍候...",
|
||
"queryResultEmpty": "查询结果为空",
|
||
"sqlExecSuccessTitle": "SQL 执行成功",
|
||
"affectedRows": "受影响行数: {rows} 行,耗时 {ms} 毫秒。",
|
||
"editorReady": "编辑器就绪,请在上方编写 SQL 并运行查看结果",
|
||
"unknownExecError": "未知执行错误",
|
||
"clearEditor": "清空编辑器",
|
||
"dragResize": "拖动调整大小",
|
||
"execErrorTitle": "SQL 执行报错 (Error):"
|
||
},
|
||
"tableBrowser": {
|
||
"tableBrowser": "数据表浏览器",
|
||
"tableBrowserDesc": "浏览数据库中的物理数据表详情及内容",
|
||
"selectTable": "选择数据表",
|
||
"noRecordsInTable": "表中无记录数据",
|
||
"totalRows": "总行数",
|
||
"records": "条记录",
|
||
"prevPage": "上一页",
|
||
"nextPage": "下一页",
|
||
"pageIndicator": "第 {current} / {total} 页",
|
||
"noTableSelected": "未选择数据表或表结构无法加载",
|
||
"fetchTableFailed": "获取数据表 {table} 数据失败",
|
||
"unknownError": "未知错误"
|
||
},
|
||
"unknownError": "未知错误",
|
||
"exportException": "导出异常"
|
||
},
|
||
"logs": {
|
||
"pageTitle": "系统日志",
|
||
"accessAnalytics": "访问分析",
|
||
"userAccessLogs": "用户访问日志",
|
||
"appRuntimeLogs": "应用运行日志",
|
||
"accessLogs": {
|
||
"clickhouseDisabled": "ClickHouse 未启用",
|
||
"clickhouseDisabledDesc": "当前系统配置未启用 ClickHouse 存储,系统不会收集用户访问日志。如需使用此功能,请在后端 config.yaml 配置文件中配置并启用 ClickHouse。",
|
||
"username": "用户名",
|
||
"usernamePlaceholder": "输入用户名搜索...",
|
||
"apiPath": "接口路径",
|
||
"pathPlaceholder": "模糊匹配路径...",
|
||
"startTime": "起始时间",
|
||
"endTime": "结束时间",
|
||
"search": "搜索",
|
||
"reset": "重置",
|
||
"loadingAccessLogs": "加载访问日志中...",
|
||
"noAccessLogs": "未查询到任何访问日志数据",
|
||
"colMethod": "请求方法",
|
||
"colPath": "路径",
|
||
"colUser": "用户",
|
||
"colIp": "IP",
|
||
"colStatus": "状态",
|
||
"colLatency": "耗时",
|
||
"colRequestTime": "请求时间",
|
||
"colDetail": "详情",
|
||
"unknownUser": "未知用户",
|
||
"paginationInfo": "共 {total} 条记录,当前第 {page}/{totalPages} 页",
|
||
"prevPage": "上一页",
|
||
"nextPage": "下一页",
|
||
"accessLogDetail": "访问日志详情",
|
||
"method": "请求方法",
|
||
"responseStatus": "响应状态",
|
||
"latency": "耗时",
|
||
"ipAddress": "IP 地址",
|
||
"user": "用户",
|
||
"noNickname": "无昵称",
|
||
"unknownGuest": "未知/游客",
|
||
"requestPath": "请求路径",
|
||
"requestTime": "请求时间",
|
||
"noLogSelected": "未选中日志明细",
|
||
"copiedToClipboard": "{subject}已复制到剪贴板",
|
||
"noHeaderData": "暂无头部数据",
|
||
"accessId": "访问 ID: {id}",
|
||
"copyUserAgent": "复制 User-Agent",
|
||
"copyHeaders": "复制 Headers"
|
||
},
|
||
"analytics": {
|
||
"clickhouseDisabled": "ClickHouse 未启用",
|
||
"clickhouseDisabledDesc": "当前系统配置未启用 ClickHouse 存储,系统不会收集用户访问日志。如需使用此功能,请在后端 config.yaml 配置文件中配置并启用 ClickHouse。",
|
||
"loadingAnalytics": "加载访问统计指标中...",
|
||
"totalRequests7d": "近 7 天总请求数",
|
||
"totalRequests7dDesc": "系统记录的所有成功认证的访问总频次",
|
||
"activeBrowserTypes": "活跃终端分类数",
|
||
"activeBrowserTypesDesc": "在一周内发起请求的浏览器代理大类统计",
|
||
"activeUsers": "活跃独立用户数",
|
||
"activeUsersDesc": "一周内累计发起高频请求的注册账户总量",
|
||
"weeklyAccessTrend": "一周访问量趋势",
|
||
"weeklyAccessTrendDesc": "展现系统最近 7 天内的每日 API 请求曲线",
|
||
"noTrendData": "暂无趋势数据",
|
||
"browserRanking": "使用的浏览器排行",
|
||
"browserRankingDesc": "基于请求头 User-Agent 智能分类的一周占比统计",
|
||
"noBrowserData": "暂无浏览器排行数据",
|
||
"topActiveUsers": "最活跃的用户排行 (Top 10)",
|
||
"topActiveUsersDesc": "统计最近一周发起接口访问请求数量最多的账户",
|
||
"noActiveUsersData": "暂无活跃用户数据",
|
||
"unknown": "未知",
|
||
"noNickname": "(无昵称)",
|
||
"requests": "次请求",
|
||
"fetchFailed": "获取数据统计失败",
|
||
"requestVolume": "请求量",
|
||
"requestCount": "请求次数",
|
||
"countTimes": "{count} 次 ({percent}%)"
|
||
},
|
||
"appLogs": {
|
||
"loading": "加载中...",
|
||
"loadOlderLogs": "加载更早日志",
|
||
"noLogs": "暂无日志",
|
||
"backToLatest": "回到最新",
|
||
"fetchFailed": "获取日志失败",
|
||
"loadOlderFailed": "加载更早日志失败"
|
||
}
|
||
},
|
||
"system": {
|
||
"pageTitle": "系统配置",
|
||
"configKey": "配置键",
|
||
"configValue": "配置值",
|
||
"required": "必需",
|
||
"configDescription": "配置描述",
|
||
"optionalDescription": "可选描述",
|
||
"publicVisibility": "公共可见",
|
||
"configType": "配置类型",
|
||
"systemConfig": "系统配置",
|
||
"businessConfig": "业务配置",
|
||
"createdAt": "创建时间",
|
||
"emptyDescription": "未发现系统配置",
|
||
"loadingDescription": "配置加载中",
|
||
"visible": "可见",
|
||
"invisible": "不可见",
|
||
"description": "描述"
|
||
},
|
||
"settings": {
|
||
"pageTitle": "系统设置",
|
||
"tabs": {
|
||
"security": "安全设置",
|
||
"operation": "业务设置",
|
||
"system": "系统设置",
|
||
"other": "其他设置",
|
||
"status": "系统状态",
|
||
"info": "系统信息",
|
||
"openflare": "OpenFlare"
|
||
},
|
||
"status": {
|
||
"pageTitle": "系统状态",
|
||
"fetchFailed": "获取系统状态失败",
|
||
"unknownRequestError": "请求时发生未知错误",
|
||
"autoRefresh": "自动刷新",
|
||
"refresh": "刷新",
|
||
"cards": {
|
||
"serviceOverview": "服务概览",
|
||
"serviceOverviewDesc": "服务的基础生命指标",
|
||
"memoryStats": "内存统计",
|
||
"memoryStatsDesc": "主内存消耗概览",
|
||
"heapStack": "堆/栈详情",
|
||
"heapStackDesc": "运行时堆栈内存空间细节",
|
||
"internalStructs": "底层及结构体内存",
|
||
"internalStructsDesc": "运行时底层管理结构体开销",
|
||
"gcAndAlloc": "垃圾回收与分配计数",
|
||
"gcAndAllocDesc": "GC 历史数据与分配频次"
|
||
},
|
||
"metrics": {
|
||
"uptime": "服务运行时间",
|
||
"goroutines": "当前 Goroutines 数量",
|
||
"heapObjects": "Heap 对象数量",
|
||
"alloc": "当前内存使用量",
|
||
"totalAlloc": "所有已分配的内存",
|
||
"sys": "内存占用量",
|
||
"nextGc": "下次 GC 内存回收量",
|
||
"memoryUsagePercent": "当前使用率 (Alloc / Sys)",
|
||
"heapAlloc": "当前 Heap 内存使用量",
|
||
"heapSys": "Heap 内存占用量",
|
||
"heapIdle": "Heap 内存空闲量",
|
||
"heapInuse": "正在使用的 Heap 内存",
|
||
"heapReleased": "已释放的 Heap 内存",
|
||
"stackInuse": "启动 Stack 使用量",
|
||
"stackSys": "已分配的 Stack 内存",
|
||
"mspanInuse": "MSpan 结构内存使用量",
|
||
"mspanSys": "已分配的 MSpan 结构内存",
|
||
"mcacheInuse": "MCache 结构内存使用量",
|
||
"mcacheSys": "已分配的 MCache 结构内存",
|
||
"buckHashSys": "已分配的剖析哈希表内存",
|
||
"gcSys": "已分配的 GC 元数据内存",
|
||
"otherSys": "其它已分配的系统内存",
|
||
"numGc": "GC 执行次数",
|
||
"lastGcTime": "距离上次 GC 时间",
|
||
"pauseTotalNs": "GC 暂停时间总量",
|
||
"lastPause": "上次 GC 暂停时间",
|
||
"mallocs": "内存分配次数",
|
||
"frees": "内存释放次数",
|
||
"lookups": "指针查找次数"
|
||
}
|
||
}
|
||
},
|
||
"demo": {
|
||
"pageTitle": "开发规范示例",
|
||
"specTitle": "规范说明",
|
||
"specDescription": "此页面展示了后台 Sidebar 关联页面的标准标题栏布局,供开发参考。",
|
||
"coreSpecTitle": "核心规范细节与编写原则:",
|
||
"rules": {
|
||
"structureFocus": {
|
||
"title": "结构专注",
|
||
"description": ":页面标题区必须保持绝对干净。请不要在标题下方放置任何描述段落或小字副标题,让页面在视线进入时保持极简与信息纯粹。"
|
||
},
|
||
"containerAlignment": {
|
||
"title": "容器与上边距对齐",
|
||
"description": "作为标题行基础容器(不含下边框),外层统一使用",
|
||
"description2": "进行上边距的视觉对齐,确保切换菜单时顶部高度感一致。"
|
||
},
|
||
"iconPresentation": {
|
||
"title": "图标呈现",
|
||
"description": "样式。禁止为图标包裹任何背景色小卡片、圆角或装饰性边框。"
|
||
},
|
||
"textStyle": {
|
||
"title": "文本样式标准",
|
||
"description": ",禁用字重加粗(如",
|
||
"description2": ")或任何渐变色,保证全站字体一致性。"
|
||
},
|
||
"tabsModular": {
|
||
"title": "Tabs 模块化拆分",
|
||
"description": "或就近放在",
|
||
"description2": "下),主页面文件只负责维护当前 Tab 的激活状态及外层骨架布局。"
|
||
},
|
||
"complexityDriven": {
|
||
"title": "复杂度驱动的区块拆分",
|
||
"description": "行时,必须将高密度区块拆分为子组件。路由专属、不复用的子组件应放在对应路由的特征目录中(如",
|
||
"description2": "),只有真正跨页面复用的组件才进入全局",
|
||
"description3": "。典型标杆案例参考\"数据管理\" ("
|
||
}
|
||
},
|
||
"tabs": {
|
||
"dashboard": "仪表盘与指标卡片",
|
||
"table": "数据表格规范",
|
||
"controls": "输入控件与表单"
|
||
},
|
||
"controls": {
|
||
"formDemoTitle": "表单与输入框交互演示",
|
||
"formDemoDesc": "包含按钮变体、下拉选择、多选框及基础输入框的标准样式",
|
||
"taskName": "任务名称",
|
||
"taskNamePlaceholder": "输入要创建的任务描述...",
|
||
"taskNameHint": "任务名称将用于后台执行记录的可读性显示",
|
||
"taskCategory": "任务分类",
|
||
"categoryDatabase": "数据库运维",
|
||
"categorySync": "数据批量同步",
|
||
"categoryCleanup": "过期磁盘清理",
|
||
"allowNotify": "允许触发异步通知推送",
|
||
"allowNotifyDesc": "勾选后,在当前后台任务顺利执行结束时,会关联派发多渠道通知推送。",
|
||
"buttonStyles": "按钮样式对齐:",
|
||
"primaryButton": "主要操作 (Primary)",
|
||
"secondaryButton": "次要操作 (Secondary)",
|
||
"outlineButton": "辅助线框 (Outline)",
|
||
"ghostButton": "幽灵按钮 (Ghost)",
|
||
"formDesignSpec": "表单设计规范",
|
||
"spec": {
|
||
"unifiedHeight": "1. 统一控件高度与投影:",
|
||
"checkboxAlignment": "2. Checkbox 与文本的对齐:",
|
||
"buttonStrategy": "3. 按钮使用策略:"
|
||
}
|
||
},
|
||
"table": {
|
||
"mockData": {
|
||
"syncExport": "用户信息批量同步导出",
|
||
"dbBackup": "系统数据库每周自动备份归档",
|
||
"s3Cleanup": "远端S3过期缓存对象自动清理任务"
|
||
},
|
||
"mockType": {
|
||
"dataSync": "数据同步",
|
||
"dbOps": "数据库运维",
|
||
"diskCleanup": "磁盘清理"
|
||
},
|
||
"mockDuration": {
|
||
"running": "在执行中"
|
||
},
|
||
"searchPlaceholder": "输入任务名称搜索...",
|
||
"filter": "过滤",
|
||
"newTask": "新建任务",
|
||
"columns": {
|
||
"taskId": "任务编号",
|
||
"taskName": "执行任务名称",
|
||
"taskType": "任务类型",
|
||
"status": "状态",
|
||
"duration": "执行耗时",
|
||
"triggerTime": "触发时间",
|
||
"actions": "操作"
|
||
},
|
||
"status": {
|
||
"success": "成功",
|
||
"running": "运行中",
|
||
"failed": "失败"
|
||
},
|
||
"tableDesignSpec": "表格设计规范与代码模板",
|
||
"spec": {
|
||
"container": "表格容器必须统一使用带有虚线边框的容器,即类名:",
|
||
"headerBg": "表头背景设为",
|
||
"headerStyle": "。表头表项字号统一为小字粗体",
|
||
"cellDivider": "单元格行与列之间使用虚线分割(",
|
||
"rowHover": ")。表格行悬浮交互采用温和过渡色",
|
||
"monoFont": "编码、主键或唯一 ID 类字段一律采用等宽字体呈现:",
|
||
"badgeStyle": "状态标签(Badge)尽量圆角化(",
|
||
"badgeStyle2": "),并以浅背景配以各自对应的图标圆点,以实现现代、高对比度的视觉质感。"
|
||
}
|
||
},
|
||
"dashboard": {
|
||
"cpuUsage": "容器 CPU 使用率",
|
||
"cpuStatus": "容器运行正常,负载平稳",
|
||
"storageUsage": "存储已用容量",
|
||
"storageStatus": "数据已同步远端 S3 存储桶,支持自动过期",
|
||
"database": "物理数据库",
|
||
"activeConnections": "活跃连接:",
|
||
"totalTables": "总表数量:",
|
||
"dbStatus": "链接池自动维护中,最大连接限制为 100",
|
||
"dashboardDesignSpec": "指标卡片 & 仪表盘设计规范",
|
||
"spec": {
|
||
"dashedBorder": "指标卡片统一采用",
|
||
"dashedBorder2": "作为边框和投影。",
|
||
"headerLayout": "头部使用",
|
||
"headerLayout2": "布局,左侧为标题小字,右侧为直接呈现的 Lucide 图标。",
|
||
"valueStyle": "数值强调使用且仅使用",
|
||
"valueStyle2": "展示。",
|
||
"progressBar": "进度条使用",
|
||
"progressBar2": "细条高度,不喧宾夺主。",
|
||
"secondaryText": "底部的次要说明信息必须统一使用",
|
||
"secondaryText2": "等辅助类。"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"docs": {
|
||
"backToHome": "返回首页",
|
||
"sectionCount": "共 {count} 个章节",
|
||
"lastUpdated": "最后更新",
|
||
"copied": "已复制",
|
||
"copyMarkdown": "复制 Markdown",
|
||
"toc": "目录",
|
||
"haveQuestions": "还有疑问?",
|
||
"contactSupport": "联系客服支持",
|
||
"api": {
|
||
"title": "接口文档",
|
||
"description": "Wavelet Platform 后端 API 完整参考,涵盖认证、用户、令牌与配置管理。",
|
||
"field": "字段",
|
||
"type": "类型",
|
||
"descriptionLabel": "说明",
|
||
"endpoint": "端点",
|
||
"desc": "描述",
|
||
"param": "参数",
|
||
"required": "必需",
|
||
"yes": "是",
|
||
"no": "否",
|
||
"username": "用户名",
|
||
"password": "密码",
|
||
"optional": "可选",
|
||
"default": "默认",
|
||
"section1": {
|
||
"title": "通用约定",
|
||
"desc": "所有 API 响应遵循统一信封格式。",
|
||
"responseFormat": "响应格式",
|
||
"responseFormatDesc": "所有接口均返回以下 JSON 结构:",
|
||
"errorMsgDesc": "成功时为空字符串,失败时为可读错误信息",
|
||
"dataDesc": "业务数据,结构因接口而异",
|
||
"successExample": "成功响应示例",
|
||
"failExample": "失败响应示例",
|
||
"failExampleErrorMsg": "错误信息",
|
||
"authentication": "认证方式",
|
||
"authenticationDesc": "系统支持两种认证方式,所有受保护的接口均需携带其一:",
|
||
"sessionCredential": "Session 凭证",
|
||
"sessionCredentialDesc": "登录后由服务端 Set-Cookie 返回,浏览器自动携带。",
|
||
"accessTokenCredential": "AccessToken 凭证",
|
||
"accessTokenCredentialDesc": "通过 Header 传递,适用于 API 调用与第三方集成:",
|
||
"supportedHeaders": "支持的 Header"
|
||
},
|
||
"section2": {
|
||
"title": "认证接口",
|
||
"register": "注册",
|
||
"registerDesc": "创建新用户账号并自动登录。",
|
||
"usernameDesc": "用户名,唯一,至少 3 位",
|
||
"passwordDesc": "密码,至少 8 位",
|
||
"nicknameDesc": "昵称(可选)",
|
||
"passwordLogin": "密码登录",
|
||
"passwordLoginDesc": "使用邮箱/用户名 + 密码登录,成功后 Set-Cookie。",
|
||
"logout": "登出",
|
||
"logoutDesc": "销毁当前会话。",
|
||
"getProfile": "获取当前用户信息",
|
||
"getProfileDesc": "返回当前已登录用户的完整档案。"
|
||
},
|
||
"section3": {
|
||
"title": "访问令牌管理",
|
||
"desc": "管理个人 API 访问令牌(AccessToken),用于无浏览器场景的 API 调用。",
|
||
"listTokens": "列出令牌",
|
||
"listTokensDesc": "获取当前用户的所有活跃访问令牌。",
|
||
"createToken": "创建令牌",
|
||
"tokenName": "令牌名称",
|
||
"createTokenDesc": "创建新的访问令牌,返回一次性密钥。",
|
||
"isAdminDesc": "是否授予管理员权限(默认 false)",
|
||
"endpoint": "端点",
|
||
"successResponseExample": "成功响应示例",
|
||
"deleteToken": "删除令牌",
|
||
"deleteTokenDesc": "撤销指定的访问令牌。",
|
||
"rotateToken": "轮换令牌",
|
||
"rotateTokenDesc": "为指定令牌生成新密钥,旧密钥立即失效。"
|
||
},
|
||
"section4": {
|
||
"title": "系统配置管理",
|
||
"publicConfig": "获取公开配置",
|
||
"publicConfigDesc": "返回所有标记为公开的系统配置项,无需认证。",
|
||
"responseExample": "响应示例",
|
||
"adminConfigs": "管理员配置接口",
|
||
"adminConfigsDesc": "以下接口需要管理员权限。",
|
||
"getConfigList": "获取配置列表",
|
||
"createConfig": "创建配置",
|
||
"updateConfig": "更新配置",
|
||
"deleteConfig": "删除配置"
|
||
}
|
||
},
|
||
"howToUse": {
|
||
"title": "使用文档",
|
||
"description": "Wavelet Platform 快速上手指南,涵盖认证、令牌、配置、任务与可观测性。",
|
||
"section1": {
|
||
"title": "系统架构概览",
|
||
"desc": "Wavelet Platform 采用 Go + Next.js 前后端分离架构。",
|
||
"architecture": "技术栈",
|
||
"architectureDesc": "Go 1.25+ / Gin / GORM / PostgreSQL / Redis / Asynq",
|
||
"authSystem": "认证系统",
|
||
"authSystemDesc": "支持密码登录 + OIDC 第三方认证",
|
||
"accessToken": "访问令牌",
|
||
"accessTokenDesc": "用于 API 调用的 Personal Access Token",
|
||
"observability": "可观测性",
|
||
"observabilityDesc": "OpenTelemetry + 结构化日志"
|
||
},
|
||
"section2": {
|
||
"title": "认证与注册",
|
||
"desc": "系统支持多种认证方式,可通过管理后台灵活配置。",
|
||
"passwordAuth": "密码认证",
|
||
"selfRegister": "自主注册",
|
||
"selfRegisterDesc": "用户可通过注册页面创建账号。",
|
||
"bcryptDesc": "密码使用 bcrypt 加密存储。",
|
||
"switchControl": "开关控制",
|
||
"switchControlDesc": "管理员可在后台独立控制:",
|
||
"oidc": "OIDC 第三方登录",
|
||
"oidcDesc": "支持配置任意 OIDC 兼容的认证源(如 Google、GitHub、企业 SSO)。",
|
||
"oidcStep1": "在「系统设置 → 安全设置」中新增认证源",
|
||
"oidcStep2": "填写 Discovery URL、Client ID、Client Secret",
|
||
"oidcStep3": "启用后,登录页将自动显示对应入口"
|
||
},
|
||
"section3": {
|
||
"title": "访问令牌 (AccessToken)",
|
||
"desc": "用于无浏览器场景的 API 调用。",
|
||
"generation": "生成与管理",
|
||
"oneTimeDisplay": "一次性显示",
|
||
"oneTimeDisplayDesc": "创建令牌后,密钥仅显示一次。",
|
||
"oneTimeDisplayHint": "请务必在创建后立即复制保存。",
|
||
"secureHash": "安全存储",
|
||
"secureHashDesc": "系统仅存储令牌的 SHA-256 哈希,原始密钥不可恢复。",
|
||
"headerUsage": "使用方式",
|
||
"headerUsageDesc": "在请求 Header 中携带令牌:",
|
||
"bearerHeader": "Bearer Token 方式",
|
||
"customHeader": "自定义 Header 方式"
|
||
},
|
||
"section4": {
|
||
"title": "系统配置",
|
||
"desc": "通过管理后台或 API 动态管理系统配置。",
|
||
"cacheAccel": "缓存加速",
|
||
"cacheAccelDesc": "公开配置项支持多级缓存(内存 → Redis → 数据库),高频读取场景下性能优异。",
|
||
"coreConfigs": "核心配置项",
|
||
"siteName": "站点名称",
|
||
"passwordLoginEnabled": "密码登录开关",
|
||
"registrationEnabled": "注册开关",
|
||
"maxApiKeys": "最大 API Key 数量"
|
||
},
|
||
"section5": {
|
||
"title": "异步任务",
|
||
"desc": "基于 Asynq 的分布式任务队列系统。",
|
||
"scheduler": "定时任务 (Scheduler)",
|
||
"schedulerDesc": "支持 Cron 表达式配置定时任务。",
|
||
"worker": "Worker",
|
||
"workerDesc": "后台 Worker 进程负责消费和执行任务。"
|
||
},
|
||
"section6": {
|
||
"title": "可观测性",
|
||
"desc": "内置 OpenTelemetry 支持。",
|
||
"tracing": "链路追踪",
|
||
"tracingDesc": "支持将 Trace 数据导出到 Jaeger、Zipkin 等后端。",
|
||
"structuredLog": "结构化日志",
|
||
"structuredLogDesc": "基于 Zap 的高性能结构化日志,支持按级别输出。"
|
||
}
|
||
},
|
||
"terms": {
|
||
"title": "服务协议",
|
||
"description": "使用 Wavelet Platform 前,请仔细阅读以下服务条款。",
|
||
"section1": {
|
||
"title": "总则",
|
||
"subject": "协议主体",
|
||
"subjectDesc": "本协议是您与 Wavelet Platform 运营方之间关于使用平台服务所订立的协议。",
|
||
"readCarefully": "请仔细阅读",
|
||
"readCarefullyDesc": "请您在使用服务前仔细阅读本协议全部内容。如您不同意本协议的任何条款,请勿使用本平台服务。",
|
||
"composition": "协议构成",
|
||
"compositionDesc": "本协议正文包括协议正文、平台已经发布或将来可能发布的各类规则。所有规则为本协议不可分割的组成部分,与协议正文具有同等法律效力。"
|
||
},
|
||
"section2": {
|
||
"title": "服务内容",
|
||
"liability": "责任范围",
|
||
"liabilityDesc": "本平台仅提供技术基础设施和开发工具服务。用户应自行承担使用平台过程中产生的所有责任。"
|
||
},
|
||
"section3": {
|
||
"title": "用户账号",
|
||
"accountSystem": "账号体系",
|
||
"accountSystemDesc": "用户在本平台注册并获得账号后,应妥善保管其账号和密码。用户应对其账号项下的所有行为负责。",
|
||
"securityResponsibility": "安全责任",
|
||
"passwordSecurity": "密码安全",
|
||
"passwordSecurityDesc": "用户应使用安全强度足够的密码,并定期更换。因用户密码保管不当导致的损失,由用户自行承担。",
|
||
"tokenSecurity": "令牌安全",
|
||
"tokenSecurityDesc": "访问令牌(AccessToken)等同于账号凭证,用户应妥善保管。",
|
||
"tokenLeakLiability": "因令牌泄露导致的任何损失,由用户自行承担。"
|
||
},
|
||
"section4": {
|
||
"title": "使用规范",
|
||
"desc": "用户在使用本平台服务时,必须遵守以下规范:",
|
||
"redLine": "禁止行为红线",
|
||
"nationalSecurity": "危害国家安全",
|
||
"nationalSecurityDesc": "不得利用平台服务制作、复制、发布含有危害国家安全的信息。",
|
||
"illegalInfo": "违法信息",
|
||
"illegalInfoDesc": "不得制作、复制、发布违反国家法律法规的信息。",
|
||
"harmfulContent": "有害内容",
|
||
"harmfulContentDesc": "不得发布含有骚扰、侮辱、恐吓或其他有害内容的信息。",
|
||
"ipInfringement": "知识产权侵权",
|
||
"ipInfringementDesc": "不得侵犯他人知识产权、商业秘密等合法权益。",
|
||
"otherIllegal": "其他违法行为",
|
||
"otherIllegalDesc": "不得利用平台服务从事其他违反法律法规的行为。",
|
||
"enforcement": "违规处理",
|
||
"enforcementDesc": "如用户违反上述规范,平台有权采取以下措施:",
|
||
"enforcementAction": "警告、暂停或终止服务"
|
||
},
|
||
"section5": {
|
||
"title": "免责声明",
|
||
"basicDisclaimer": "基本免责",
|
||
"basicDisclaimerDesc": "平台将尽最大努力确保服务的安全性和稳定性,但不对以下情形承担责任:",
|
||
"techInterruption": "技术中断",
|
||
"techInterruptionDesc": "因以下原因导致的服务中断或数据丢失:",
|
||
"naturalDisaster": "自然灾害等不可抗力",
|
||
"govAction": "政府行为或法律法规变更",
|
||
"telecomFailure": "电信运营商故障",
|
||
"hacking": "黑客攻击或计算机病毒"
|
||
},
|
||
"section6": {
|
||
"title": "法律适用与争议解决",
|
||
"applicableLaw": "适用法律",
|
||
"applicableLawDesc": "本协议的签订、履行和解释均适用:",
|
||
"lawName": "中华人民共和国法律",
|
||
"lawScope": "不含冲突法规则",
|
||
"disputeResolution": "争议解决",
|
||
"disputeResolutionDesc": "因本协议引起的或与本协议有关的任何争议,双方应友好协商解决。协商不成的,任何一方均有权向有管辖权的人民法院提起诉讼。"
|
||
}
|
||
},
|
||
"privacy": {
|
||
"title": "隐私政策",
|
||
"description": "Wavelet Platform 重视用户隐私保护。本政策说明我们如何收集、使用和保护您的个人信息。",
|
||
"descriptionRights": "请在使用我们的服务前仔细阅读本政策。",
|
||
"section1": {
|
||
"title": "信息收集",
|
||
"desc": "我们收集以下类型的信息:",
|
||
"authInfo": "认证信息",
|
||
"authInfoDesc": "包括用户名、邮箱地址、加密后的密码哈希。",
|
||
"authInfoNote": "我们不会存储您的明文密码。",
|
||
"logInfo": "访问日志",
|
||
"logInfoDesc": "包括 IP 地址、浏览器类型、访问时间、请求路径。"
|
||
},
|
||
"section2": {
|
||
"title": "信息使用",
|
||
"desc": "我们收集的信息用于以下目的:",
|
||
"storageSecurity": "存储安全",
|
||
"storageSecurityDesc": "所有用户数据均加密存储于安全的服务器环境中。",
|
||
"encryption": "加密措施",
|
||
"encryptionDesc": "密码使用 bcrypt 单向哈希加密,令牌使用 SHA-256 哈希存储。",
|
||
"accessControl": "访问控制",
|
||
"accessControlDesc": "严格的权限管理机制确保只有授权人员才能访问用户数据。"
|
||
},
|
||
"section3": {
|
||
"title": "信息使用目的",
|
||
"desc": "我们收集的信息将用于以下目的:",
|
||
"identity": "身份验证",
|
||
"identityDesc": "验证用户身份,确保账号安全。",
|
||
"business": "业务运营",
|
||
"businessDesc": "提供、维护和改进我们的服务。",
|
||
"riskControl": "风险控制",
|
||
"riskControlDesc": "检测、预防和处理安全风险及欺诈行为。",
|
||
"prohibited": "禁止用途",
|
||
"prohibitedDesc": "我们承诺不会将用户信息用于以下用途:出售给第三方、发送未经许可的商业推广。"
|
||
},
|
||
"section4": {
|
||
"title": "信息共享与披露",
|
||
"sharingPrinciple": "共享原则",
|
||
"sharingPrincipleDesc": "未经用户同意,我们不会向第三方共享用户个人信息,但以下情况除外:",
|
||
"sharingException1": "法律法规要求、政府机关依法定程序调取",
|
||
"sharingException2": "为保护平台或公众的合法权益所必需",
|
||
"transfer": "信息转让",
|
||
"transferDesc": "如平台发生合并、收购等情形,我们会要求新的持有者继续受本政策约束。"
|
||
},
|
||
"section5": {
|
||
"title": "用户权利",
|
||
"desc": "用户对其个人信息享有以下权利:",
|
||
"viewManage": "查看与管理",
|
||
"viewManageDesc": "用户可随时在个人设置中查看和修改其个人信息。",
|
||
"deleteAccount": "账号删除",
|
||
"deleteAccountDesc": "用户可申请删除其账号及关联的所有个人数据。"
|
||
},
|
||
"section6": {
|
||
"title": "政策更新",
|
||
"desc": "我们可能会不时更新本隐私政策。政策更新后,我们会在平台上发布通知。",
|
||
"notification": "重大变更将通过站内通知或邮件方式告知用户。"
|
||
}
|
||
}
|
||
},
|
||
"home": {
|
||
"banner": {
|
||
"description": "这是一个通用的二次开发基础平台,内置用户管理、认证鉴权、文件存储、任务调度、通知推送和可观测性等常用功能模块,帮助开发者快速启动新项目。",
|
||
"getStarted": "快速开始",
|
||
"hideHint": "收起提示"
|
||
},
|
||
"navigation": {
|
||
"title": "导航"
|
||
},
|
||
"quickLinks": {
|
||
"profile": {
|
||
"title": "个人资料",
|
||
"description": "查看和编辑您的账户信息"
|
||
},
|
||
"apiDocs": {
|
||
"title": "接口文档",
|
||
"description": "API 接口完整参考"
|
||
},
|
||
"userDocs": {
|
||
"title": "使用文档",
|
||
"description": "快速上手指南"
|
||
}
|
||
},
|
||
"adminLinks": {
|
||
"settings": {
|
||
"title": "系统设置",
|
||
"description": "配置系统安全、业务与外观参数"
|
||
},
|
||
"systemConfig": {
|
||
"title": "系统配置",
|
||
"description": "管理 Key-Value 系统配置项"
|
||
},
|
||
"userManagement": {
|
||
"title": "用户管理",
|
||
"description": "查看和管理所有注册用户"
|
||
},
|
||
"tasks": {
|
||
"title": "任务管理",
|
||
"description": "异步任务队列与定时任务调度"
|
||
},
|
||
"logs": {
|
||
"title": "系统日志",
|
||
"description": "用户访问日志与应用运行日志"
|
||
}
|
||
},
|
||
"jumpNow": "立即跳转",
|
||
"enterNow": "立即进入",
|
||
"adminConsole": "管理后台",
|
||
"developerSection": {
|
||
"heading": "开发者友好",
|
||
"description": "内置完整的 RESTful API 文档、Swagger UI 与 TypeScript SDK 示例,帮助您快速集成。",
|
||
"features": {
|
||
"restful": "完整 RESTful API",
|
||
"swagger": "在线 Swagger 文档",
|
||
"typescript": "TypeScript SDK 示例",
|
||
"examples": "丰富的使用示例"
|
||
},
|
||
"apiDocs": "查看接口文档",
|
||
"codeComment": "// 快速开始 — API 调用示例",
|
||
"codeQuickStart": "快速开始"
|
||
},
|
||
"hero": {
|
||
"subtitle": "内置用户认证、文件存储、任务调度",
|
||
"subtitleLine2": "通知推送与可观测性,帮助您快速启动下一个项目。",
|
||
"getStarted": "快速开始",
|
||
"learnMore": "了解更多",
|
||
"features": {
|
||
"readyToUse": "开箱即用",
|
||
"highlyExtensible": "高度可扩展",
|
||
"industrialGrade": "工业级品质"
|
||
}
|
||
},
|
||
"footer": {
|
||
"description": "通用二次开发标准范式平台",
|
||
"product": "产品",
|
||
"dashboard": "控制台",
|
||
"personalSettings": "个人设置",
|
||
"development": "开发",
|
||
"quickStart": "快速开始",
|
||
"apiDocs": "接口文档",
|
||
"sourceCode": "源代码",
|
||
"community": "社区",
|
||
"discussions": "Discussions",
|
||
"privacyPolicy": "隐私政策",
|
||
"termsOfService": "服务条款"
|
||
}
|
||
},
|
||
"files": {
|
||
"uploadSuccess": "文件上传成功",
|
||
"uploadFailed": "上传失败",
|
||
"deleteSuccess": "文件已成功删除",
|
||
"deleteFailed": "删除失败",
|
||
"searchPlaceholder": "搜索文件名...",
|
||
"private": "私有",
|
||
"public": "公开",
|
||
"uploading": "正在上传...",
|
||
"uploadFile": "上传文件",
|
||
"noFiles": "还没有上传文件",
|
||
"noMatchingFiles": "未搜索到匹配的文件",
|
||
"uploadFirstFile": "上传您的第一个文件,支持图片、视频、文档和压缩包等格式。",
|
||
"selectFileUpload": "选择文件上传",
|
||
"downloadFile": "下载文件",
|
||
"deleteFile": "删除文件",
|
||
"prevPage": "上一页",
|
||
"nextPage": "下一页",
|
||
"confirmDeleteFile": "确认删除文件",
|
||
"confirmDeleteFileDesc": "确定要删除文件「{name}」吗?删除后此文件将无法恢复。",
|
||
"cancel": "取消",
|
||
"confirmDelete": "确认删除",
|
||
"myFiles": "我的文件"
|
||
},
|
||
"general": {
|
||
"manage": {
|
||
"saveSuccess": "保存成功",
|
||
"saveFailed": "保存失败",
|
||
"unknownError": "未知错误",
|
||
"deleteSuccess": "删除成功",
|
||
"deleteFailed": "删除失败",
|
||
"loading": "加载中",
|
||
"noData": "暂无数据",
|
||
"configList": "配置列表",
|
||
"confirmDelete": "确认删除?",
|
||
"confirmDeleteDesc": "此操作无法撤销。这将永久删除该配置。",
|
||
"cancel": "取消",
|
||
"confirmDeleteAction": "确认删除",
|
||
"configInfo": "配置信息",
|
||
"selectConfigToView": "请选择配置查看详情",
|
||
"updating": "更新中",
|
||
"update": "更新",
|
||
"actions": "操作"
|
||
},
|
||
"passwordDialog": {
|
||
"enterPassword": "请输入密码",
|
||
"enterPasswordDesc": "为了您的账户安全,请输入6位认证密码进行验证",
|
||
"cancel": "取消",
|
||
"verifying": "验证中...",
|
||
"confirm": "确认"
|
||
}
|
||
},
|
||
"contexts": {
|
||
"adminUsers": {
|
||
"userStatusChanged": "已{action}用户 {username}",
|
||
"enabled": "启用",
|
||
"disabled": "禁用",
|
||
"updateStatusFailed": "更新状态失败",
|
||
"userCreated": "已成功创建用户 {username}",
|
||
"createUserFailed": "创建用户失败",
|
||
"userDeleted": "已删除用户 {username}",
|
||
"deleteUserFailed": "删除用户失败",
|
||
"updateUserSuccess": "更新用户信息成功",
|
||
"updateUserFailed": "更新用户信息失败"
|
||
},
|
||
"admin": {
|
||
"loadConfigFailed": "加载系统配置失败",
|
||
"updateConfigFailed": "更新系统配置失败"
|
||
},
|
||
"user": {
|
||
"getUserInfoFailed": "获取用户信息失败",
|
||
"logoutFailed": "登出失败"
|
||
}
|
||
},
|
||
"notFound": {
|
||
"description": "抱歉,您访问的页面似已迷失在数字星云中。请检查路径或返回安全地带。",
|
||
"previousPage": "上一页",
|
||
"home": "首页"
|
||
},
|
||
"providers": {
|
||
"titleUpdater": {
|
||
"login": "登录",
|
||
"register": "注册",
|
||
"admin": "后台管理",
|
||
"dashboard": "控制台"
|
||
}
|
||
},
|
||
"metadata": {
|
||
"title": "OpenFlare",
|
||
"description": "OpenFlare 边缘节点与反向代理管理平台"
|
||
},
|
||
"dashboard": {
|
||
"title": "总览",
|
||
"generatedAt": "数据生成于 {time}",
|
||
"refresh": "刷新",
|
||
"loadingTitle": "加载总览数据",
|
||
"loadingDesc": "正在聚合节点健康、流量与容量指标...",
|
||
"loadFailed": "总览看板加载失败:{error}",
|
||
"emptyTitle": "暂无总览数据",
|
||
"emptyDesc": "系统已经启动,但还没有可展示的总览聚合结果。",
|
||
"requestFailed": "请求失败,请稍后重试。",
|
||
"stats": {
|
||
"requests24h": "24h 请求量",
|
||
"requestsMeta": "24h 独立访客 {visitors} · 错误 {errors} · 估算 QPS {qps}",
|
||
"clusterCapacity": "集群容量",
|
||
"avgMemoryHighLoad": "平均内存 {memory} · 高负载节点 CPU {cpu} / 内存 {memoryNodes} / 存储 {storage}",
|
||
"nodeOverview": "节点概览",
|
||
"onlineOf": "/ {total} 在线",
|
||
"pending": "待接入 {count}",
|
||
"unhealthyOffline": "异常 {unhealthy} · 离线 {offline}"
|
||
},
|
||
"world": {
|
||
"title": "全球态势板",
|
||
"description": "汇总节点分布、来源国家热度与最近窗口运行状态。",
|
||
"legendSource": "来源",
|
||
"legendHealthy": "正常",
|
||
"legendPressure": "承压",
|
||
"legendUnhealthy": "异常",
|
||
"modeVisitorSource": "访客来源",
|
||
"modeNodeCoords": "节点坐标",
|
||
"modeCoverage": "覆盖信号",
|
||
"onlineCoverage": "在线覆盖",
|
||
"onlineHint": "{online}/{total} 在线",
|
||
"runHealth": "运行健康",
|
||
"unhealthyCount": "{count} 个异常",
|
||
"requests24h": "24小时请求",
|
||
"qpsReported": "QPS {qps} · {count} 个节点上报",
|
||
"nodeCoords": "节点坐标",
|
||
"sourceCountries": "{count} 个来源国家",
|
||
"fallbackPins": "未配置时使用预设落点",
|
||
"avgCpu": "平均 CPU",
|
||
"highCount": "{count} 个偏高",
|
||
"avgMemory": "平均内存",
|
||
"highStorage": "高存储",
|
||
"offlinePending": "{offline} 离线 · {pending} 待接入",
|
||
"mapPreparing": "地图准备中",
|
||
"mapPreparingDesc": "进入可视区域后加载",
|
||
"noNodesOverlay": "暂无节点,接入后将展示地理分布"
|
||
},
|
||
"map": {
|
||
"sourceRequests": "最近 24 小时来源请求 {count}",
|
||
"presetPin": "预设落点",
|
||
"requestsErrors": "请求量 {requests} · 错误数 {errors}",
|
||
"eventsStatus": "活动事件 {events} · 节点状态 {status}",
|
||
"openrestyStatus": "OpenResty 状态 {status}",
|
||
"loadFailed": "全球地图加载失败",
|
||
"loading": "全球地图加载中",
|
||
"loadFailedDesc": "ECharts 世界地图资源未能成功注册,请稍后刷新重试。",
|
||
"loadingDesc": "正在按需初始化全球地图,这一步会延后到首屏内容稳定后执行。",
|
||
"measuring": "正在测量地图容器尺寸..."
|
||
},
|
||
"trafficTrend": {
|
||
"title": "24 小时请求趋势",
|
||
"description": "按小时拆分请求总量与 2xx/4xx/5xx 状态码请求量,判断各状态是否异常抬升。",
|
||
"summaryHint": "近 24 小时",
|
||
"requests": "请求量",
|
||
"status2xx": "2xx 请求",
|
||
"status4xx": "4xx 请求",
|
||
"status5xx": "5xx 请求"
|
||
},
|
||
"capacityTrend": {
|
||
"title": "24 小时容量趋势",
|
||
"description": "按小时聚合 CPU 与内存使用率,判断整体容量是否持续紧张。",
|
||
"avgCpu": "平均 CPU",
|
||
"avgMemory": "平均内存"
|
||
},
|
||
"trafficCapacity": {
|
||
"title": "24 小时业务流量与容量趋势",
|
||
"networkHint": "近 24 小时 · 来自访问日志",
|
||
"received": "接收数据",
|
||
"provided": "已提供数据",
|
||
"capacityHint": "近 24 小时 · 宿主机容量 · 平均值"
|
||
},
|
||
"distributions": {
|
||
"sourceTitle": "来源分布",
|
||
"sourceDesc": "聚合最近 24 小时主要来源国家。",
|
||
"sourceEmpty": "暂无来源分布数据",
|
||
"statusTitle": "状态码分布",
|
||
"statusDesc": "快速判断成功响应是否仍是主流,以及错误码是否有抬升。",
|
||
"statusEmpty": "暂无状态码分布",
|
||
"httpLabel": "HTTP {code}",
|
||
"domainTitle": "Top Domain",
|
||
"domainDesc": "观察主要流量集中在哪些域名。",
|
||
"domainEmpty": "暂无域名分布"
|
||
},
|
||
"nodeHealth": {
|
||
"title": "节点健康列表",
|
||
"description": "按异常数量和资源压力排序。",
|
||
"openNodes": "进入节点页",
|
||
"emptyTitle": "暂无节点",
|
||
"emptyDesc": "节点接入后,这里会展示系统健康与容量摘要。",
|
||
"colNode": "节点",
|
||
"colStatus": "状态",
|
||
"colCpuMem": "CPU / 内存",
|
||
"colReqErr": "请求 / 错误",
|
||
"colEvents": "活动异常",
|
||
"colHeartbeat": "最近心跳",
|
||
"colActions": "操作",
|
||
"noGeo": "未配置地图点位",
|
||
"wsConnected": "WS 已连接",
|
||
"na": "暂无",
|
||
"detail": "详情"
|
||
},
|
||
"nodeRank": {
|
||
"title": "Top 节点榜单",
|
||
"traffic": "流量最高节点",
|
||
"trafficEmpty": "暂无流量榜单",
|
||
"pressure": "容量压力节点",
|
||
"pressureEmpty": "暂无容量压力数据"
|
||
}
|
||
},
|
||
"nodes": {
|
||
"title": "节点管理",
|
||
"applyLogs": "应用记录",
|
||
"create": "新增节点",
|
||
"listTitle": "节点列表",
|
||
"refreshNow": "立即刷新",
|
||
"loadingList": "加载节点列表中...",
|
||
"emptyAll": "暂无节点,请先创建一个节点。",
|
||
"emptyFilter": "当前筛选无结果",
|
||
"updated": "节点已更新",
|
||
"created": "节点已创建",
|
||
"deleted": "节点已删除",
|
||
"deleteTitle": "确认删除节点",
|
||
"deleteDesc": "确认删除节点「{name}」吗?删除后该节点需要重新创建并重新接入。",
|
||
"deleting": "删除中...",
|
||
"confirmDelete": "确认删除",
|
||
"edit": "编辑",
|
||
"delete": "删除",
|
||
"refresh": "刷新",
|
||
"detail": "详情",
|
||
"na": "暂无",
|
||
"wsConnected": "WS 已连接",
|
||
"wsEstablished": "WebSocket 长连接已建立",
|
||
"requestFailed": "请求失败,请稍后重试。",
|
||
"unknown": "未知",
|
||
"running": "运行中",
|
||
"liveConfig": "实时配置",
|
||
"notApplied": "未应用",
|
||
"enabled": "已启用",
|
||
"manual": "手动",
|
||
"lockedSuffix": "(已锁定)",
|
||
"noGeo": "未配置地图点位",
|
||
"notConfigured": "未配置",
|
||
"ipLine": "IP:{ip}",
|
||
"locationLine": "位置:{location}",
|
||
"backToList": "返回节点列表",
|
||
"missingId": "缺少节点 ID,请从节点列表进入详情页。",
|
||
"loadingDetail": "加载节点详情中...",
|
||
"notFound": "节点不存在,可能已被删除或 ID 无效。",
|
||
"syncing": "同步中...",
|
||
"forceSync": "强制同步",
|
||
"dispatching": "下发中...",
|
||
"viewUpgrade": "查看升级",
|
||
"tabOverview": "概览",
|
||
"tabManage": "状态与部署",
|
||
"kpiNodeId": "节点 ID",
|
||
"kpiLastSeen": "最近心跳",
|
||
"kpiCurrentConfig": "当前配置",
|
||
"filter": {
|
||
"all": "全部节点",
|
||
"descAll": "当前展示全部节点。",
|
||
"descRelay": "当前仅展示 Relay 节点。",
|
||
"descTunnel": "当前仅展示 Tunnel 节点。",
|
||
"descEdge": "当前仅展示 Edge 节点。"
|
||
},
|
||
"status": {
|
||
"online": "在线",
|
||
"pending": "待接入",
|
||
"offline": "离线",
|
||
"running": "运行中",
|
||
"wsConnected": "WS 已连接"
|
||
},
|
||
"apply": {
|
||
"success": "成功",
|
||
"warning": "警告",
|
||
"failed": "失败",
|
||
"none": "暂无"
|
||
},
|
||
"health": {
|
||
"healthy": "健康",
|
||
"unhealthy": "异常",
|
||
"unknown": "未知"
|
||
},
|
||
"relative": {
|
||
"justNow": "刚刚",
|
||
"minutesAgo": "{count} 分钟前",
|
||
"hoursAgo": "{count} 小时前",
|
||
"daysAgo": "{count} 天前",
|
||
"monthsAgo": "{count} 个月前"
|
||
},
|
||
"uptime": {
|
||
"daysHours": "{days} 天 {hours} 小时",
|
||
"hoursMinutes": "{hours} 小时 {minutes} 分钟",
|
||
"minutes": "{minutes} 分钟"
|
||
},
|
||
"channel": {
|
||
"preview": "预览版",
|
||
"stable": "正式版"
|
||
},
|
||
"table": {
|
||
"node": "节点",
|
||
"status": "状态",
|
||
"version": "Version",
|
||
"runHealth": "运行健康",
|
||
"currentVersion": "当前版本",
|
||
"latestApply": "最近应用",
|
||
"lastSeen": "最近心跳",
|
||
"actions": "操作"
|
||
},
|
||
"editor": {
|
||
"editTitle": "编辑节点",
|
||
"createTitle": "新增节点",
|
||
"description": "预创建节点后可在详情页查看专属 Token 与部署命令。",
|
||
"nodeType": "节点类型",
|
||
"typeEdge": "Edge 节点",
|
||
"typeRelay": "Relay 节点",
|
||
"typeTunnel": "Tunnel 节点",
|
||
"name": "节点名称",
|
||
"namePlaceholder": "例如 edge-hk-01",
|
||
"ip": "节点 IP",
|
||
"ipPlaceholder": "可选,接入后自动上报",
|
||
"lockIp": "锁定 IP",
|
||
"lockIpDesc": "启用后管理端不再自动覆盖 IP",
|
||
"autoUpdate": "自动更新 Agent",
|
||
"autoUpdateDesc": "启用后节点将自动拉取正式版更新",
|
||
"bindPort": "绑定端口",
|
||
"vhostPort": "VHost 端口",
|
||
"manualGeo": "手动地图点位",
|
||
"manualGeoDesc": "用于总览地图展示",
|
||
"geoName": "位置名称",
|
||
"latitude": "纬度",
|
||
"longitude": "经度",
|
||
"saving": "保存中...",
|
||
"saveEdit": "保存修改",
|
||
"createAction": "新增节点",
|
||
"errName": "请输入节点名称",
|
||
"errLockIp": "锁定 IP 时必须填写节点 IP",
|
||
"errBindPort": "请输入有效的绑定端口",
|
||
"errVhostPort": "请输入有效的 VHost 端口"
|
||
},
|
||
"install": {
|
||
"edgeTitle": "边缘节点部署",
|
||
"edgeDesc": "使用 Agent Token 将边缘节点接入控制端。",
|
||
"relayTitle": "中继部署命令",
|
||
"relayDesc": "使用 Discovery Token 将 frps 中继节点接入控制端。",
|
||
"tunnelTitle": "隧道部署命令",
|
||
"tunnelDesc": "使用 Tunnel Token 将 openflared 客户端接入控制端。",
|
||
"agentToken": "Agent Token",
|
||
"discoveryToken": "Discovery Token",
|
||
"tunnelToken": "Tunnel Token",
|
||
"scriptLabel": "一键脚本部署 (Linux / macOS)",
|
||
"dockerLabel": "Docker 容器部署",
|
||
"copyFailed": "复制失败,请手动选择命令文本。",
|
||
"copiedScript": "部署脚本命令已复制",
|
||
"copiedDocker": "Docker 部署命令已复制",
|
||
"copyScript": "复制脚本",
|
||
"copyDocker": "复制 Docker",
|
||
"nodeId": "Node ID",
|
||
"serverUrl": "Server URL(控制端地址)",
|
||
"serverUrlHint": "部署脚本和容器将使用此地址连接 OpenFlare 控制端。",
|
||
"noToken": "节点尚未生成接入 Token,请稍后刷新。",
|
||
"needServerUrl": "请填写有效的 Server URL 以生成部署命令。"
|
||
},
|
||
"update": {
|
||
"title": "Agent 升级",
|
||
"description": "检查 GitHub 发布并向节点下发升级指令,节点将在下一次心跳后执行。",
|
||
"currentVersion": "当前版本",
|
||
"channel": "检查通道",
|
||
"updateStatus": "更新状态",
|
||
"waitingPreview": "等待预览更新",
|
||
"waitingUpdate": "等待更新",
|
||
"notRequested": "未下发",
|
||
"checking": "检查发布版本中...",
|
||
"hasUpdate": "发现可升级版本",
|
||
"upToDate": "当前已是最新版本",
|
||
"previewRelease": "Preview 发布",
|
||
"stableRelease": "正式发布",
|
||
"targetVersion": "目标版本",
|
||
"notFound": "未找到",
|
||
"publishedAt": "发布时间",
|
||
"noNotes": "暂无更新说明",
|
||
"viewRelease": "查看发布详情",
|
||
"checkStable": "检查正式版",
|
||
"checkPreview": "检查预览版",
|
||
"upgradePreview": "升级到预览版",
|
||
"upgradeStable": "升级到正式版"
|
||
},
|
||
"edge": {
|
||
"upgrade": "升级 Agent",
|
||
"restartOpenresty": "重启 OpenResty",
|
||
"runStatus": "运行状态",
|
||
"runStatusDesc": "节点在线情况与 OpenResty 健康",
|
||
"openrestyHealth": "OpenResty 健康",
|
||
"lastSeen": "最近心跳",
|
||
"ip": "IP 地址",
|
||
"geo": "地图点位",
|
||
"syncTitle": "配置同步",
|
||
"syncDesc": "版本追平与应用结果摘要",
|
||
"currentVersion": "当前配置版本",
|
||
"latestApply": "最近应用",
|
||
"latestApplyAt": "最近应用时间",
|
||
"agentVersion": "Agent 版本",
|
||
"nginxVersion": "Nginx 版本",
|
||
"autoUpdate": "自动更新",
|
||
"runtimeMessages": "运行消息",
|
||
"runtimeMessagesDesc": "OpenResty 与 Agent 上报的状态说明",
|
||
"openrestyMessage": "OpenResty 状态消息",
|
||
"noExtraError": "当前未上报额外错误。",
|
||
"restartPending": "已等待节点在下一次心跳后执行 OpenResty 重启。",
|
||
"kpiAgent": "Agent 版本",
|
||
"connectionHint": "OpenResty 当前连接",
|
||
"toastUpdated": "节点已更新",
|
||
"toastForceSync": "已向节点 {name} 下发强制同步指令",
|
||
"toastRestart": "已向节点 {name} 下发 OpenResty 重启指令",
|
||
"toastUpgrade": "已向节点 {name} 下发{channel}升级指令",
|
||
"toastDeleted": "节点已删除"
|
||
},
|
||
"relay": {
|
||
"upgrade": "升级 Relay",
|
||
"runStatus": "中继运行状态",
|
||
"runStatusDesc": "frps 在线情况与负载摘要",
|
||
"health": "中继健康",
|
||
"connections": "活动连接 / 代理数",
|
||
"portsTitle": "网络端口",
|
||
"portsDesc": "frps 控制面与 HTTP 虚拟主机配置",
|
||
"bindPort": "绑定控制端口",
|
||
"vhostPort": "VHost HTTP 端口",
|
||
"agentAddr": "Agent 接入地址",
|
||
"relayVersion": "Relay 版本",
|
||
"frpsVersion": "frps 核心版本",
|
||
"webuiTitle": "FRPS WebUI",
|
||
"webuiDesc": "控制 frps 内置 Web 管理界面是否启用及其监听端口",
|
||
"enableWebui": "启用 Web 管理界面",
|
||
"enableWebuiHint": "开启后,节点将启动 frps 的内置管理服务。",
|
||
"webuiPort": "Web 管理界面端口",
|
||
"webuiPortPlaceholder": "例如: 17500",
|
||
"actualPort": "当前实际监听端口:{port} (修改后在下次节点心跳同步时生效,默认为绑定端口 + 500)。",
|
||
"openWebui": "打开 FRPS WebUI",
|
||
"copiedLink": "链接已复制到剪贴板",
|
||
"copyLink": "复制链接",
|
||
"webuiDisabled": "WebUI 已禁用或未配置绑定端口。",
|
||
"metadata": "节点元数据",
|
||
"createdAt": "创建时间",
|
||
"updatedAt": "更新时间",
|
||
"kpiFrps": "frps 核心",
|
||
"connectionHint": "中继承载活动连接数",
|
||
"invalidPort": "端口号必须在 1 ~ 65535 范围内",
|
||
"portSaveFailed": "更新端口失败",
|
||
"toastPortSaved": "FRPS WebUI 端口配置已更新",
|
||
"toastUpdated": "中继节点已更新",
|
||
"toastWebui": "FRPS WebUI 设置已更新",
|
||
"toastForceSync": "已向中继节点 {name} 下发强制同步指令",
|
||
"toastUpgrade": "已向中继节点 {name} 下发{channel}升级指令",
|
||
"toastDeleted": "中继节点已删除",
|
||
"deleteTitle": "确认删除中继节点",
|
||
"deleteDesc": "确认删除中继节点「{name}」吗?删除后该节点需要重新创建并重新接入。"
|
||
},
|
||
"tunnel": {
|
||
"upgrade": "升级 openflared",
|
||
"runStatus": "隧道运行状态",
|
||
"runStatusDesc": "openflared 连接与在线情况",
|
||
"flaredStatus": "flared 状态",
|
||
"autoUpdate": "自动更新",
|
||
"syncTitle": "配置同步",
|
||
"syncDesc": "隧道客户端配置追平状态",
|
||
"currentVersion": "当前配置版本",
|
||
"latestApply": "最近应用",
|
||
"latestApplyAt": "最近应用时间",
|
||
"fileCount": "同步文件数",
|
||
"fileCountValue": "{count} 个",
|
||
"upgradeStatus": "升级状态",
|
||
"credentials": "接入凭证",
|
||
"credentialsDesc": "隧道客户端接入所需 Token",
|
||
"tunnelToken": "Tunnel Token",
|
||
"createdAt": "创建时间",
|
||
"updatedAt": "更新时间",
|
||
"kpiOpenflared": "openflared",
|
||
"connectionHint": "隧道并发连接数",
|
||
"toastUpdated": "隧道节点已更新",
|
||
"toastForceSync": "已向隧道节点 {name} 下发强制同步指令",
|
||
"toastUpgrade": "已向隧道节点 {name} 下发{channel}升级指令",
|
||
"toastDeleted": "隧道节点已删除",
|
||
"deleteTitle": "确认删除隧道节点",
|
||
"deleteDesc": "确认删除隧道节点「{name}」吗?删除后该节点需要重新创建并重新接入。"
|
||
},
|
||
"obs": {
|
||
"hostname": "主机名",
|
||
"os": "操作系统",
|
||
"kernelArch": "内核 / 架构",
|
||
"uptime": "在线时长",
|
||
"cpu": "CPU",
|
||
"cpuCores": "{count} 核",
|
||
"totalMemory": "总内存",
|
||
"totalStorage": "总存储",
|
||
"reportedAt": "上报时间",
|
||
"eventsTitle": "健康事件时间线",
|
||
"eventsDesc": "保留活动与已恢复事件,帮助判断运行状态。",
|
||
"cleanupLogs": "清理日志",
|
||
"filterAll": "全部事件",
|
||
"filterActive": "活动中",
|
||
"filterResolved": "已恢复",
|
||
"filterEmpty": "当前筛选下没有健康事件。",
|
||
"noMessage": "暂无详细消息",
|
||
"firstTriggered": "首次触发:",
|
||
"lastTriggered": "最近触发:",
|
||
"resolvedAt": "恢复时间:",
|
||
"noEvents": "节点当前还没有上报健康事件记录。",
|
||
"cleaned": "已清理 {count} 条健康事件日志",
|
||
"nothingToClean": "当前没有可清理的健康事件日志",
|
||
"loading": "加载运行观测数据中...",
|
||
"diag": "运行诊断",
|
||
"activeIssues": "{count} 个活动异常",
|
||
"stable": "运行稳定",
|
||
"noActiveEvents": "当前没有活动中的健康事件",
|
||
"systemCore": "系统核心",
|
||
"uptimeFromProfile": "来自节点系统画像上报",
|
||
"profileTitle": "系统画像",
|
||
"profileDesc": "节点上报的主机与硬件信息",
|
||
"noProfile": "节点已接入,但尚未上报完整系统画像。",
|
||
"noProfileLong": "节点已经接入,但还没有上报完整系统画像。",
|
||
"snapshotTitle": "实时资源快照",
|
||
"snapshotDesc": "最近一次 metrics 上报",
|
||
"realtimeResources": "实时资源",
|
||
"memory": "内存",
|
||
"storage": "存储",
|
||
"connections": "连接数",
|
||
"snapshotAgo": "快照 {time}",
|
||
"noSnapshot": "节点已接入,但尚未上报资源快照。",
|
||
"noSnapshotLong": "节点已经接入,但还没有上报资源快照。",
|
||
"cleanupTitle": "清理健康事件日志",
|
||
"cleanupDesc": "该操作会删除此节点在控制端记录的所有健康诊断事件历史,不会影响后续新事件上报。",
|
||
"cleaning": "清理中...",
|
||
"confirmCleanup": "确认清理",
|
||
"windowRequests": "查询窗口请求",
|
||
"windowVisitorsHint": "查询窗口独立访客 {visitors} · 错误率 {rate}%",
|
||
"noWindowSummary": "当前没有可展示的请求窗口摘要",
|
||
"capacityPressure": "容量压力",
|
||
"needsAttention": "需要关注",
|
||
"normalRange": "正常范围",
|
||
"cpuStorage": "CPU {cpu} · 存储 {storage}",
|
||
"noResourceSnapshot": "当前没有资源快照",
|
||
"sourceSignal": "来源信号",
|
||
"requestTimes": "{count} 次请求",
|
||
"noSourceDist": "当前没有来源分布数据",
|
||
"systemInfo": "系统信息",
|
||
"networkTraffic": "网络流量",
|
||
"noActiveIssue": "无活动异常",
|
||
"openrestyConn": "OpenResty 连接",
|
||
"currentConn": "当前连接:",
|
||
"throughputHint": "业务吞吐请看访问日志趋势(已提供/接收数据)",
|
||
"windowVisitors": "查询窗口独立访客",
|
||
"reqQps": "请求 {requests} · 估算 QPS {qps}",
|
||
"noTrafficSummary": "暂无窗口流量摘要",
|
||
"windowErrors": "查询窗口错误",
|
||
"errorRate": "错误率 {rate}%",
|
||
"noErrorSummary": "暂无错误率摘要",
|
||
"noNetworkSnapshot": "节点已经接入,但还没有上报网络流量相关快照。",
|
||
"trafficTrendDesc": "按小时聚合该节点的请求量和错误量。",
|
||
"capacityTrendDesc": "观察该节点 CPU 与内存使用率在 24 小时内的变化。",
|
||
"structureTitle": "请求结构分布",
|
||
"structureDesc": "聚合最近 24 小时窗口上报,帮助判断错误集中在哪些状态码、流量集中在哪些域名。",
|
||
"mainStatus": "主状态码",
|
||
"times": "{count} 次",
|
||
"noStatusDist": "暂无状态码分布",
|
||
"topDomain": "Top Domain",
|
||
"noDomainDist": "暂无域名分布",
|
||
"resolvedEvents": "已恢复事件",
|
||
"resolvedHint": "最近 24 小时已恢复健康事件",
|
||
"statusDist": "状态码分布",
|
||
"distEmpty": "暂无分布数据",
|
||
"unknownLabel": "未知"
|
||
},
|
||
"networkTrend": {
|
||
"title": "24 小时网络趋势",
|
||
"description": "按小时展示已提供/接收数据(访问日志);摘要为近 24 小时总量。",
|
||
"summaryHint": "近 24 小时",
|
||
"received": "接收数据",
|
||
"provided": "已提供数据"
|
||
},
|
||
"diskIo": {
|
||
"title": "24 小时磁盘 IO 趋势",
|
||
"description": "按小时展示磁盘读写速率(B/s),辅助判断日志放大、缓存抖动或磁盘压力。",
|
||
"summaryHint": "近 24 小时 · 平均速率",
|
||
"read": "磁盘读",
|
||
"write": "磁盘写"
|
||
}
|
||
},
|
||
"performance": {
|
||
"title": "性能",
|
||
"description": "集中管理 OpenResty 全局性能参数,保存后进入统一配置发布链路。",
|
||
"preview": "查看配置预览",
|
||
"saved": "性能参数已保存",
|
||
"saveFailed": "保存失败",
|
||
"loadingAuth": "加载权限信息...",
|
||
"forbiddenTitle": "权限不足",
|
||
"forbiddenDesc": "只有管理员可以访问性能设置。",
|
||
"loading": "加载性能参数...",
|
||
"runtimeTitle": "连接与事件",
|
||
"runtimeDesc": "worker、超时、请求体大小等运行参数",
|
||
"proxyTitle": "反代缓冲与超时",
|
||
"proxyDesc": "upstream 连接、缓冲与 WebSocket/HTTP3 开关",
|
||
"gzipTitle": "压缩",
|
||
"cacheTitle": "缓存",
|
||
"cacheDesc": "单节点反代缓存优化场景",
|
||
"errors": {
|
||
"workerProcesses": "worker_processes 必须为 auto 或大于 0 的整数",
|
||
"timeouts": "超时与连接参数必须为大于 0 的整数",
|
||
"statusCode": "空白页面返回状态码必须在 100 到 999 之间",
|
||
"bodySize": "client_max_body_size 格式不合法",
|
||
"headerBuffers": "large_client_header_buffers 格式必须类似 \"4 16k\"",
|
||
"proxyTimeouts": "代理超时参数必须为大于 0 的整数秒",
|
||
"proxyBuffers": "proxy_buffers 格式必须类似 \"16 16k\"",
|
||
"bufferSize": "缓冲大小必须为整数或带 k/m/g 单位的值",
|
||
"gzipMinLength": "gzip_min_length 必须为大于 0 的整数",
|
||
"gzipLevel": "gzip_comp_level 必须在 1 到 9 之间",
|
||
"cachePath": "启用缓存时必须填写 proxy_cache_path 目录",
|
||
"cacheFormat": "缓存 levels、inactive、max_size 或 lock_timeout 格式不合法",
|
||
"cacheKey": "启用缓存时必须填写缓存 Key 模板"
|
||
}
|
||
},
|
||
"applyLogs": {
|
||
"title": "应用日志",
|
||
"description": "查看节点应用配置的成功、警告和失败记录,支持按 node_id 过滤。",
|
||
"refresh": "刷新",
|
||
"clear": "清空日志",
|
||
"backToNodes": "返回节点",
|
||
"totalRecords": "总记录数",
|
||
"currentPage": "当前页",
|
||
"totalPages": "总页数",
|
||
"pageNodes": "当前页节点数",
|
||
"nodeId": "Node ID",
|
||
"nodePlaceholder": "输入 node_id 过滤应用日志",
|
||
"pageSize": "每页条数",
|
||
"pageSizeOption": "{count} 条",
|
||
"filter": "筛选",
|
||
"reset": "重置筛选",
|
||
"emptyTitle": "暂无应用日志",
|
||
"emptyDesc": "当前筛选条件下没有可展示的应用记录。",
|
||
"colNodeId": "Node ID",
|
||
"colVersion": "版本",
|
||
"colResult": "结果",
|
||
"colChecksum": "Checksum",
|
||
"colTime": "时间",
|
||
"colMessage": "消息",
|
||
"colActions": "操作",
|
||
"detail": "详情",
|
||
"pageInfo": "第 {current} / {total} 页,共 {count} 条记录。",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"loadFailed": "加载失败",
|
||
"cleared": "应用日志已清空",
|
||
"clearedDesc": "共删除 {count} 条记录",
|
||
"clearFailed": "清空应用日志失败",
|
||
"unknownError": "未知错误",
|
||
"clearTitle": "确认清空应用日志?",
|
||
"clearDesc": "该操作将删除全部 {count} 条应用日志记录,且不可撤销。清空后节点仍会照常上报新的应用结果。",
|
||
"clearing": "清空中...",
|
||
"confirmClear": "确认清空",
|
||
"success": "成功",
|
||
"warning": "警告",
|
||
"failed": "失败",
|
||
"sheetTitle": "应用日志详情",
|
||
"sheetDesc": "查看单条应用日志的完整结果与校验信息。",
|
||
"versionBadge": "版本: {version}",
|
||
"createdAt": "创建时间",
|
||
"targetChecksum": "目标 Checksum",
|
||
"mainChecksum": "主配置摘要",
|
||
"routeChecksum": "路由配置摘要",
|
||
"supportFiles": "支持文件数",
|
||
"message": "消息",
|
||
"close": "关闭"
|
||
},
|
||
"configVersions": {
|
||
"title": "配置版本",
|
||
"description": "查看历史快照、预览待发布配置差异,并在需要时重新激活旧版本。",
|
||
"refresh": "刷新",
|
||
"cleanupOld": "清理旧版本",
|
||
"viewDiff": "查看差异",
|
||
"forcePublish": "强制发布",
|
||
"previewPublish": "预览并发布",
|
||
"emptyTitle": "暂无历史版本",
|
||
"emptyDesc": "当前还没有可查看的发布记录,请先触发一次配置发布。",
|
||
"colVersion": "版本号",
|
||
"colStatus": "状态",
|
||
"colAuthor": "创建人",
|
||
"colChecksum": "Checksum",
|
||
"colCreatedAt": "创建时间",
|
||
"colActions": "操作",
|
||
"active": "当前激活",
|
||
"history": "历史版本",
|
||
"system": "系统",
|
||
"snapshot": "快照",
|
||
"activate": "激活",
|
||
"loadFailed": "加载失败",
|
||
"previewLoadFailed": "加载预览失败",
|
||
"diffLoadFailed": "加载差异失败",
|
||
"publishSuccess": "发布成功",
|
||
"publishSuccessDesc": "版本 {version}",
|
||
"publishFailed": "发布失败",
|
||
"activateSuccess": "激活成功",
|
||
"activateSuccessDesc": "版本 {version}",
|
||
"activateFailed": "激活失败",
|
||
"cleanupDone": "清理完成",
|
||
"cleanupDoneDesc": "已删除 {count} 个历史快照",
|
||
"cleanupFailed": "清理失败",
|
||
"unknownError": "未知错误",
|
||
"confirmPublishTitle": "确认发布配置",
|
||
"confirmPublishDesc": "将把当前待发布配置生成新版本并设为激活版本,节点将随后拉取更新。",
|
||
"confirmPublish": "确认发布",
|
||
"confirmForceTitle": "确认强制发布",
|
||
"confirmForceDesc": "将忽略配置变化检查并立即生成一个新版本,请确认你确实需要重新发布。",
|
||
"confirmActivateTitle": "确认激活版本",
|
||
"confirmActivateDesc": "确认将版本 {version} 设为当前激活版本吗?",
|
||
"confirmActivate": "确认激活",
|
||
"previewTitle": "发布预览",
|
||
"previewDesc": "查看待发布配置的渲染结果与支持文件。",
|
||
"loadingPreview": "正在加载预览...",
|
||
"routeCount": "规则 {count} 条",
|
||
"websiteCount": "网站 {count} 个",
|
||
"mainConfig": "主配置",
|
||
"routeConfig": "路由配置",
|
||
"supportFiles": "支持文件 ({count})",
|
||
"noSupportFiles": "当前发布不需要额外支持文件。",
|
||
"noChanges": "当前规则与已激活版本一致,无法重复发布。",
|
||
"close": "关闭",
|
||
"publishing": "发布中...",
|
||
"diffTitle": "配置差异",
|
||
"diffDesc": "对比当前待发布配置与已激活版本之间的差异。",
|
||
"loadingDiff": "正在加载差异数据...",
|
||
"activeVersion": "激活版本",
|
||
"none": "无",
|
||
"addedDomains": "新增域名",
|
||
"removedDomains": "删除域名",
|
||
"modifiedDomains": "修改域名",
|
||
"itemCount": "{count} 项",
|
||
"noChange": "无变更",
|
||
"emptyValue": "空",
|
||
"mainChanged": "主配置 已变化",
|
||
"mainUnchanged": "主配置 无变化",
|
||
"wafChanged": "WAF 已变化",
|
||
"wafUnchanged": "WAF 无变化",
|
||
"websiteDelta": "网站数 {from} → {to}",
|
||
"optionKey": "参数",
|
||
"activeValue": "激活值",
|
||
"pendingValue": "待发布值",
|
||
"noOptionChanges": "当前无 OpenResty 参数变化。",
|
||
"snapshotTitle": "版本快照",
|
||
"snapshotVersion": "版本 {version}",
|
||
"snapshotDesc": "查看历史配置版本的完整快照内容。",
|
||
"loadingSnapshot": "正在加载快照...",
|
||
"createdBy": "创建人",
|
||
"createdAt": "创建时间",
|
||
"snapshotLoadFailed": "加载版本快照失败",
|
||
"cleanupTitle": "清理历史快照",
|
||
"cleanupDesc": "删除旧的历史快照配置,系统将始终保护当前已激活的版本不被删除。",
|
||
"keepCount": "保留最近快照个数",
|
||
"keepHint": "默认为 10 个,最少需保留 3 个。",
|
||
"keepMin": "最少保留 3 个历史快照",
|
||
"cleaning": "清理中...",
|
||
"confirmCleanup": "确认清理"
|
||
},
|
||
"waf": {
|
||
"title": "WAF",
|
||
"createRule": "新建规则",
|
||
"ruleGroups": "规则组",
|
||
"ruleGroupsDesc": "使用可视化流程编排 WAF 防护规则;全局规则始终应用到所有网站。",
|
||
"refresh": "刷新",
|
||
"loading": "加载 WAF 规则组中...",
|
||
"empty": "暂无规则组,系统通常会自动创建全局规则组。",
|
||
"created": "规则已创建",
|
||
"groupDeleted": "规则组已删除",
|
||
"deleteTitle": "确认删除规则组",
|
||
"deleteDesc": "确认删除规则组「{name}」吗?删除后无法恢复。",
|
||
"deleting": "删除中...",
|
||
"confirmDelete": "确认删除",
|
||
"operationFailed": "操作失败",
|
||
"autoConfigMustBeObject": "自动配置必须是 JSON 对象。",
|
||
"autoConfigInvalid": "自动配置格式错误",
|
||
"saveFailed": "保存失败",
|
||
"enabled": "已启用",
|
||
"disabled": "已停用",
|
||
"enable": "启用",
|
||
"disable": "停用",
|
||
"global": "全局",
|
||
"custom": "自定义",
|
||
"allSites": "全部网站",
|
||
"siteCount": "{count} 个网站",
|
||
"columns": {
|
||
"name": "名称",
|
||
"type": "类型",
|
||
"status": "状态",
|
||
"nodeCount": "节点数",
|
||
"scope": "应用范围",
|
||
"updatedAt": "更新时间",
|
||
"actions": "操作"
|
||
},
|
||
"actions": {
|
||
"compose": "编排",
|
||
"delete": "删除"
|
||
},
|
||
"createDialog": {
|
||
"title": "新建 WAF 规则",
|
||
"description": "创建后将进入编排页面,通过处理单元配置规则执行流程。",
|
||
"name": "规则名称",
|
||
"namePlaceholder": "例如:入口防护",
|
||
"submit": "创建并编排"
|
||
},
|
||
"editor": {
|
||
"missingId": "缺少有效的规则 ID。",
|
||
"loadFailed": "规则加载失败,请重试。",
|
||
"reload": "重新加载",
|
||
"back": "返回",
|
||
"graphValid": "图校验通过",
|
||
"issueCount": "{count} 个问题",
|
||
"unsaved": "未保存",
|
||
"enableRule": "启用规则",
|
||
"format": "格式化",
|
||
"formatTitle": "自动整理节点与连线布局",
|
||
"saving": "保存中...",
|
||
"save": "保存",
|
||
"saved": "规则图已保存",
|
||
"conflict": "规则已在其他页面更新,请重新加载",
|
||
"saveCheckNodes": "保存失败,请检查标记的节点和连线",
|
||
"ruleEnabled": "规则已启用",
|
||
"ruleDisabled": "规则已停用",
|
||
"leaveTitle": "未保存的更改",
|
||
"leaveDesc": "存在未保存的更改,确定离开吗?",
|
||
"leaveConfirm": "确定离开",
|
||
"deleteNode": "删除节点",
|
||
"systemNodeLocked": "系统节点不可删除",
|
||
"deleteEdge": "删除连线",
|
||
"propsTitle": "节点属性",
|
||
"propsDesc": "配置当前处理单元",
|
||
"systemNodeNoConfig": "系统节点无需配置。",
|
||
"displayName": "显示名称",
|
||
"ips": "IP 地址",
|
||
"cidrs": "CIDR 网段",
|
||
"ipGroups": "IP 组",
|
||
"countries": "国家代码",
|
||
"countriesDesc": "共 {count} 个国家/地区,显示国家名与 ISO 代码",
|
||
"regions": "地区代码",
|
||
"regionsDesc": "共 {count} 个一级行政区,输入名称或代码搜索",
|
||
"uaCheck": "UA 检查",
|
||
"enableUaCheck": "开启 UA 检查",
|
||
"enableUaCheckTip": "开启后如果请求头不携带 UA 将返回 False",
|
||
"block": "屏蔽",
|
||
"blockTip": "命中返回 false,优先级高于匹配",
|
||
"blockBots": "屏蔽常见爬虫 UA",
|
||
"blockBotsTip": "浏览器或操作系统分类为 Bot(含 bot / spider / crawler / slurp 等特征,如 Googlebot)",
|
||
"blockAbnormal": "屏蔽非正常 UA",
|
||
"blockAbnormalTip": "浏览器分类为 Other 或 Unknown(不含搜索引擎等爬虫 Bot,爬虫请用上方开关)",
|
||
"blockCustom": "屏蔽自定义 UA",
|
||
"blockCustomTip": "原始 User-Agent 命中任一条正则时返回 false(Lua 模式语法)",
|
||
"customUaPatterns": "自定义 UA 正则",
|
||
"customUaPatternsTip": "每行一条 Lua 模式正则,命中任一条即 false;最多 32 条",
|
||
"uaMatch": "UA 匹配",
|
||
"matchMode": "匹配模式",
|
||
"matchModeTip": "浏览器与操作系统两侧都有选择时生效",
|
||
"matchOr": "或(OR)",
|
||
"matchAnd": "且(AND)",
|
||
"browsers": "浏览器",
|
||
"os": "操作系统",
|
||
"security": "安全防护",
|
||
"securityTip": "命中任意已启用规则返回 False",
|
||
"basicProtection": "基础防护",
|
||
"help": "说明",
|
||
"oneValuePerLine": "每行一个值",
|
||
"selectedCount": "已选择 {count} 项",
|
||
"pleaseSelect": "请选择",
|
||
"createLabel": "新建{label}",
|
||
"searchNameOrCode": "搜索名称或代码",
|
||
"addCode": "添加代码",
|
||
"searchOptions": "输入名称或代码搜索 {count} 个选项",
|
||
"noMatchingOptions": "没有匹配的选项",
|
||
"algorithm": "算法",
|
||
"algorithmFast": "快速",
|
||
"algorithmSlow": "稳健",
|
||
"difficulty": "难度",
|
||
"sessionTtl": "会话 TTL(秒)",
|
||
"challengeTtl": "挑战 TTL(秒)",
|
||
"statusCode": "HTTP 状态码",
|
||
"responseBody": "HTML 响应体",
|
||
"bytes": "字节",
|
||
"securityRules": {
|
||
"path_traversal": {
|
||
"label": "路径穿越防护",
|
||
"tip": "检测 Path / Query / Body 中的 ../ 与编码变种"
|
||
},
|
||
"file_inclusion": {
|
||
"label": "文件包含(LFI/RFI)",
|
||
"tip": "检测 Path / Query / Body 中的 php://、file://、/etc/passwd 等"
|
||
},
|
||
"sql_injection": {
|
||
"label": "SQL 注入",
|
||
"tip": "检测 Query / Body / Header / Cookie 中的 SQL 注入特征"
|
||
},
|
||
"command_injection": {
|
||
"label": "命令注入",
|
||
"tip": "检测 Query / Body / Header 中的 OS 命令注入特征"
|
||
},
|
||
"xss": {
|
||
"label": "XSS",
|
||
"tip": "检测 Query / Body / Header 中的反射型 XSS 特征"
|
||
},
|
||
"ssrf": {
|
||
"label": "SSRF",
|
||
"tip": "检测 Query / Body 中的内网地址与危险协议"
|
||
},
|
||
"malicious_upload": {
|
||
"label": "恶意文件上传",
|
||
"tip": "检测 Multipart 文件名与危险扩展名"
|
||
},
|
||
"xxe": {
|
||
"label": "XXE",
|
||
"tip": "检测 XML Body 中的外部实体特征"
|
||
},
|
||
"crlf_injection": {
|
||
"label": "CRLF 注入",
|
||
"tip": "检测 Header / Query / Body 中的换行注入"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"ipGroups": {
|
||
"title": "IP 组",
|
||
"create": "新建 IP 组",
|
||
"listTitle": "IP 组列表",
|
||
"listDesc": "维护可被 WAF IP 黑白名单引用的手动、自动与订阅 IP 集合。",
|
||
"refresh": "刷新",
|
||
"loading": "加载 IP 组中...",
|
||
"empty": "暂无 IP 组,请先创建一个。",
|
||
"updated": "IP 组已更新",
|
||
"created": "IP 组已创建",
|
||
"deleted": "IP 组已删除",
|
||
"synced": "同步完成",
|
||
"ipRemoved": "IP 已移除",
|
||
"testHit": "规则测试完成,命中 {count} 个 IP",
|
||
"testMiss": "规则测试完成,当前未命中任何 IP",
|
||
"deleteTitle": "确认删除 IP 组",
|
||
"deleteDesc": "确认删除 IP 组「{name}」吗?删除后无法恢复。",
|
||
"deleting": "删除中...",
|
||
"confirmDelete": "确认删除",
|
||
"operationFailed": "操作失败",
|
||
"types": {
|
||
"manual": "手动",
|
||
"automatic": "自动",
|
||
"subscription": "订阅"
|
||
},
|
||
"enabled": "启用",
|
||
"disabled": "停用",
|
||
"noSyncRecord": "尚无同步记录",
|
||
"columns": {
|
||
"name": "名称",
|
||
"type": "类型",
|
||
"status": "状态",
|
||
"ipCount": "IP 数",
|
||
"refCount": "引用次数",
|
||
"syncStatus": "同步状态",
|
||
"updatedAt": "更新时间",
|
||
"actions": "操作"
|
||
},
|
||
"actions": {
|
||
"view": "查看",
|
||
"edit": "编辑",
|
||
"test": "测试规则",
|
||
"runNow": "立即执行",
|
||
"syncNow": "立即同步",
|
||
"delete": "删除"
|
||
},
|
||
"ban": {
|
||
"permanent": "永久",
|
||
"expired": "已过期",
|
||
"minutesLater": "{count} 分钟后",
|
||
"hoursLater": "{count} 小时后"
|
||
},
|
||
"presets": {
|
||
"scan404": "单 IP 404 高频扫描",
|
||
"directAccess": "单 IP 直连访问异常"
|
||
},
|
||
"dialog": {
|
||
"editTitle": "编辑 {name}",
|
||
"createTitle": "新建 IP 组",
|
||
"description": "维护可被 WAF IP 黑白名单引用的手动、自动与订阅 IP 集合。",
|
||
"name": "IP 组名称",
|
||
"nameRequired": "请输入 IP 组名称",
|
||
"type": "类型",
|
||
"enable": "启用 IP 组",
|
||
"enableDesc": "关闭后保留配置,但发布时不会展开到 WAF 运行时名单。",
|
||
"subscriptionUrl": "订阅 URL",
|
||
"subscriptionUrlRequired": "订阅类型需要填写订阅 URL",
|
||
"subscriptionFormat": "订阅格式",
|
||
"formatText": "文本列表",
|
||
"syncInterval": "同步间隔(分钟)",
|
||
"syncIntervalDesc": "最小 1 分钟,默认 1440 分钟。",
|
||
"mappingRule": "JSON 映射规则",
|
||
"mappingPlaceholder": "留空表示根数组",
|
||
"autoIntervalDesc": "定时从请求日志挖掘恶意 IP 的周期。最小 1 分钟,默认 1440 分钟。",
|
||
"presetRules": "预设规则",
|
||
"autoConfigJson": "自动配置 JSON",
|
||
"ipList": "IP / IP 段",
|
||
"ipListSubscriptionHint": "订阅同步会覆盖此列表;也可以先手动保存当前内容。",
|
||
"ipListManualHint": "支持单个 IP 或 CIDR,每行一个。",
|
||
"saving": "保存中...",
|
||
"save": "保存 IP 组"
|
||
},
|
||
"testDialog": {
|
||
"title": "自动规则测试结果",
|
||
"description": "基于当前自动配置 JSON 对请求日志进行回看测试。",
|
||
"testing": "测试中...",
|
||
"summary": "回看 {lookback} · 规则 {rules} 条 · 命中 {matched} 个 IP",
|
||
"testedAt": "测试时间:{time}",
|
||
"noMatch": "当前没有匹配到任何 IP。",
|
||
"empty": "暂无测试结果。",
|
||
"close": "关闭"
|
||
},
|
||
"viewDialog": {
|
||
"titleNamed": "查看 {name}",
|
||
"title": "查看 IP 组",
|
||
"summary": "{type} · 共 {count} 条 IP",
|
||
"fallbackDesc": "查看当前 IP 组中的 IP 列表,并可移除不需要的条目。",
|
||
"loading": "加载 IP 列表...",
|
||
"noGroup": "未选择 IP 组。",
|
||
"emptyAuto": "该自动规则暂未抓取任何 IP,可点击「立即执行」手动触发抓取。",
|
||
"empty": "当前 IP 组暂无 IP 条目。",
|
||
"subscriptionHint": "订阅类型在下次同步时可能重新拉取已删除的 IP。",
|
||
"ipAddress": "IP 地址",
|
||
"capturedAt": "抓取时间",
|
||
"banRemaining": "封禁剩余",
|
||
"actions": "操作",
|
||
"deleteIp": "删除 {ip}",
|
||
"close": "关闭",
|
||
"deleteTitle": "确认删除 IP",
|
||
"deleteDesc": "确认从 IP 组「{name}」中移除 {ip} 吗?",
|
||
"deleting": "删除中...",
|
||
"confirmDelete": "确认删除"
|
||
},
|
||
"autoConfigMustBeObject": "自动配置必须是 JSON 对象。"
|
||
},
|
||
"rateLimits": {
|
||
"title": "限流",
|
||
"subtitle": "查看边缘请求压力,并配置站点默认并发与带宽限流。",
|
||
"loadingAuth": "加载权限信息...",
|
||
"forbiddenTitle": "权限不足",
|
||
"forbiddenDesc": "只有管理员可以访问限流设置。",
|
||
"tabAnalysis": "分析",
|
||
"tabConfig": "配置",
|
||
"loadingPage": "加载限流页面...",
|
||
"loadingPressure": "加载请求压力...",
|
||
"loadFailed": "加载失败",
|
||
"emptyTitle": "暂无数据",
|
||
"emptyDesc": "当前时间范围内没有可用的访问日志。",
|
||
"topHost": "平均 RPS 最高域名",
|
||
"topIp": "平均 RPS 最高 IP",
|
||
"avgRate": "{range}平均请求速率",
|
||
"range": {
|
||
"h24": "24 小时",
|
||
"h72": "3 天"
|
||
},
|
||
"chart": {
|
||
"title": "请求压力",
|
||
"empty": "暂无请求压力数据",
|
||
"requestRate": "请求速率",
|
||
"uniqueVisitors": "独立访客",
|
||
"visitorsPerBucket": "访客 / 桶"
|
||
},
|
||
"config": {
|
||
"saved": "限流参数已保存",
|
||
"saveFailed": "保存失败",
|
||
"loading": "加载限流参数...",
|
||
"preview": "查看配置预览",
|
||
"title": "全局默认限流",
|
||
"description": "0 或空表示默认关闭;站点未单独配置时继承此处设置。修改后需在版本发布中生效。",
|
||
"save": "保存",
|
||
"connPerServer": "默认并发限制(每站点)",
|
||
"connPerServerHint": "站点最大并发连接数默认值",
|
||
"connPerIp": "默认单 IP 并发",
|
||
"connPerIpHint": "单个 IP 最大并发连接数默认值",
|
||
"limitRate": "默认限速",
|
||
"limitRateHint": "单请求带宽默认值,例如 512k 或 1m",
|
||
"reqPerIp": "默认单 IP 请求频率限制",
|
||
"reqPerIpHint": "单个 IP 请求频率默认值,例如 10r/s 或 100r/m,留空关闭",
|
||
"invalidConn": "并发限制请输入非负整数,或留空表示关闭",
|
||
"invalidRate": "限速格式不合法,请使用 512k、1m、纯数字,或留空关闭",
|
||
"invalidReq": "请求频率限制格式不合法,请使用类似 10r/s、100r/m,或留空关闭"
|
||
}
|
||
},
|
||
"pages": {
|
||
"title": "Pages",
|
||
"subtitle": "边缘静态站点托管,上传静态资源部署包并在代理规则中选择 Pages 上游。",
|
||
"refresh": "刷新",
|
||
"create": "新建项目",
|
||
"loadFailed": "加载失败",
|
||
"emptyTitle": "还没有 Pages 项目",
|
||
"emptyDesc": "先创建一个项目,再上传静态资源部署包。",
|
||
"enabled": "已启用",
|
||
"disabled": "已停用",
|
||
"spaFallback": "SPA fallback",
|
||
"strict404": "严格 404",
|
||
"currentActive": "当前激活",
|
||
"none": "暂无",
|
||
"activatedAt": "激活时间:",
|
||
"notActivated": "未激活",
|
||
"viewDetail": "查看详情",
|
||
"saveFailed": "保存失败",
|
||
"updated": "项目已更新",
|
||
"created": "项目已创建",
|
||
"deleted": "项目已删除",
|
||
"deleteFailed": "删除失败",
|
||
"editTitle": "编辑 Pages 项目",
|
||
"createTitle": "新建 Pages 项目",
|
||
"editorDesc": "配置静态站点托管参数,上传部署包后在代理规则中选择 Pages 上游。",
|
||
"settingsDesc": "配置静态站点托管参数,保存后会同步到项目详情与代理引用。",
|
||
"reset": "重置",
|
||
"saving": "保存中...",
|
||
"saveChanges": "保存修改",
|
||
"createProject": "创建项目",
|
||
"form": {
|
||
"name": "项目名称",
|
||
"nameRequired": "请输入项目名称",
|
||
"slug": "项目标识",
|
||
"slugPlaceholder": "留空自动生成",
|
||
"entryFile": "入口文件",
|
||
"entryRequired": "请输入入口文件",
|
||
"rootDir": "根目录",
|
||
"optional": "可选",
|
||
"spaFallback": "SPA fallback",
|
||
"spaFallbackDesc": "未命中静态文件时回退到指定路径",
|
||
"fallbackPath": "回退路径",
|
||
"fallbackPathPrefix": "回退路径必须以 / 开头",
|
||
"apiProxy": "API 反向代理",
|
||
"apiProxyDesc": "为静态站点附加 API 反代规则",
|
||
"matchPath": "匹配路径",
|
||
"matchPathPrefix": "匹配路径必须以 / 开头",
|
||
"backend": "后端地址",
|
||
"backendPrefix": "后端地址必须以 http:// 或 https:// 开头",
|
||
"rewrite": "重写规则"
|
||
},
|
||
"detail": {
|
||
"invalidId": "缺少有效的 Pages 项目 ID。",
|
||
"loading": "加载项目详情...",
|
||
"loadFailed": "项目详情加载失败",
|
||
"back": "返回列表",
|
||
"notFound": "Pages 项目不存在或已被删除。",
|
||
"deploymentCount": "{count} 个部署",
|
||
"tabDeployments": "部署",
|
||
"tabSettings": "设置"
|
||
},
|
||
"danger": {
|
||
"title": "危险区域",
|
||
"deleteProject": "删除项目",
|
||
"deleteHint": "将永久删除 {name}({slug})及其全部部署。",
|
||
"confirmTitle": "删除 Pages 项目",
|
||
"confirmDesc": "确认删除项目 {name} 吗?此操作不可恢复。",
|
||
"confirm": "确认删除"
|
||
},
|
||
"upload": {
|
||
"selectFile": "请选择部署包",
|
||
"success": "部署包上传成功",
|
||
"failed": "上传失败",
|
||
"unsupported": "仅支持 zip、tar.gz、tar.xz、tar.bz2、tar、7z 格式的部署包",
|
||
"title": "上传部署包",
|
||
"description": "上传不可变的静态资源压缩包,完成后可在部署历史中激活。",
|
||
"localPackage": "本地部署包",
|
||
"dropHint": "拖拽部署包到此处,或点击选择文件",
|
||
"selected": "已选择 {name}({size})",
|
||
"chooseArchive": "请选择一个受支持的压缩包。",
|
||
"entry": "部署入口",
|
||
"entryHint": "入口来自项目设置;部署包上传不会覆盖该配置。",
|
||
"processing": "服务端处理中",
|
||
"progress": "上传进度",
|
||
"pleaseWait": "请稍候",
|
||
"uploading": "上传中...",
|
||
"submit": "上传并创建部署"
|
||
},
|
||
"files": {
|
||
"loadFailed": "文件清单加载失败",
|
||
"empty": "暂无文件记录",
|
||
"path": "路径",
|
||
"size": "大小"
|
||
},
|
||
"history": {
|
||
"source": {
|
||
"manual_upload": "本地上传",
|
||
"manual_url": "URL 导入"
|
||
},
|
||
"trigger": {
|
||
"manual_upload": "手动上传",
|
||
"manual_url": "手动导入",
|
||
"manual_sync": "手动同步",
|
||
"scheduled_auto_update": "定时更新"
|
||
},
|
||
"fileMeta": "{checksum} · {count} 个文件 · ",
|
||
"createdAt": "创建于 {time}",
|
||
"activatedAt": " · 激活于 {time}",
|
||
"collapseFiles": "收起文件清单",
|
||
"expandFiles": "展开文件清单",
|
||
"deploymentNumber": "部署 #{number}",
|
||
"activate": "激活",
|
||
"delete": "删除",
|
||
"activated": "历史部署已激活;自动更新(如已开启)已关闭",
|
||
"activateFailed": "激活失败",
|
||
"deleted": "部署已删除",
|
||
"deleteFailed": "删除失败",
|
||
"activateTitle": "激活历史部署",
|
||
"deleteTitle": "删除部署",
|
||
"activateDesc": "激活其它历史部署会终止当前来源任务;若已开启自动更新,将同时关闭自动更新。",
|
||
"deleteDesc": "确认删除部署 #{number} 吗?此操作不可恢复。",
|
||
"confirm": "确认",
|
||
"loading": "加载部署历史...",
|
||
"loadFailed": "部署历史加载失败",
|
||
"productionHint": "当前对外生效的生产部署;切换激活状态后会立即生效。",
|
||
"manualUpload": "手动上传",
|
||
"emptyProductionTitle": "暂无 Production 部署",
|
||
"emptyProductionDesc": "上传本地部署包,或配置 Remote URL / GitHub Release 来源后同步发布。",
|
||
"historyHint": "部署记录不可变,来源信息是创建部署时的安全快照。可从历史部署激活或删除。",
|
||
"emptyTitle": "暂无部署",
|
||
"emptyDesc": "上传本地部署包,或配置 Remote URL / GitHub Release 来源后同步发布。"
|
||
},
|
||
"source": {
|
||
"status": {
|
||
"idle": "空闲",
|
||
"checking": "检查中",
|
||
"update_available": "有可用更新",
|
||
"syncing": "同步中",
|
||
"failed": "最近同步失败",
|
||
"attention": "需要确认"
|
||
},
|
||
"check": "检查",
|
||
"syncPublish": "同步并发布",
|
||
"missingExecutionId": "缺少任务执行 ID",
|
||
"actionDone": "部署源{action}完成",
|
||
"actionFailed": "部署源{action}失败",
|
||
"checkQueued": "检查任务已提交",
|
||
"checkQueueFailed": "检查任务提交失败",
|
||
"syncQueued": "同步任务已提交",
|
||
"syncQueueFailed": "同步任务提交失败",
|
||
"title": "部署源",
|
||
"loadingDesc": "加载来源配置...",
|
||
"independentDesc": "来源配置与部署历史相互独立。",
|
||
"loadFailed": "部署源加载失败",
|
||
"configDesc": "配置远端来源并同步发布;发布结果见部署历史。",
|
||
"manualBadge": "手动部署",
|
||
"localPackage": "本地部署包",
|
||
"noRemote": "当前没有持久化远端来源。上传部署包后,再从部署历史显式激活。",
|
||
"submitFailed": "来源任务提交失败",
|
||
"statusFailed": "任务状态读取失败",
|
||
"waitStopped": "自动等待已停止,任务可能仍在后台运行。",
|
||
"refreshStatus": "刷新任务状态",
|
||
"configure": "配置",
|
||
"checkUpdate": "检查更新",
|
||
"refresh": "刷新",
|
||
"confirmTitle": "确认发布当前 GitHub revision",
|
||
"confirmLead": "这将发布卡片当前显示的精确 revision:",
|
||
"revisionUnavailable": "当前 revision 已不可用,请刷新后重试",
|
||
"confirmPublish": "确认并发布",
|
||
"updated": "部署源已更新",
|
||
"updateFailed": "部署源更新失败",
|
||
"switchedManual": "已切换回手动部署",
|
||
"switchFailed": "切换失败",
|
||
"urlRequired": "请输入 Remote URL",
|
||
"urlInvalid": "请输入有效的 HTTP(S) URL",
|
||
"githubUrlInvalid": "请输入 https://github.com/'{owner}'/'{repo}' 格式的公开仓库地址",
|
||
"tagInvalid": "Release tag 须为有效 Git ref(1–255 字节,可使用 /、#、&、=)",
|
||
"assetInvalid": "Asset 文件名须为 1–255 字节,且不能是路径或包含控制、换行、双向文本字符",
|
||
"intervalInvalid": "检查间隔须为 5–1440 分钟的整数",
|
||
"useManual": "使用手动部署",
|
||
"saveRemote": "保存 Remote 来源",
|
||
"saveGithub": "保存 GitHub 来源",
|
||
"settingsTitle": "部署源设置",
|
||
"settingsDesc": "选择部署来源。",
|
||
"mode": "来源类型",
|
||
"manual": "手动部署",
|
||
"manualHint": "保留现有部署与当前生产版本,后续通过“上传部署包”创建新部署。",
|
||
"urlHint": "填写可直接下载的部署包 HTTP(S) 地址。",
|
||
"allowInsecure": "允许不安全的连接",
|
||
"allowInsecureDesc": "默认允许公网与内网地址;开启后跳过 TLS 证书校验,适用于自签名或私有 CA。",
|
||
"switchManualTitle": "切换回手动部署",
|
||
"switchManualDesc": "当前来源配置将被删除,但已有部署与当前生产版本会保留。",
|
||
"githubUrl": "GitHub 仓库 URL",
|
||
"githubUrlHint": "仅支持公开 github.com 仓库。",
|
||
"releaseSelect": "Release 选择",
|
||
"latestRelease": "最新 Release",
|
||
"pinnedTag": "固定 Tag",
|
||
"pinnedTagHint": "精确检查并同步指定 tag。",
|
||
"autoUpdate": "自动更新",
|
||
"autoUpdateHint": "检查到新的 Release 后自动同步并发布。",
|
||
"checkInterval": "检查间隔(分钟)",
|
||
"checkIntervalHint": "可设置为 5–1440 分钟。",
|
||
"assetName": "Release Asset 文件名",
|
||
"noRecord": "尚无记录",
|
||
"address": "地址",
|
||
"verifyCert": "校验证书",
|
||
"lastSync": "最近同步",
|
||
"neverSynced": "尚未同步",
|
||
"applied": "已应用",
|
||
"latestReleaseLabel": "最新 Release",
|
||
"pinnedTagLabel": "固定 Tag · {tag}",
|
||
"tagMissing": "未提供",
|
||
"assetChangedTitle": "Release Asset 发生变化,需要显式确认",
|
||
"assetChangedDesc": "当前远端 revision 与已发布内容不一致。请核对版本和资源后,再确认发布这一精确 revision。",
|
||
"autoUpdateOn": "已开启",
|
||
"autoUpdateOff": "已关闭",
|
||
"intervalMinutes": "{count} 分钟",
|
||
"nextCheck": "下次检查",
|
||
"waitingSchedule": "等待调度",
|
||
"lastCheck": "最近检查",
|
||
"neverChecked": "尚未检查",
|
||
"remote": "远端"
|
||
}
|
||
},
|
||
"accessLogs": {
|
||
"title": "访问日志",
|
||
"subtitle": "查看访问概览、IP 明细与请求日志。",
|
||
"refresh": "刷新",
|
||
"cleanup": "清理日志",
|
||
"tabOverview": "概览",
|
||
"tabIps": "IP 明细",
|
||
"tabList": "日志明细",
|
||
"cleaned": "已清理 {count} 条日志",
|
||
"cleanupFailed": "清理失败",
|
||
"loadingTitle": "加载访问日志",
|
||
"loadingDesc": "正在准备页面...",
|
||
"loadFailed": "加载失败",
|
||
"range": {
|
||
"h24": "24 小时",
|
||
"h168": "7 天",
|
||
"h360": "15 天",
|
||
"h720": "30 天"
|
||
},
|
||
"rangeHint": {
|
||
"hours24": "近 24 小时",
|
||
"days": "近 {count} 天",
|
||
"hours": "近 {count} 小时"
|
||
},
|
||
"sort": {
|
||
"logged_at:desc": "时间从新到旧",
|
||
"logged_at:asc": "时间从旧到新",
|
||
"status_code:desc": "状态码从高到低",
|
||
"status_code:asc": "状态码从低到高",
|
||
"remote_addr:asc": "IP 正序",
|
||
"remote_addr:desc": "IP 倒序",
|
||
"total_requests:desc": "请求数从高到低",
|
||
"total_requests:asc": "请求数从低到高",
|
||
"request_length:desc": "入站从高到低",
|
||
"request_length:asc": "入站从低到高",
|
||
"bytes_sent:desc": "出站从高到低",
|
||
"bytes_sent:asc": "出站从低到高",
|
||
"success_ratio:desc": "2xx 比例从高到低",
|
||
"success_ratio:asc": "2xx 比例从低到高",
|
||
"last_seen_at:desc": "最后访问从新到旧",
|
||
"last_seen_at:asc": "最后访问从旧到新"
|
||
},
|
||
"cache": {
|
||
"hit": "命中",
|
||
"origin": "回源",
|
||
"uncached": "未缓存"
|
||
},
|
||
"filters": {
|
||
"pickTime": "选择时间",
|
||
"remoteAddr": "来源 IP",
|
||
"remoteAddrPlaceholder": "按 IP 搜索",
|
||
"host": "访问域名",
|
||
"hostPlaceholder": "按域名搜索",
|
||
"statusCode": "状态码",
|
||
"statusCodePlaceholder": "输入状态码,如 404",
|
||
"more": "更多筛选",
|
||
"nodeId": "节点 ID",
|
||
"nodeIdPlaceholder": "按 node_id 搜索",
|
||
"path": "请求路径",
|
||
"pathPlaceholder": "按路径搜索",
|
||
"timeRange": "时间范围",
|
||
"pageSize": "每页条数",
|
||
"pageSizeItem": "{count} 条",
|
||
"apply": "筛选",
|
||
"clear": "清空"
|
||
},
|
||
"cleanupDialog": {
|
||
"invalidDays": "保留天数必须大于 0",
|
||
"title": "清理访问日志",
|
||
"description": "删除早于指定保留天数的访问日志记录,操作不可恢复。",
|
||
"policy": "保留策略",
|
||
"keepDays": "保留最近 {days} 天",
|
||
"custom": "自定义天数",
|
||
"customDays": "自定义保留天数",
|
||
"cleaning": "清理中...",
|
||
"confirm": "确认清理"
|
||
},
|
||
"detail": {
|
||
"title": "访问日志详情",
|
||
"description": "本条请求的全部业务字段。IP 访问分析请前往「IP 明细」。",
|
||
"logId": "日志 ID",
|
||
"requestTime": "请求时间",
|
||
"storedAt": "入库时间",
|
||
"node": "节点",
|
||
"nodeId": "节点 ID",
|
||
"clientIp": "客户端 IP",
|
||
"region": "地区",
|
||
"host": "域名",
|
||
"status": "状态码",
|
||
"cache": "缓存",
|
||
"bytesSent": "出站流量",
|
||
"requestLength": "入站流量",
|
||
"duration": "请求耗时",
|
||
"path": "路径",
|
||
"page": "当前第 {page} 页",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"listTitle": "日志明细",
|
||
"empty": "暂无访问日志",
|
||
"time": "时间",
|
||
"view": "查看详情"
|
||
},
|
||
"ip": {
|
||
"needRange": "请填写开始与结束时间",
|
||
"invalidTime": "时间格式无效",
|
||
"endAfterStart": "结束时间必须晚于开始时间",
|
||
"maxRange": "时间范围不能超过 30 天",
|
||
"page": "当前第 {page} 页",
|
||
"total": " · 共 {count} 个 IP",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"customRange": "自定义区间",
|
||
"customPending": "自定义(未应用)",
|
||
"timeRange": "时间范围",
|
||
"current": "当前:{range}",
|
||
"custom": "自定义",
|
||
"start": "开始",
|
||
"end": "结束",
|
||
"apply": "应用",
|
||
"applyHint": "修改时间后点击「应用」再查询;详情分析窗口与列表时长对齐。",
|
||
"sort": "排序",
|
||
"pageSize": "每页",
|
||
"title": "IP 明细",
|
||
"empty": "暂无 IP 数据",
|
||
"region": "地区",
|
||
"requests": "请求数",
|
||
"successRatio": "2xx 比例",
|
||
"inbound": "入站",
|
||
"outbound": "出站",
|
||
"lastSeen": "最后访问",
|
||
"view": "查看 IP 详情",
|
||
"dialogTitle": "IP 详情",
|
||
"dialogDesc": "。查看该 IP 的访问趋势、分布与 WAF IP 组操作。"
|
||
},
|
||
"analysis": {
|
||
"emptySeries": "暂无 {title} 数据",
|
||
"selectGroup": "请选择要加入的 IP 组",
|
||
"added": "已将 {ip} 加入 IP 组「{name}」",
|
||
"addFailed": "加入 IP 组失败",
|
||
"removed": "已从 IP 组「{name}」移除 {ip}",
|
||
"removeFailed": "移除失败",
|
||
"joinTitle": "将 IP 加入 IP 组",
|
||
"targetIp": "目标 IP:",
|
||
"loadingGroups": "加载 IP 组",
|
||
"loadGroupsFailed": "加载 IP 组失败",
|
||
"alreadyIn": "该 IP 已存在于以下 IP 组",
|
||
"alreadyInHint": "可选择删除,或继续添加到其他 IP 组。",
|
||
"entryCount": "{type} · {count} 条",
|
||
"delete": "删除",
|
||
"cannotDelete": "不可手动删除",
|
||
"notInAny": "该 IP 尚未加入任何 IP 组。",
|
||
"addToOther": "添加到其他 IP 组",
|
||
"noWritable": "没有可写入的手动 IP 组(或已全部包含该 IP)。",
|
||
"selectManual": "选择手动 IP 组",
|
||
"close": "关闭",
|
||
"processing": "处理中...",
|
||
"joinSelected": "加入所选 IP 组",
|
||
"recentHours": "近 {hours} 小时",
|
||
"invalidIp": "没有有效 IP。",
|
||
"addToGroup": "将 IP 加入到 IP 组",
|
||
"loading": "加载 IP 分析",
|
||
"loadFailed": "加载 IP 分析失败",
|
||
"totalRequests": "总请求",
|
||
"errors": "错误数",
|
||
"bandwidth": "已提供带宽",
|
||
"received": "接收数据",
|
||
"uniqueHosts": "独立域名",
|
||
"uniquePaths": "独立路径",
|
||
"trend": "IP 请求趋势",
|
||
"trendMeta": "{ip} · {range} · {minutes} 分钟桶",
|
||
"refresh": "刷新",
|
||
"trendFailed": "加载趋势失败",
|
||
"trendEmpty": "该 IP 在{range}内没有访问记录。"
|
||
},
|
||
"overview": {
|
||
"loadingTitle": "加载访问概览",
|
||
"loadingDesc": "正在聚合请求量、访问量与带宽趋势...",
|
||
"loadFailed": "加载访问概览失败",
|
||
"emptyTitle": "暂无概览数据",
|
||
"emptyDesc": "当前时间范围内没有可展示的访问统计。",
|
||
"uniqueVisitors": "{hint} · 独立访客",
|
||
"served": "{hint} · 已提供数据",
|
||
"requestsHint": "观察请求量是否出现异常抬升或回落。",
|
||
"requests": "请求量",
|
||
"deviceDesc": "按设备类型统计请求占比。",
|
||
"deviceEmpty": "暂无设备类型数据",
|
||
"statusDesc": "按 HTTP 状态码统计请求占比。",
|
||
"statusEmpty": "暂无状态码分布数据",
|
||
"topPathsDesc": "访问量最高的请求路径。",
|
||
"topHostsDesc": "流量集中的访问域名。",
|
||
"topIpsDesc": "请求次数最多的来源 IP。",
|
||
"browsersDesc": "按浏览器聚合的请求排行。",
|
||
"osDesc": "按操作系统聚合的请求排行。",
|
||
"uaDesc": "原始 User-Agent 请求排行。"
|
||
},
|
||
"toolbar": {
|
||
"hostsFiltered": "已筛选 {count} 个域名",
|
||
"filterByHost": "按域名筛选",
|
||
"filterHosts": "筛选域名",
|
||
"clear": "清除",
|
||
"searchPlaceholder": "搜索 Zone 或域名",
|
||
"loadingHosts": "加载域名…",
|
||
"loadHostsFailed": "加载域名失败",
|
||
"retry": "重试",
|
||
"noRegistered": "暂无已登记域名",
|
||
"noMatch": "没有匹配的域名",
|
||
"selectZone": "选择 Zone {name}",
|
||
"selectHost": "选择域名 {name}",
|
||
"selectedCount": "已选 {count} 个域名"
|
||
}
|
||
},
|
||
"cloudflare": {
|
||
"title": "Cloudflare",
|
||
"connectionSettings": "连接设置",
|
||
"addGroup": "新增分组",
|
||
"loadingOverview": "加载 Cloudflare 总览中...",
|
||
"notReadyTitle": "Cloudflare 连接尚未就绪",
|
||
"notReadyDesc": "请先导入现有 Cloudflare DNS 账号,或录入独立 API Token 并完成连接测试。",
|
||
"configure": "配置连接",
|
||
"groupsTitle": "指向分组",
|
||
"groupsDesc": "管理 Cloudflare A 记录对应的节点与域名成员。",
|
||
"loadingGroups": "加载指向分组中...",
|
||
"emptyTitle": "暂无指向分组",
|
||
"emptyDesc": "创建分组后,可将域名成员同步到指定的边缘节点。",
|
||
"enabled": "已启用",
|
||
"disabled": "已停用",
|
||
"memberSummary": "成员 {count} 个 · 新成员默认{proxy}橙云",
|
||
"proxyOn": "开启",
|
||
"proxyOff": "关闭",
|
||
"manage": "管理",
|
||
"sync": "同步",
|
||
"delete": "删除",
|
||
"created": "指向分组已创建",
|
||
"syncQueued": "分组同步任务已入队",
|
||
"deleted": "指向分组及远端记录已删除",
|
||
"deleteTitle": "删除指向分组",
|
||
"deleteDesc": "将删除 {name} 的全部成员及本模块管理的远端 A 记录。此操作不可撤销。",
|
||
"confirmDelete": "确认删除",
|
||
"loadingDetail": "加载分组详情中...",
|
||
"groupUpdated": "分组配置已更新",
|
||
"memberAddedOne": "域名已加入并排队同步",
|
||
"memberAddedMany": "已添加 {count} 个域名并排队同步",
|
||
"memberAddFailed": "添加失败:{count} 个域名未能加入",
|
||
"memberPartial": "部分成功:{succeeded} 个已加入,{failed} 个失败",
|
||
"proxyUpdated": "橙云设置已更新并排队同步",
|
||
"memberSyncQueued": "成员同步任务已入队",
|
||
"memberDeleted": "成员及远端 A 记录已删除",
|
||
"back": "返回列表",
|
||
"refresh": "刷新",
|
||
"edit": "编辑",
|
||
"addDomain": "添加域名",
|
||
"currentPoint": "当前指向",
|
||
"activeNode": "生效节点 {name} · {ip}",
|
||
"syncEnabled": "同步已启用",
|
||
"syncDisabled": "同步已停用",
|
||
"primaryNode": "主节点 {name}",
|
||
"backupNode": "备用节点 {name}",
|
||
"backupUnset": "未设置",
|
||
"members": "域名成员",
|
||
"membersDesc": "成员级橙云是同步时的唯一依据。",
|
||
"noMembers": "暂无域名成员。",
|
||
"columns": {
|
||
"domain": "域名",
|
||
"desiredIp": "期望 IP",
|
||
"status": "状态",
|
||
"proxied": "橙云",
|
||
"actions": "操作"
|
||
},
|
||
"pendingSync": "待同步",
|
||
"remove": "移出",
|
||
"groupDialog": {
|
||
"editTitle": "编辑指向分组",
|
||
"createTitle": "新增指向分组",
|
||
"description": "一期使用主节点作为生效节点;备用节点仅保存,不会自动切换。",
|
||
"name": "分组名称",
|
||
"primary": "主节点",
|
||
"primaryPlaceholder": "选择带 IPv4 的边缘节点",
|
||
"noIp": "未配置 IP",
|
||
"backup": "备用节点",
|
||
"none": "不设置",
|
||
"defaultProxied": "新成员默认开启橙云",
|
||
"enableSync": "启用同步",
|
||
"save": "保存"
|
||
},
|
||
"memberDialog": {
|
||
"title": "添加域名成员",
|
||
"description": "支持搜索筛选与批量勾选;加入后会创建或接管唯一同名 A 记录,多条同名 A 会拒绝同步。",
|
||
"zoneDomain": "Zone 域名",
|
||
"searchPlaceholder": "搜索域名或顶级域…",
|
||
"selected": "已选 {count}",
|
||
"visible": "可见 {count}",
|
||
"unselectAll": "取消全选",
|
||
"selectVisible": "全选可见",
|
||
"clear": "清空",
|
||
"noAvailable": "暂无可用域名(均已加入分组,或尚未在网站管理中添加)。",
|
||
"noMatch": "没有匹配的域名",
|
||
"groupByZone": "按顶级域分组",
|
||
"selectZone": "选择顶级域 {name}",
|
||
"zone": "顶级域",
|
||
"proxied": "开启橙云代理",
|
||
"submitCount": "添加并同步({count})",
|
||
"submit": "添加并同步"
|
||
},
|
||
"tasks": {
|
||
"pending": "等待中",
|
||
"running": "执行中",
|
||
"succeeded": "成功",
|
||
"failed": "失败",
|
||
"system": "系统",
|
||
"manual": "手动",
|
||
"retry": "重试",
|
||
"schedule": "定时",
|
||
"retried": "同步任务已重新下发",
|
||
"newTaskId": "新任务 ID:{id}",
|
||
"retryFailed": "任务重试失败",
|
||
"unknownError": "未知错误",
|
||
"title": "同步任务",
|
||
"description": "仅展示 Cloudflare 域名同步(sync_member)与分组同步(sync_group)的执行记录。",
|
||
"statusPlaceholder": "状态",
|
||
"allStatus": "全部状态",
|
||
"refresh": "刷新",
|
||
"loadFailed": "加载同步任务失败",
|
||
"loading": "加载同步任务中...",
|
||
"emptyTitle": "暂无同步任务",
|
||
"emptyDesc": "添加域名或同步分组后,这里会显示 Cloudflare 域名 / 分组同步执行记录。",
|
||
"columns": {
|
||
"task": "任务",
|
||
"status": "状态",
|
||
"trigger": "触发",
|
||
"duration": "耗时",
|
||
"result": "结果/错误",
|
||
"createdAt": "创建时间"
|
||
},
|
||
"pageSummary": "共 {total} 条,第 {page}/{pages} 页",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"detailTitle": "同步任务详情",
|
||
"defaultName": "Cloudflare 同步",
|
||
"loadingDetail": "加载任务详情中...",
|
||
"status": "状态",
|
||
"trigger": "触发",
|
||
"retries": "重试",
|
||
"duration": "耗时",
|
||
"taskId": "任务 ID",
|
||
"createdAt": "创建时间",
|
||
"finishedAt": "结束时间",
|
||
"result": "执行结果",
|
||
"error": "错误信息",
|
||
"logs": "执行日志",
|
||
"close": "关闭"
|
||
},
|
||
"settings": {
|
||
"saved": "Cloudflare 连接配置已保存",
|
||
"verified": "Cloudflare 连接验证成功",
|
||
"cleared": "Cloudflare 连接已清除",
|
||
"back": "返回列表",
|
||
"title": "Cloudflare 连接设置",
|
||
"sourceTitle": "凭据来源",
|
||
"sourceDesc": "Token 建议授予 Zone:Read 与 DNS:Edit 权限;Token 不会在 API 或页面中回显。",
|
||
"source": "连接来源",
|
||
"importDns": "导入现有 DNS 账号",
|
||
"standalone": "独立 API Token",
|
||
"dnsAccount": "Cloudflare DNS 账号",
|
||
"selectAccount": "选择 DNS 账号",
|
||
"dnsHint": "仅显示类型为 cloudflare 的 DNS 账号。可前往",
|
||
"dnsLink": "DNS 账号",
|
||
"dnsHintAfter": "新增。",
|
||
"tokenKeep": "留空不会回显现有 Token;保存将替换",
|
||
"tokenEnter": "输入 Cloudflare API Token",
|
||
"save": "保存配置",
|
||
"test": "测试连接",
|
||
"clear": "清除连接",
|
||
"statusTitle": "当前状态",
|
||
"ready": "Token 已验证,Cloudflare 指向同步可以执行。",
|
||
"notReady": "保存配置后仍需测试连接;未验证状态下同步任务会被拒绝。"
|
||
}
|
||
},
|
||
"openflareOps": {
|
||
"saved": "OpenFlare 运维设置已保存",
|
||
"saveFailed": "保存失败",
|
||
"tokenRotated": "Discovery Token 已重新生成",
|
||
"tokenRotateFailed": "Token 轮换失败",
|
||
"kumaSynced": "Uptime Kuma 同步任务已执行",
|
||
"syncFailed": "同步失败",
|
||
"invalidParams": "参数校验失败",
|
||
"loading": "加载 OpenFlare 运维设置...",
|
||
"loadFailed": "加载失败",
|
||
"save": "保存",
|
||
"agent": {
|
||
"title": "Agent 运行参数",
|
||
"description": "心跳间隔与离线阈值会在下个心跳周期同步到节点。",
|
||
"heartbeat": "心跳间隔 ({duration})",
|
||
"offline": "离线阈值 ({duration})",
|
||
"wsUpgrade": "开启 WS 连接升级",
|
||
"wsUpgradeDesc": "HTTP 心跳成功后尝试升级为 WebSocket,配置发布可即时通知。",
|
||
"updateRepo": "Agent 更新仓库"
|
||
},
|
||
"geo": {
|
||
"title": "IP 归属解析",
|
||
"description": "控制节点地图等场景的 GeoIP 来源;访客访问记录归属地固定使用 MaxMind mmdb。",
|
||
"mode": "归属方式",
|
||
"disabled": "关闭",
|
||
"testIp": "测试 IP",
|
||
"querying": "查询中...",
|
||
"query": "查询归属",
|
||
"country": "国家/地区"
|
||
},
|
||
"pages": {
|
||
"title": "Pages 静态托管",
|
||
"description": "配置部署包上传体积上限与每个项目的历史部署保留数量。",
|
||
"maxSize": "部署包大小上限 (MiB)",
|
||
"history": "历史部署保留数(0 不限制)",
|
||
"historyHint": "每个项目最多保留 N 条部署:激活部署始终保留,其余按从新到旧填充;超出的非激活部署会在上传成功后自动清理。支持 zip、tar.gz、tar.xz、tar.bz2、tar、7z 格式。"
|
||
},
|
||
"discovery": {
|
||
"title": "Discovery Token 与部署",
|
||
"description": "新节点首次接入使用 Discovery Token;轮换请前往节点管理或使用下方操作。",
|
||
"manageNodes": "节点管理",
|
||
"rotate": "轮换 Token",
|
||
"tokenReadonly": "Discovery Token(只读)",
|
||
"loading": "加载中...",
|
||
"notGenerated": "未生成",
|
||
"command": "一键部署命令",
|
||
"commandHint": "请先填写可访问的 Server URL 并获取 Token。",
|
||
"copied": "命令已复制",
|
||
"copy": "复制命令"
|
||
},
|
||
"kuma": {
|
||
"title": "Uptime Kuma 集成",
|
||
"description": "将反代站点差分同步至 Uptime Kuma 监控实例。",
|
||
"syncNow": "立即同步",
|
||
"enable": "开启 Uptime Kuma",
|
||
"url": "Uptime Kuma 地址",
|
||
"username": "用户名",
|
||
"password": "密码",
|
||
"passwordKeep": "留空表示不更新",
|
||
"syncInterval": "同步间隔 (分钟)",
|
||
"scope": "监控范围",
|
||
"allSites": "全部站点",
|
||
"selectedSites": "选择站点",
|
||
"selectedLabel": "已选站点",
|
||
"pickSites": "选择监控站点",
|
||
"noneSelected": "未选择任何站点",
|
||
"interval": "检测频率 (秒)",
|
||
"retry": "重试次数",
|
||
"retryInterval": "重试间隔 (秒)",
|
||
"timeout": "请求超时 (秒)"
|
||
},
|
||
"duration": {
|
||
"minutes": "{count} 分钟",
|
||
"seconds": "{count} 秒"
|
||
},
|
||
"errors": {
|
||
"heartbeatMin": "心跳间隔不能小于 1000 毫秒。",
|
||
"offlineMin": "离线阈值不能小于 10000 毫秒。",
|
||
"offlineRatio": "离线阈值建议至少为心跳间隔的 3 倍。",
|
||
"kumaUrl": "请输入 Uptime Kuma 地址。",
|
||
"kumaUser": "请输入 Uptime Kuma 用户名。",
|
||
"syncInterval": "同步间隔必须为正整数。",
|
||
"interval": "心跳间隔必须为正整数。",
|
||
"retry": "重试次数必须为非负整数。",
|
||
"retryInterval": "心跳重试间隔必须为正整数。",
|
||
"timeout": "请求超时必须为正整数。",
|
||
"pagesSize": "Pages 部署包大小上限必须为 1~2048 MiB。",
|
||
"pagesHistory": "Pages 历史保留数必须为大于等于 0 的整数(0 表示不限制)。"
|
||
},
|
||
"status": {
|
||
"title": "系统状态",
|
||
"loadFailed": "获取系统状态失败",
|
||
"unknownError": "请求时发生未知错误",
|
||
"autoRefresh": "自动刷新",
|
||
"refresh": "刷新",
|
||
"overview": "服务概览",
|
||
"overviewDesc": "服务的基础生命指标",
|
||
"uptime": "服务运行时间",
|
||
"goroutines": "当前 Goroutines 数量",
|
||
"heapObjects": "Heap 对象数量",
|
||
"memory": "内存统计",
|
||
"memoryDesc": "主内存消耗概览",
|
||
"alloc": "当前内存使用量",
|
||
"totalAlloc": "所有已分配的内存",
|
||
"sys": "内存占用量",
|
||
"nextGc": "下次 GC 内存回收量",
|
||
"usageRatio": "当前使用率 (Alloc / Sys)",
|
||
"heapStack": "堆/栈详情",
|
||
"heapStackDesc": "运行时堆栈内存空间细节",
|
||
"heapAlloc": "当前 Heap 内存使用量",
|
||
"heapSys": "Heap 内存占用量",
|
||
"heapIdle": "Heap 内存空闲量",
|
||
"heapInuse": "正在使用的 Heap 内存",
|
||
"heapReleased": "已释放的 Heap 内存",
|
||
"stackInuse": "启动 Stack 使用量",
|
||
"stackSys": "已分配的 Stack 内存",
|
||
"structs": "底层及结构体内存",
|
||
"structsDesc": "运行时底层管理结构体开销",
|
||
"mspanInuse": "MSpan 结构内存使用量",
|
||
"mspanSys": "已分配的 MSpan 结构内存",
|
||
"mcacheInuse": "MCache 结构内存使用量",
|
||
"mcacheSys": "已分配的 MCache 结构内存",
|
||
"buckHashSys": "已分配的剖析哈希表内存",
|
||
"gcSys": "已分配的 GC 元数据内存",
|
||
"otherSys": "其它已分配的系统内存",
|
||
"gc": "垃圾回收与分配计数",
|
||
"gcDesc": "GC 历史数据与分配频次",
|
||
"numGc": "GC 执行次数",
|
||
"lastGc": "距离上次 GC 时间",
|
||
"pauseTotal": "GC 暂停时间总量",
|
||
"lastPause": "上次 GC 暂停时间",
|
||
"mallocs": "内存分配次数",
|
||
"frees": "内存释放次数",
|
||
"lookups": "指针查找次数"
|
||
},
|
||
"siteModal": {
|
||
"title": "选择监控站点",
|
||
"description": "选择要同步到 Uptime Kuma 的反代站点,支持按站点名称和域名搜索。",
|
||
"search": "搜索站点",
|
||
"searchPlaceholder": "按名称或域名搜索...",
|
||
"selectFiltered": "全选过滤项",
|
||
"clearFiltered": "清空过滤项",
|
||
"loading": "加载站点列表...",
|
||
"loadFailed": "加载站点失败",
|
||
"noMatch": "无匹配的站点",
|
||
"select": "选择",
|
||
"siteName": "站点名称",
|
||
"primaryDomain": "主域名",
|
||
"selectedCount": "已选择 {count} 个监控站点",
|
||
"save": "保存选择"
|
||
}
|
||
},
|
||
"websites": {
|
||
"title": "网站",
|
||
"createZone": "新增 Zone",
|
||
"searchRoot": "搜索 Zone 根域",
|
||
"loadingList": "加载 Zone 列表中...",
|
||
"requestFailed": "请求失败,请稍后重试。",
|
||
"emptySearch": "未找到匹配的 Zone。",
|
||
"emptyList": "暂无 Zone,点击右上角「新增 Zone」开始录入。",
|
||
"rootDomain": "根域",
|
||
"domainCount": "域名数",
|
||
"createdAt": "创建时间",
|
||
"updatedAt": "更新时间",
|
||
"actions": "操作",
|
||
"manage": "管理",
|
||
"manageZone": "管理 Zone",
|
||
"loadingDetail": "加载 Zone 详情中...",
|
||
"invalidId": "无效的网站 ID,请从网站列表进入详情页。",
|
||
"notFound": "网站不存在,可能已被删除或 ID 无效。",
|
||
"back": "返回",
|
||
"detailSubtitle": "Zone 网站管理",
|
||
"tabOverview": "概览",
|
||
"tabDomains": "域名 ({count})",
|
||
"tabCertificates": "证书 ({count})",
|
||
"basicInfo": "基本信息",
|
||
"basicInfoDesc": "维护 Zone 的可注册根域。根域变更后,请确认其下域名仍归属该根域。",
|
||
"currentRoot": "当前根域",
|
||
"editRoot": "编辑根域",
|
||
"dangerZone": "危险操作",
|
||
"dangerZoneDesc": "删除 Zone 前须清空其下全部域名;删除后不可恢复。",
|
||
"deleteZone": "删除 Zone",
|
||
"deleteZoneTitle": "确认删除 Zone",
|
||
"deleteZoneDesc": "确认删除 {domain} 吗?其下域名须先解绑路由后才能删除,此操作不可撤销。",
|
||
"deleting": "删除中…",
|
||
"confirmDelete": "确认删除",
|
||
"zoneDeleted": "Zone 已删除",
|
||
"editZone": "编辑 Zone",
|
||
"editorDesc": "Zone 仅接受可注册根域,例如 example.com。",
|
||
"rootRequired": "请输入 Zone 根域",
|
||
"rootInvalid": "请输入不含协议或通配符的根域",
|
||
"zoneUpdated": "Zone 已更新",
|
||
"zoneCreated": "Zone 已创建",
|
||
"saveFailed": "保存失败",
|
||
"saveChanges": "保存修改",
|
||
"range24h": "24 小时",
|
||
"range7d": "7 天",
|
||
"range30d": "30 天",
|
||
"chartUv": "分桶 UV",
|
||
"chartBytes": "已提供数据",
|
||
"statsFailed": "加载流量统计失败",
|
||
"analyticsUnavailable": "分析存储暂不可用,图表可能为空。请确认 ClickHouse 已启用。",
|
||
"uniqueVisitors": "查询窗口独立访客",
|
||
"uniqueVisitorsDesc": "顶部合计为整窗去重;曲线为各时间桶内 UV,桶间不可相加",
|
||
"totalRequests": "请求总数",
|
||
"totalBytes": "已提供的数据总计",
|
||
"zoneInfo": "Zone 信息",
|
||
"addDomain": "添加域名",
|
||
"emptyDomains": "暂无已添加域名",
|
||
"certificate": "证书",
|
||
"upstream": "上游",
|
||
"certNumber": "证书 #{id}",
|
||
"unbound": "未绑定",
|
||
"unlinkedRoute": "未关联路由",
|
||
"loadingEllipsis": "加载中…",
|
||
"upstreamUnset": "未配置上游",
|
||
"viewRoute": "查看路由详情",
|
||
"deleteDomain": "删除域名",
|
||
"domainDeleted": "域名已删除",
|
||
"deleteFailed": "删除失败",
|
||
"deleteDomainTitle": "确认删除域名",
|
||
"deleteDomainDesc": "确认删除 {domain} 吗?此操作不可撤销。",
|
||
"zoneCertsTitle": "本 Zone 使用的证书",
|
||
"zoneCertsDesc": "证书在全局证书库管理;此处仅展示已绑定到本 Zone 域名的证书。",
|
||
"certLibrary": "证书库",
|
||
"unboundCertHint": "还有 {count} 个域名未绑定证书,可在「域名」Tab 中选择证书。",
|
||
"emptyBoundCerts": "暂无绑定证书。请先在域名行选择证书,或前往证书库导入/申请。",
|
||
"status": "状态",
|
||
"coverage": "覆盖域名",
|
||
"expiresAt": "到期时间",
|
||
"selectZone": "请先选择 Zone",
|
||
"enterDomain": "请输入域名",
|
||
"noWildcard": "Zone 域名不支持通配符",
|
||
"invalidFormat": "域名格式不合法",
|
||
"invalidSubdomain": "子域名称格式不合法",
|
||
"mustBelongToZone": "域名必须属于 Zone {root}",
|
||
"domainAdded": "域名已添加",
|
||
"addFailed": "添加失败",
|
||
"quickCreateTitle": "快捷新增域名",
|
||
"quickCreateDesc": "选择 Zone 后输入:子域名称(如 api)、@(根域)或完整 FQDN。",
|
||
"selectRegisteredRoot": "选择注册根域",
|
||
"zoneLabel": "Zone:",
|
||
"domain": "域名",
|
||
"domainPlaceholderWithZone": "api 或 @ 或 api.{domain}",
|
||
"domainPlaceholder": "api / @ / 完整域名",
|
||
"willCreate": "将创建:",
|
||
"domainExample": "示例:输入 <api>api</api> → <fqdn>api.zone.com</fqdn>;<apex>@</apex> → 根域本身",
|
||
"certOptional": "证书(可选)",
|
||
"noCert": "不绑定证书"
|
||
},
|
||
"certificates": {
|
||
"title": "证书",
|
||
"refresh": "刷新证书",
|
||
"importCert": "导入证书",
|
||
"applyTitle": "申请证书",
|
||
"listTitle": "证书列表",
|
||
"listDesc": "展示证书有效期、备注和状态,支持查看详情、编辑内容或删除证书。",
|
||
"loadingList": "加载证书列表中...",
|
||
"requestFailed": "请求失败,请稍后重试。",
|
||
"emptyList": "暂无证书,点击右上角「导入证书」或「申请证书」开始录入。",
|
||
"notBeforeLabel": "生效:{value}",
|
||
"notAfterLabel": "到期:{value}",
|
||
"sourceLabel": "来源:{value}",
|
||
"sourceAcme": "ACME 申请",
|
||
"sourceUpload": "手动上传",
|
||
"statusLabel": "状态:{value}",
|
||
"converting": "转换申请中...",
|
||
"applying": "申请中...",
|
||
"statusError": "状态:{value}({message})",
|
||
"convertFailed": "转换失败",
|
||
"applyFailed": "申请失败",
|
||
"remarkLabel": "备注:{value}",
|
||
"noRemark": "暂无备注",
|
||
"view": "查看",
|
||
"edit": "编辑",
|
||
"renew": "续期",
|
||
"deleted": "证书已删除",
|
||
"renewSubmitted": "证书 {name} 续期任务已提交",
|
||
"imported": "证书 {name} 已导入",
|
||
"applySubmitted": "证书 {name} 申请任务已提交",
|
||
"convertSubmitted": "证书 {name} 转换申请已提交",
|
||
"reapplySubmitted": "证书 {name} 配置已更新,重新申请中...",
|
||
"updated": "证书 {name} 已更新",
|
||
"deleteTitle": "确认删除证书",
|
||
"deleteDesc": "确认删除证书 {name} 吗?",
|
||
"applyEditTitle": "编辑并重新申请证书",
|
||
"applyConvertTitle": "转换为申请证书",
|
||
"applyEditDesc": "修改 ACME 证书配置。保存后将使用新配置重新申请证书。",
|
||
"applyConvertDesc": "填写 ACME 申请资料。申请成功后,当前手动证书会原地转换为可自动续签的申请证书。",
|
||
"applyDesc": "使用 ACME (Let's Encrypt 等) 自动申请和续期证书,支持通配符域名。",
|
||
"name": "证书名称",
|
||
"namePlaceholder": "例如:主站证书",
|
||
"primaryDomain": "主域名",
|
||
"primaryDomainPlaceholder": "example.com 或 *.example.com",
|
||
"otherDomains": "其他域名",
|
||
"otherDomainsHint": "每行一个域名。如申请通配符证书,请填写对应的根域名以便一并签发。",
|
||
"dnsAccount": "DNS 服务商账号",
|
||
"selectDnsAccount": "请选择 DNS 账号",
|
||
"keyAlgorithm": "密钥算法",
|
||
"remark": "备注",
|
||
"remarkPlaceholder": "可选,用于记录证书用途。",
|
||
"autoRenew": "开启自动续签",
|
||
"autoRenewDesc": "开启后,将在证书过期前 7 天自动续期。",
|
||
"advanced": "高级选项",
|
||
"dnsServer1": "DNS 验证服务器 1",
|
||
"dnsServer2": "DNS 验证服务器 2",
|
||
"dnsServerPlaceholder": "为空则使用默认权威 DNS",
|
||
"skipCname": "跳过 CNAME 检查",
|
||
"skipCnameDesc": "在执行 DNS-01 验证时不追踪 CNAME 记录。",
|
||
"skipDns": "跳过 DNS 前置检查",
|
||
"skipDnsDesc": "直接请求 Let's Encrypt 验证而不做本地校验。",
|
||
"submitting": "提交中...",
|
||
"saveAndApply": "保存并申请",
|
||
"startConvert": "开始转换",
|
||
"startApply": "开始申请",
|
||
"editTitle": "编辑证书",
|
||
"editDesc": "可以修改证书名称、备注,以及重新上传 PEM 证书和私钥内容。",
|
||
"loadingContent": "加载证书内容中...",
|
||
"notFound": "证书不存在,可能已被删除。",
|
||
"certPem": "证书 PEM",
|
||
"keyPem": "私钥 PEM",
|
||
"convertSource": "转换来源",
|
||
"saving": "保存中...",
|
||
"saveCert": "保存证书",
|
||
"importTitle": "添加证书",
|
||
"importDesc": "支持手动粘贴 PEM 或上传证书文件。导入成功后可立即在网站表单里选择。",
|
||
"manualImport": "手动导入",
|
||
"fileImport": "文件导入",
|
||
"remarkProdPlaceholder": "例如:主站生产证书",
|
||
"importing": "导入中...",
|
||
"remarkWildcardPlaceholder": "例如:泛域名生产证书",
|
||
"certFile": "证书文件",
|
||
"keyFile": "私钥文件",
|
||
"fileSelected": "已选择:{name}",
|
||
"selectCertFile": "请选择 PEM/CRT 文件",
|
||
"selectKeyFile": "请选择 KEY/PEM 文件",
|
||
"uploading": "上传中...",
|
||
"uploadFiles": "上传文件",
|
||
"clearFiles": "清空文件",
|
||
"selectFiles": "请选择证书文件和私钥文件。",
|
||
"detailTitle": "证书详情",
|
||
"detailDesc": "查看证书元信息、备注以及当前保存的 PEM 内容。",
|
||
"loadingDetail": "加载证书详情中...",
|
||
"status": "状态",
|
||
"notBefore": "生效时间",
|
||
"notAfter": "到期时间",
|
||
"certPemCopied": "证书 PEM 已复制",
|
||
"keyPemCopied": "私钥 PEM 已复制",
|
||
"copy": "复制",
|
||
"close": "关闭",
|
||
"editCert": "编辑证书",
|
||
"deleting": "删除中...",
|
||
"deleteCert": "删除证书",
|
||
"certStatus": {
|
||
"unknownExpiry": "有效期未知",
|
||
"expired": "已过期",
|
||
"expiresInDays": "{days} 天内到期",
|
||
"valid": "有效"
|
||
},
|
||
"validation": {
|
||
"nameRequired": "请输入证书名称",
|
||
"nameTooLong": "证书名称不能超过 255 个字符",
|
||
"certPemRequired": "请输入证书 PEM 内容",
|
||
"keyPemRequired": "请输入私钥 PEM 内容",
|
||
"remarkTooLong": "备注不能超过 255 个字符",
|
||
"primaryDomainRequired": "请输入主域名",
|
||
"dnsAccountRequired": "请选择 DNS 账号"
|
||
}
|
||
},
|
||
"dnsAccounts": {
|
||
"title": "DNS 账号",
|
||
"addAccount": "添加账号",
|
||
"listTitle": "DNS 账号列表",
|
||
"listDesc": "统一管理 DNS 服务商账号,用于 ACME 证书的 DNS 验证申请。",
|
||
"loadingList": "加载 DNS 账号中...",
|
||
"requestFailed": "请求失败,请稍后重试。",
|
||
"emptyList": "暂无 DNS 账号,点击右上角「添加账号」开始录入。",
|
||
"createdAt": "创建于:{date}",
|
||
"created": "DNS 账号已添加",
|
||
"deleted": "DNS 账号已删除",
|
||
"deleteTitle": "确认删除 DNS 账号",
|
||
"deleteDesc": "确认删除 DNS 账号 {name} 吗?",
|
||
"createTitle": "添加 DNS 账号",
|
||
"createDesc": "统一管理 DNS 服务商账号,用于 ACME 证书的 DNS 验证申请。",
|
||
"accountName": "账号名称",
|
||
"accountNamePlaceholder": "Cloudflare 邮箱账号",
|
||
"provider": "DNS 服务商",
|
||
"tokenPlaceholder": "请勿使用 Global API Key",
|
||
"nameRequired": "请输入名称",
|
||
"tokenRequired": "请输入 Token",
|
||
"submitting": "提交中...",
|
||
"submit": "提交"
|
||
},
|
||
"origins": {
|
||
"title": "源站",
|
||
"subtitle": "集中维护规则复用的源站地址,减少批量改地址时的重复操作。",
|
||
"refresh": "刷新",
|
||
"create": "新增源站",
|
||
"loadFailed": "加载失败",
|
||
"emptyTitle": "暂无源站",
|
||
"emptyDesc": "点击右上角新增源站,后续规则可直接复用这些地址。",
|
||
"routeCount": "{count} 条规则",
|
||
"noRemark": "暂无备注",
|
||
"lastUpdated": "最后更新:{date}",
|
||
"detail": "详情",
|
||
"edit": "编辑",
|
||
"deleted": "源站已删除",
|
||
"deleteFailed": "删除失败",
|
||
"deleteTitle": "删除源站",
|
||
"deleteDesc": "确认删除源站 {name} 吗?",
|
||
"confirmDelete": "确认删除",
|
||
"missingId": "缺少有效的源站 ID。",
|
||
"loadingDetail": "加载源站详情...",
|
||
"backToList": "返回列表",
|
||
"notFound": "源站不存在或已被删除。",
|
||
"editOrigin": "编辑源站",
|
||
"deleteOrigin": "删除源站",
|
||
"boundRoutes": "绑定规则",
|
||
"createdAt": "创建时间",
|
||
"updatedAt": "更新时间",
|
||
"remark": "备注",
|
||
"relatedRoutes": "关联规则",
|
||
"relatedRoutesDesc": "展示当前源站作为主源站绑定的规则。",
|
||
"noRelatedRoutes": "暂无关联规则",
|
||
"noRelatedRoutesDesc": "当前源站还没有被任何规则引用。",
|
||
"domain": "域名",
|
||
"address": "源站地址",
|
||
"status": "状态",
|
||
"enabled": "启用",
|
||
"disabled": "停用",
|
||
"addressRequired": "请输入源站地址",
|
||
"addressInvalid": "源站地址格式不合法",
|
||
"updated": "源站已更新",
|
||
"created": "源站已创建",
|
||
"saveFailed": "保存失败",
|
||
"editorDesc": "源站作为规则里的可复用地址目录,协议和端口仍由规则决定。",
|
||
"name": "源站名",
|
||
"namePlaceholder": "主站源站",
|
||
"saving": "保存中...",
|
||
"saveChanges": "保存修改"
|
||
},
|
||
"proxyRoutes": {
|
||
"title": "规则配置",
|
||
"refresh": "刷新",
|
||
"createRule": "新建规则",
|
||
"listTitle": "规则列表",
|
||
"searchPlaceholder": "搜索站点、域名或上游...",
|
||
"emptyTitle": "暂无网站",
|
||
"emptyDesc": "先创建一个网站,再进入配置子页面继续补齐 HTTPS、缓存和限流。",
|
||
"noMatches": "没有匹配结果",
|
||
"noMatchesDesc": "试试调整搜索词,或者清空筛选条件。",
|
||
"siteName": "站点名称",
|
||
"domain": "域名",
|
||
"status": "状态",
|
||
"upstream": "上游",
|
||
"actions": "操作",
|
||
"enabled": "已启用",
|
||
"disabled": "已停用",
|
||
"configure": "配置",
|
||
"siteCreated": "网站已创建",
|
||
"siteDeleted": "网站已删除",
|
||
"deleteFailed": "删除失败",
|
||
"loadListFailed": "规则列表加载失败",
|
||
"unknownError": "未知错误",
|
||
"deleteSiteTitle": "确认删除网站",
|
||
"deleteSiteDesc": "确认删除网站 {name} 吗?这会删除该站点下的全部域名与配置。",
|
||
"deleting": "删除中...",
|
||
"missingId": "缺少有效的规则 ID。",
|
||
"notFound": "未找到对应规则",
|
||
"notFoundDesc": "请返回列表重试。",
|
||
"saving": "保存中...",
|
||
"saveFailed": "保存失败",
|
||
"requestFailed": "请求失败,请稍后重试。",
|
||
"back": "返回",
|
||
"publish": "发布配置",
|
||
"diffFailed": "获取配置差异失败",
|
||
"noPublishNeeded": "当前配置与激活版本一致,无需发布",
|
||
"publishSuccess": "发布成功",
|
||
"versionLabel": "版本 {version}",
|
||
"publishFailed": "发布失败",
|
||
"publishTitle": "确认发布配置",
|
||
"publishDesc": "将把当前待发布配置生成新版本并设为激活版本,节点将随后拉取更新。",
|
||
"confirmPublish": "确认发布",
|
||
"createDesc": "从已注册的 Zone 域名中选择绑定关系,创建后可继续配置缓存和限流等高级选项。",
|
||
"siteId": "站点标识",
|
||
"siteIdOptionalDesc": "可选,留空时会自动使用首个域名。",
|
||
"siteIdStableDesc": "建议使用稳定、可读的业务标识,不必与域名完全一致。",
|
||
"bindDomains": "绑定域名",
|
||
"bindDomainsHint": "从已登记域名中勾选绑定;可用「快捷新增域名」在 Zone 下创建 FQDN 并自动勾选。",
|
||
"upstreamType": "回源方式",
|
||
"upstreamDirect": "直连上游",
|
||
"upstreamTunnel": "内网穿透 (Tunnel)",
|
||
"upstreamPages": "Pages 静态站点",
|
||
"upstreamAddresses": "上游地址",
|
||
"upstreamUrlsHint": "每行一个完整 URL。第一行作为主回源,多上游模式请保持相同协议且不要包含 path 或 query。",
|
||
"selectTunnel": "选择内网穿透隧道",
|
||
"pleaseSelect": "请选择...",
|
||
"online": "在线",
|
||
"offline": "离线",
|
||
"tunnelForwardHint": "将请求转发到该隧道连接的客户端节点。",
|
||
"tunnelProtocol": "内网服务协议",
|
||
"tunnelAddress": "内网服务地址",
|
||
"tunnelAddressHint": "例如: 127.0.0.1:8080 或 192.168.1.10:80",
|
||
"selectPagesProject": "选择 Pages 项目",
|
||
"pagesProjectHint": "仅显示已启用且已有激活部署的 Pages 项目。",
|
||
"enableSite": "启用站点",
|
||
"enableSiteDesc": "关闭后会保留配置,但不会参与发布。",
|
||
"createFailed": "创建失败,请稍后重试",
|
||
"creating": "创建中…",
|
||
"create": "创建",
|
||
"searchDomainOrZone": "搜索域名或 Zone…",
|
||
"quickAddDomain": "快捷新增域名",
|
||
"noZoneDomains": "暂无可用 Zone 域名。请先在 <websites>网站管理</websites> 中添加 FQDN,或使用「快捷新增域名」。",
|
||
"noBindableDomains": "没有可绑定的域名(其余域名已绑定其他路由)。可用「快捷新增域名」创建。",
|
||
"noMatchingDomains": "没有匹配的域名",
|
||
"certNumber": "证书 #{id}",
|
||
"noCert": "无证书",
|
||
"zoneName": "Zone {name}",
|
||
"zoneId": "Zone #{id}",
|
||
"unboundDomain": "未绑定域名",
|
||
"pagesProjectId": "Pages 项目 #{id}",
|
||
"pagesUnbound": "Pages 项目未绑定",
|
||
"tunnelTargetUnset": "未配置目标",
|
||
"upstreamUnset": "未配置上游",
|
||
"domainSettings": "域名设置",
|
||
"domainSettingsDesc": "绑定已在 Zone 中注册的 FQDN。证书请在 Zone 域名管理中维护。",
|
||
"redirectNeedsCert": "启用 HTTP 跳转前,请先为所选域名绑定证书(在 Zone 中配置)",
|
||
"domainSettingsSaved": "域名设置已保存",
|
||
"redirectHttp": "HTTP 自动跳转到 HTTPS",
|
||
"redirectHttpEnabledHint": "开启后会额外生成 80 端口重定向规则。",
|
||
"redirectHttpNeedsCert": "所选域名至少绑定一张证书后才能启用。",
|
||
"reverseProxy": "反向代理",
|
||
"reverseProxyDesc": "配置请求回源上游的策略与地址。",
|
||
"proxySaved": "反向代理设置已保存",
|
||
"originHostHint": "留空时默认透传访问域名 $host。",
|
||
"customHeaders": "自定义请求头",
|
||
"customHeadersHint": "每行一条,格式为 Key: Value。",
|
||
"limits": "流量限制",
|
||
"limitsDesc": "站点限流。空或 0 继承全局默认;-1 显式关闭;大于 0 为自定义。",
|
||
"limitsSaved": "流量限制已保存",
|
||
"connLimit": "并发限制",
|
||
"connLimitHint": "空或 0 继承全局默认;-1 关闭;大于 0 为自定义并发上限。",
|
||
"ipLimit": "单 IP 限制",
|
||
"ipLimitHint": "空或 0 继承全局默认;-1 关闭;大于 0 为单 IP 自定义上限。",
|
||
"rateLimit": "限速",
|
||
"rateLimitPlaceholder": "512k/1m 或 -1",
|
||
"rateLimitHint": "空或 0 继承全局默认;-1 关闭;例如 512k、1m 为自定义带宽。",
|
||
"reqLimit": "单 IP 请求频率",
|
||
"reqLimitPlaceholder": "10r/s / 100r/m 或 -1",
|
||
"reqLimitHint": "空或 0 继承全局默认;-1 关闭;例如 10r/s、100r/m 为自定义频率。",
|
||
"cache": "缓存",
|
||
"cacheDesc": "配置站点边缘缓存策略。",
|
||
"cacheSaved": "缓存设置已保存",
|
||
"enableCache": "启用站点缓存",
|
||
"enableCacheDesc": "新建推荐「标准静态资源」。",
|
||
"cachePolicy": "缓存策略",
|
||
"policyStatic": "标准静态资源(推荐)",
|
||
"policyAll": "所有可缓存 GET(高级)",
|
||
"policySuffix": "自定义后缀",
|
||
"policyPrefix": "路径前缀",
|
||
"policyExact": "精确路径",
|
||
"advancedRiskTitle": "高级策略风险",
|
||
"advancedRiskDesc": "个性化 HTML 在源站未声明 private / no-store 时可能被边缘缓存并串给其他用户。详情见标题旁帮助。",
|
||
"cacheRules": "缓存规则",
|
||
"cacheHelpTitle": "缓存使用说明",
|
||
"cacheHelpIntro": "扩展名/策略决定是否可缓存,源站头与Set-Cookie 决定是否入库。须同时开启性能设置中的全局 OpenResty 缓存。",
|
||
"cacheHelpRecommendLabel": "推荐策略:",
|
||
"cacheHelpRecommend": "新建站点建议使用「标准静态资源」(含 css/js/map/图片/字体/媒体等,不含 HTML/JSON)。",
|
||
"cacheHelpGeneralLabel": "通用规则:",
|
||
"cacheHelpGeneral": "非 GET 不缓存;登录 Cookie 不会单独跳过缓存;源站 private/no-store 或响应 Set-Cookie 不会写入边缘。",
|
||
"cacheHelpAllGetLabel": "所有可缓存 GET:",
|
||
"cacheHelpAllGet": "高级选项,类似 Cache Everything。个性化页面须由源站声明 private/no-store,否则 HTML 可能被边缘缓存并串给其他用户。",
|
||
"cacheHelpCustomLabel": "自定义规则:",
|
||
"cacheHelpCustom": "后缀填 jpg/css/js;路径前缀填 /assets;精确路径填 /robots.txt。保存后须重新发布配置版本才会在节点生效。",
|
||
"cacheHintSuffix": "每行一个后缀,例如 jpg、css、js。",
|
||
"cacheHintPrefix": "每行一个路径前缀,例如 /assets、/static。",
|
||
"cacheHintExact": "每行一个精确路径,例如 /robots.txt。",
|
||
"cacheHintStatic": "标准静态资源使用内置扩展名列表,无需填写规则。",
|
||
"cacheHintNone": "当前策略无需额外路径规则。",
|
||
"cachePlaceholderNone": "当前策略无需额外规则",
|
||
"auth": "认证配置",
|
||
"authDesc": "配置 Basic Auth 限制未授权访问。PoW 防护请在 WAF 规则组中配置。",
|
||
"authSaved": "认证配置已保存",
|
||
"authFormInvalid": "请检查认证配置表单",
|
||
"authMode": "认证模式",
|
||
"authNone": "无认证",
|
||
"powHint": "PoW 防护仅支持在 WAF 规则组中启用并绑定站点。",
|
||
"username": "账号",
|
||
"password": "密码",
|
||
"wafDesc": "全局规则组始终生效;这里可以为当前网站叠加自定义规则组。",
|
||
"wafUpdated": "WAF 规则组已更新",
|
||
"loadingWaf": "加载 WAF 规则组...",
|
||
"alwaysOn": "始终生效",
|
||
"selectCustomRules": "选择自定义规则",
|
||
"selectCustomRulesDesc": "选中的规则会按下方执行顺序依次运行。",
|
||
"selectRule": "选择{name}",
|
||
"ruleEnabled": "启用中",
|
||
"ruleDisabled": "已停用",
|
||
"nodeCount": "{count} 个节点",
|
||
"executionOrder": "执行顺序",
|
||
"executionOrderDesc": "自定义规则按此顺序执行,可拖动或使用上下移动按钮调整。",
|
||
"noCustomWaf": "暂无自定义 WAF 规则组",
|
||
"dragRule": "拖动{name}",
|
||
"moveUpRule": "上移{name}",
|
||
"moveDownRule": "下移{name}",
|
||
"sections": {
|
||
"domains": "域名设置",
|
||
"domainsDesc": "维护站点标识,并从 Zone 中选择绑定域名。",
|
||
"limits": "流量限制",
|
||
"limitsDesc": "设置连接数和限速(可继承全局默认)。",
|
||
"proxy": "反向代理",
|
||
"proxyDesc": "配置主回源和上游地址。",
|
||
"cache": "缓存",
|
||
"cacheDesc": "配置站点缓存策略。",
|
||
"waf": "WAF",
|
||
"wafDesc": "绑定 WAF 规则组,并查看当前站点生效策略。",
|
||
"auth": "认证配置",
|
||
"authDesc": "配置基础鉴权访问,需要输入账号密码才能访问网站。"
|
||
},
|
||
"validation": {
|
||
"enterDomain": "请输入域名",
|
||
"invalidDomain": "域名格式不合法",
|
||
"enterAtLeastOneDomain": "请至少填写一个域名",
|
||
"invalidDomainWithValue": "域名格式不合法:{domain}",
|
||
"duplicateDomain": "域名重复:{domain}",
|
||
"enterAtLeastOneUpstream": "请至少填写一个上游地址",
|
||
"invalidUpstream": "上游地址格式不合法:{url}",
|
||
"upstreamMustBeHttp": "上游地址必须以 http:// 或 https:// 开头:{url}",
|
||
"upstreamMissingHost": "上游地址缺少主机名:{url}",
|
||
"multiUpstreamNoPath": "多上游模式暂不支持带路径或查询参数的地址",
|
||
"multiUpstreamSameProtocol": "同一站点的多个上游必须使用相同协议",
|
||
"invalidOriginHost": "回源 Host 格式不合法",
|
||
"invalidHeader": "自定义请求头格式不合法:{line}",
|
||
"invalidHeaderName": "自定义请求头名称不合法:{key}",
|
||
"invalidLimitRate": "限速格式不合法,请使用 512k、1m、纯数字,或 -1 关闭",
|
||
"invalidLimitReq": "请求频率格式不合法,请使用 10r/s、100r/m,或 -1 关闭",
|
||
"cacheRuleRequired": "当前缓存策略至少需要一条规则",
|
||
"invalidCacheSuffix": "缓存后缀格式不合法:{rule}",
|
||
"invalidCachePath": "缓存路径规则格式不合法:{rule}",
|
||
"siteNameTooLong": "站点标识不能超过 255 个字符",
|
||
"selectAtLeastOneDomain": "请至少选择一个域名",
|
||
"selectTunnel": "请选择内网穿透隧道",
|
||
"enterTunnelTarget": "请填写内网服务地址 (如 127.0.0.1:8080)",
|
||
"selectPagesProject": "请选择 Pages 项目",
|
||
"enterSiteId": "请输入站点标识",
|
||
"enterIntegerOrMinusOne": "请输入 -1、0 或正整数",
|
||
"enterUsername": "请输入账号",
|
||
"enterPassword": "请输入密码"
|
||
}
|
||
},
|
||
"responses": {
|
||
"title": "响应页面",
|
||
"subtitle": "配置源站错误页与离线页。",
|
||
"loadingPermission": "加载权限信息...",
|
||
"loadingConfig": "加载响应页面配置...",
|
||
"loadingPage": "加载响应页面...",
|
||
"loadingErrorConfig": "加载错误页配置...",
|
||
"loadingOfflineConfig": "加载离线页配置...",
|
||
"loadFailed": "加载失败",
|
||
"forbidden": "权限不足",
|
||
"forbiddenSettings": "只有管理员可以访问响应页面设置。",
|
||
"forbiddenPreviewError": "只有管理员可以预览错误页。",
|
||
"forbiddenPreviewOffline": "只有管理员可以预览离线页。",
|
||
"forbiddenEditError": "只有管理员可以编辑错误页 HTML。",
|
||
"forbiddenEditOffline": "只有管理员可以编辑离线页 HTML。",
|
||
"errorPage": "错误页",
|
||
"offlinePage": "离线页",
|
||
"saveFailed": "保存失败",
|
||
"policySaved": "触发策略已保存,请前往版本发布使配置生效",
|
||
"triggerPolicy": "触发策略",
|
||
"triggerPolicyDesc": "配置源站错误页的启用条件与触发状态码。",
|
||
"enableErrorPage": "启用源站错误页",
|
||
"enableErrorPageDesc": "关闭后会透传源站或 Nginx 默认错误响应。",
|
||
"getOnly": "仅针对 GET 请求",
|
||
"getOnlyDesc": "开启后仅对 GET 请求的匹配错误状态码返回自定义错误页。",
|
||
"statusCodes": "触发状态码",
|
||
"statusCodesDesc": "支持单码(如 502)或闭区间(如 500-599)。",
|
||
"statusCodesPlaceholder": "例如 502 或 500-599,回车添加",
|
||
"pagePreview": "页面预览",
|
||
"preview": "预览",
|
||
"edit": "编辑",
|
||
"errorPagePreview": "源站错误页预览",
|
||
"errorPreview": "错误页预览",
|
||
"offlinePreview": "离线页预览",
|
||
"offlinePageDesc": "启用后给启用 HTTPS 的网站下发 Service Worker,域名无法访问时浏览器从缓存展示此离线页。",
|
||
"offlineSaved": "离线页已保存,请前往版本发布使配置生效",
|
||
"enableOffline": "启用 Service Worker 离线页",
|
||
"enableOfflineDesc": "仅对 HTTPS 网站生效。",
|
||
"enableOfflineAria": "启用离线页",
|
||
"scope": "生效范围",
|
||
"scopeDesc": "仅对选中的 HTTPS 域名生效;留空则不注入。",
|
||
"addDomain": "添加域名",
|
||
"noScopeSelected": "尚未选择生效域名,保存后不注入任何站点。",
|
||
"enableThenSelectScope": "启用离线兜底后可选择生效域名。",
|
||
"removeDomain": "移除 {domain}",
|
||
"selectScopeTitle": "选择生效域名",
|
||
"selectScopeDesc": "仅对选中的 HTTPS 域名注入离线兜底;搜索筛选与批量勾选。",
|
||
"domain": "域名",
|
||
"searchDomainOrZone": "搜索域名或顶级域…",
|
||
"selectedCount": "已选 {count}",
|
||
"visibleCount": "可见 {count}",
|
||
"unselectVisible": "取消全选",
|
||
"selectVisible": "全选可见",
|
||
"clear": "清空",
|
||
"noAvailableDomains": "暂无可用域名,请先在 Zone 管理中注册域名。",
|
||
"noMatchingDomains": "没有匹配的域名",
|
||
"selectZone": "选择顶级域 {domain}",
|
||
"apex": "顶级域",
|
||
"confirm": "确定",
|
||
"backToError": "返回错误页",
|
||
"backToOffline": "返回离线页",
|
||
"closePreview": "关闭预览",
|
||
"fullscreen": "全屏展示",
|
||
"htmlTooLarge": "HTML 大小超出限制(最大 256KB)",
|
||
"errorHtmlSaved": "源站错误页 HTML 已保存,请前往版本发布使配置生效",
|
||
"offlineHtmlSaved": "离线页 HTML 已保存,请前往版本发布使配置生效",
|
||
"templateNotFound": "未找到所选模板",
|
||
"templateLoaded": "已加载模板「{name}」到编辑器",
|
||
"errorRestored": "已清空为使用服务端内置默认模板(需保存后生效)",
|
||
"offlineRestored": "已清空为使用内置默认模板(需保存后生效)",
|
||
"editErrorHtml": "编辑错误页 HTML",
|
||
"editOfflineHtml": "编辑离线页 HTML",
|
||
"offlineLivePreview": "离线页实时预览",
|
||
"builtinTemplates": "内置模板",
|
||
"selectTemplate": "选择模板",
|
||
"loadTemplate": "加载模板",
|
||
"restoreDefault": "恢复默认",
|
||
"restoreTitle": "恢复默认 HTML?",
|
||
"restoreErrorDesc": "将清空编辑器内容,保存后使用服务端内置默认模板。此操作不会自动保存。",
|
||
"restoreOfflineDesc": "将清空编辑器内容,保存后使用内置默认模板。此操作不会自动保存。",
|
||
"confirmRestore": "确认恢复"
|
||
}
|
||
}
|