Files
FileHost/i18n/locales/zh-CN.json
T
tianmo ccfdac2e1b feat: 支持注销用户并展示普通用户使用情况
- 新增管理员注销用户接口,要求输入用户名二次确认
- 注销时清理用户当前图片、视频、文件、标签、会话和自身日志
- 保留备份任务、管理员审计数据和全局配置
- 用户列表展示图片、视频、文件占用,管理员行隐藏使用情况和操作按钮
- 补充注销流程与用量统计测试
2026-10-19 17:48:44 +08:00

1330 lines
60 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"app": {
"title": "PicHost - 个人图床",
"description": "个人自用的轻量图床系统",
"tagline": "个人轻量存储"
},
"common": {
"loadingSession": "正在验证登录状态…",
"save": "保存",
"cancel": "取消",
"continue": "继续",
"copy": "复制",
"delete": "删除",
"edit": "编辑",
"search": "搜索",
"refresh": "刷新",
"back": "返回",
"all": "全部",
"notConfigured": "(未配置)",
"countImages": "{count} 张",
"itemsUnit": "条",
"imagesUnit": "张",
"more": "更多"
},
"nav": {
"api": "API",
"gallery": "图库",
"videoLibrary": "视频库",
"fileLibrary": "文件库",
"stats": "统计",
"logs": "操作日志",
"settings": "设置",
"storage": "存储",
"users": "用户",
"menu": "菜单",
"language": "语言",
"appearance": "外观",
"account": "账户",
"backToUpload": "返回上传",
"changePassword": "修改密码",
"systemSettings": "系统设置",
"logout": "退出登录"
},
"theme": {
"switch": "切换主题",
"light": "浅色",
"dark": "深色",
"system": "跟随系统"
},
"locale": {
"switch": "切换语言",
"zh-CN": "简体中文",
"en": "English"
},
"auth": {
"username": "用户名",
"password": "密码",
"confirmPassword": "确认密码",
"login": "登录",
"register": "注册",
"adminSecret": "管理密钥",
"adminSecretPlaceholder": "输入 ADMIN_SECRET",
"legacyHint": "遗留部署:使用密钥登录后将引导创建账号",
"noAccount": "没有账号?",
"hasAccount": "已有账号?",
"backToLogin": "返回登录",
"loginFooter": "未登录时无法访问上传和管理功能",
"loginSuccess": "登录成功",
"loginFailedSecret": "登录失败,请检查密钥",
"loginFailedCredentials": "用户名或密码错误",
"loginFailed": "登录失败,请检查用户名和密码",
"captchaHint": "拖动滑块对齐缺口",
"captchaSuccess": "验证通过",
"verificationMisconfigured": "人机验证未正确配置,请联系管理员",
"capInitialState": "验证你是人类",
"capVerifying": "验证中…",
"capSolved": "验证通过",
"capError": "验证失败",
"registerFailed": "注册失败,请检查输入",
"setupFailed": "初始化失败,请检查输入",
"migrateFailed": "迁移失败,请检查输入",
"passwordMismatch": "两次输入的密码不一致",
"showPassword": "显示密码",
"hidePassword": "隐藏密码",
"registerSuccess": "注册成功",
"errors": {
"invalidUsername": "用户名需为 3–32 位字母、数字或下划线",
"invalidPassword": "密码至少 8 位"
}
},
"domainSeparationConfirm": {
"title": "确认保存独立域名配置?",
"description": "保存后,后台域名用于管理后台与 API;图片、视频、文件域名分别只提供对应媒体直链。若通过 IP、未配置的 Host,或反代未正确传递 Host 访问,可能无法打开后台。\n\n若发生锁死,可执行 docker exec pichost clear-domains(本地开发:npm run clear-domains)清除域名配置,或在能访问时于设置中关闭「域名分离」。\n\n确定仍要保存吗?",
"confirm": "确认保存"
},
"setup": {
"migrateTitle": "迁移到账号密码登录",
"initTitle": "首次使用,创建管理员账号",
"usernamePlaceholder": "3–32 位字母、数字或下划线",
"passwordPlaceholder": "设置登录密码",
"confirmPlaceholder": "再次输入密码",
"allowRegistration": "允许其他用户注册",
"domainSeparation": "启用后台与图片、视频、文件各自分离",
"domainSeparationHint": "启用后,后台、图片、视频、文件能够各自使用独立的域名。",
"domainSeparationProxyHint": "需将配置的域名解析到本机,并通过 Nginx、Caddy、NPM 等反代到端口 6892",
"domainSeparationProxyExample": "查看示例",
"siteBaseUrl": "网站域名",
"siteBaseUrlHint": "末尾不加 /;管理后台、API 上传地址",
"siteBaseUrlPlaceholder": "https://admin.example.com",
"imageBaseUrl": "图片域名",
"imageBaseUrlHint": "末尾不加 /;生成图片直链地址",
"imageBaseUrlPlaceholder": "https://pic.example.com",
"videoBaseUrl": "视频域名",
"videoBaseUrlHint": "末尾不加 /;留空时沿用图片域名",
"videoBaseUrlPlaceholder": "https://video.example.com",
"fileBaseUrl": "文件域名",
"fileBaseUrlHint": "末尾不加 /;留空时沿用图片域名",
"fileBaseUrlPlaceholder": "https://file.example.com",
"domainSeparationInvalid": "请填写有效的后台、图片、视频、文件域名",
"migrateSubmit": "完成迁移",
"initSubmit": "创建并进入",
"migrateSuccess": "账号迁移完成",
"initSuccess": "初始化完成",
"restoreTitle": "从备份包恢复",
"restoreSubtitle": "上传 .phost.tar.gz 恢复整站数据",
"restoreHint": "恢复将覆盖当前全部数据。云存储密钥未包含在备份中,登录后请在存储页重新填写。",
"restoreUpload": "选择备份文件",
"restoreSubmit": "开始恢复",
"restoreProgress": "恢复中… {progress}/{total}",
"restoreSuccess": "恢复完成,请使用备份中的管理员账号登录",
"restoreFailed": "恢复失败",
"restoreSecretsHint": "云存储密钥未包含在备份中,登录后请在存储页重新填写",
"modeInit": "创建管理员",
"modeRestore": "从备份恢复"
},
"register": {
"title": "注册账号",
"subtitle": "创建 PicHost 用户账号"
},
"password": {
"title": "修改密码",
"subtitle": "修改您的登录密码",
"current": "当前密码",
"new": "新密码",
"confirmNew": "确认新密码",
"newPlaceholder": "设置新密码",
"changed": "密码已修改",
"tooShort": "新密码至少 8 位",
"changeFailed": "修改密码失败",
"strength": "密码强度",
"weak": "弱",
"medium": "中",
"strong": "强",
"ruleMinLength": "至少 {n} 个字符",
"ruleMixedCase": "包含大小写字母",
"ruleNumber": "包含数字",
"ruleSpecial": "包含特殊字符"
},
"upload": {
"title": "拖拽图片到此处上传",
"hint": "或点击选择文件,按 {ctrl} + {v} 粘贴图片",
"formats": "支持 JPEG / PNG / WebP / GIF / SVG / ICO,单张最大 {size} MB,每次最多 10 张",
"selectFiles": "选择图片",
"settings": "上传设置",
"progress": "上传进度",
"statusPending": "等待",
"statusUploading": "上传中",
"statusSuccess": "成功",
"statusError": "失败",
"selectImages": "请选择图片",
"maxFiles": "每次最多上传 {n} 张图片",
"uploadSuccess": "成功上传 {n} 张图片",
"uploadPartialFail": "{n} 张图片上传失败",
"uploadFailed": "上传失败",
"loginRequired": "请先登录",
"sessionTitle": "本次上传",
"sessionEmpty": "暂无本次上传"
},
"tags": {
"column": "标签",
"uploadLabel": "标签(可选)",
"addTag": "添加标签",
"searchOrCreate": "搜索或创建标签",
"createNamed": "创建标签 \"{name}\"",
"created": "已创建标签「{name}」",
"createFailed": "创建标签失败",
"updateFailed": "更新标签失败",
"filterAll": "全部标签",
"filterSelected": "已选 {n} 个",
"filterTitle": "按标签筛选",
"manage": "管理",
"manageTitle": "管理标签",
"manageImageTitle": "管理标签",
"manageSubtitle": "集中管理图片标签,支持新增、修改、删除与合并",
"newTag": "新建标签",
"addTag": "新增标签",
"mergeTags": "合并标签",
"searchName": "搜索标签名称",
"filterStatusAll": "全部状态",
"filterStatusUsed": "已使用",
"filterStatusUnused": "未使用",
"statTotal": "标签总数",
"statUsed": "已使用标签",
"statUnused": "未使用标签",
"statNew7d": "最近 7 天新增",
"colName": "标签名称",
"colImageCount": "图片数",
"colLastUsed": "最近使用",
"colCreatedAt": "创建时间",
"neverUsed": "从未使用",
"colActions": "操作",
"mergeIntoAction": "合并到…",
"mergeIntoTitle": "合并到…",
"mergeIntoSubtitle": "将标签「{name}」合并到其他标签",
"mergeIntoChoose": "选择要合并到的目标标签",
"mergeIrreversibleTitle": "此操作不可恢复",
"mergeIrreversible": "合并后,被合并的标签将被永久删除,其关联图片会归入保留的标签。此操作无法撤销。",
"mergeConfirmKeep": "将保留标签「{name}」",
"mergeWillDelete": "以下标签将被删除:{names}",
"totalCount": "共 {n} 个标签",
"sortByCount": "按数量",
"sortByName": "按名称",
"search": "搜索标签",
"namePlaceholder": "标签名称",
"customColor": "自定义颜色",
"pickColor": "选择颜色",
"preview": "预览",
"renamed": "标签已重命名",
"renameFailed": "重命名失败",
"colorFailed": "更新颜色失败",
"deleted": "已删除标签「{name}」",
"deleteFailed": "删除标签失败",
"deleteConfirmTitle": "确认删除标签",
"deleteConfirmDesc": "确定删除标签「{name}」?图片上的该标签将被移除,此操作不可恢复。",
"mergeSelectAtLeast": "请至少选择 2 个标签",
"mergeHint": "勾选多个标签后可合并;其余标签的图片将归入保留的标签",
"mergeSelected": "已选 {n} 个标签",
"mergeClear": "取消选择",
"mergeTitle": "合并标签",
"mergeSubtitle": "将多个标签合并为一个",
"mergeNote": "未选中的标签将被删除,其图片会归入保留的标签",
"mergeChooseTarget": "选择要保留的标签",
"mergeAction": "合并为…",
"mergeRow": "合并",
"mergeConfirm": "确认合并",
"merged": "标签已合并",
"mergeFailed": "合并失败",
"untagged": "无标签",
"untaggedAction": "+ 无标签",
"unlabeled": "未标记",
"selectedLabel": "已选标签 ({n})",
"clearSelected": "清空",
"selectAll": "全选",
"deselectAll": "取消全选",
"existingLabel": "已有标签 ({n})",
"commonTags": "常用标签",
"recentTags": "最近使用",
"moreTags": "还有 {n} 个标签",
"classifyHint": "标签仅用于分类,不影响图片实际存储路径",
"saved": "标签已保存",
"saveFailed": "保存标签失败",
"batchTagAll": "批量打标签",
"batchAddTitle": "添加标签",
"batchAddSubtitle": "已选 {n} 张图片",
"modeOr": "任一",
"modeAnd": "全部",
"batchTitle": "批量标签",
"batchSubtitle": "为已选 {n} 张图片更新标签",
"batchAdd": "添加标签",
"batchRemove": "移除标签",
"batchSuccess": "批量更新完成",
"batchFailed": "批量更新失败",
"noMatch": "无匹配标签",
"emptyHint": "暂无标签,可输入名称创建",
"settingsLink": "在图库中管理标签(新建、改色、合并、删除)",
"openManage": "打开标签管理"
},
"copy": {
"url": "直链",
"markdown": "Markdown",
"html": "HTML",
"bbcode": "BBCode",
"copied": "已复制到剪贴板",
"copiedLabel": "已复制 {label}",
"copiedUrl": "已复制直链",
"copiedMarkdown": "已复制 Markdown",
"copiedHtml": "已复制 HTML",
"copiedBbcode": "已复制 BBCode",
"copiedFormat": "已复制 {format}",
"failed": "复制失败",
"failedManual": "复制失败,请手动选中链接复制",
"curl": "已复制 cURL 示例"
},
"preferences": {
"title": "上传偏好",
"subtitle": "浏览器本地与账号设置,仅影响您的上传体验",
"back": "返回上传",
"processing": "图片处理",
"clientCompress": "客户端预压缩",
"clientCompressHint": "上传前在浏览器端压缩以减小体积;若未开启上方「保留原图」,服务端仍可能转为 WebP。",
"autoDeletePrefix": "自动删除超过",
"autoDeleteSuffix": "天的图片",
"autoDeleteHint": "自动清理指定天数前上传的图片,仅对开启后新上传的图片生效。",
"webpQuality": "WebP 压缩质量",
"webpQualityHint": "客户端预压缩为 WebP 时的质量;数值越高画质越好、体积越大。",
"current": "当前:{n}",
"qualityHigh": "高质量",
"qualityMedium": "中等质量",
"qualityLow": "有损压缩",
"convenience": "便捷功能",
"videoProcessing": "视频处理",
"lowMemoryTranscodeTitle": "低内存服务器提示",
"lowMemoryTranscodeHint": "检测到当前机器内存约 {memory} GB,低于 2 GB。暂不建议开启 HLS 转码,以免转码过程导致内存不足或服务不稳定。",
"transcodeToHls": "转码成 m3u8",
"transcodeToHlsHint": "自动切片为 HLS,会占用 CPU。",
"concurrentHint": "同时转码数",
"threadsHint": "单任务 CPU 上限",
"transcodeConcurrency": "并发转码数量",
"transcodeThreads": "限制核心数",
"unitCount": "个",
"transcodeQuality": "转码质量",
"presetCopy": "直接封装",
"presetSpeed": "速度",
"presetBalanced": "平衡",
"presetQuality": "质量",
"presetCompress": "压缩",
"compressBitrate": "目标码率",
"transcodeLoadFailed": "读取转码设置失败",
"transcodeSaveFailed": "保存转码设置失败",
"autoCopy": "上传成功自动复制链接",
"autoCopyHint": "上传成功后,自动复制链接到剪贴板。",
"uploadTags": "上传标签",
"uploadTagsHint": "输入后按 Enter、逗号或移开焦点加入待添加列表;留空则不添加标签。",
"uploadTagsPlaceholder": "输入标签",
"uploadTagsPending": "待添加标签({n})",
"uploadTagsRemove": "删除标签 {name}"
},
"settings": {
"title": "系统设置",
"pageTitle": "设置与偏好",
"pageSubtitle": "管理系统配置与操作日志",
"pageSubtitleBasic": "配置系统的基本选项,让 PicHost 更好地为你服务。",
"pageSubtitleDomains": "配置后台、图片、视频、文件域名以及存储路径等相关设置",
"pageSubtitleAccess": "配置图片访问安全策略,防止资源被恶意盗用。",
"pageSubtitleLogs": "查看用户上传、删除、修改与系统配置记录",
"searchPlaceholder": "搜索设置项…",
"searchEmpty": "无匹配项",
"restoreDefaults": "恢复默认",
"restoredDefaults": "已恢复默认设置",
"refererProtection": "防盗链设置",
"defaultCopyFormatHint": "设置上传后自动复制的链接格式。",
"systemVersionHint": "当前运行的 PicHost 版本。",
"badgeEnabled": "已启用",
"domainSeparationProxyTitle": "需要将配置的域名解析到本机",
"domainSeparationProxyBody": "请将后台域名和已配置的图片、视频、文件域名解析到本机,并通过 Nginx、Caddy、NPM 等反向代理到本机的 6892 端口。",
"siteBaseUrlRoleHint": "后台与 API 使用该域名;资源开关关闭时,图片、视频、文件也使用它。",
"imageBaseUrlRoleHint": "打开后图片单独走该域名;关闭时使用网站域名。",
"resourceDomainSection": "资源域名",
"videoBaseUrl": "视频域名",
"videoBaseUrlRoleHint": "打开后视频、HLS 和缩略图单独走该域名;关闭时使用网站域名。",
"videoBaseUrlPlaceholder": "https://video.example.com",
"videoBaseUrlActive": "当前生效:{url}",
"fileBaseUrl": "文件域名",
"fileBaseUrlRoleHint": "打开后文件直链和下载单独走该域名;关闭时使用网站域名。",
"fileBaseUrlPlaceholder": "https://file.example.com",
"fileBaseUrlActive": "当前生效:{url}",
"fallbackImageDomain": "沿用图片域名",
"navBasic": "基础设置",
"navDomains": "域名与路径",
"navAccess": "访问控制",
"navTags": "标签管理",
"navPreferences": "偏好设置",
"navLogs": "操作日志",
"pageSubtitleTags": "创建、重命名、合并或删除标签",
"systemVersion": "系统版本",
"checkUpdate": "检查更新",
"saveSettings": "保存设置",
"subtitle": "保存后写入数据库;环境变量优先级更高",
"featureToggles": "功能开关",
"featureTogglesHint": "控制注册与系统行为",
"pathAndLink": "路径与链接",
"pathAndLinkHint": "控制图片直链格式与上传目录结构",
"domainSeparationSection": "域名分离",
"allowRegistration": "开放用户注册",
"allowRegistrationHint": "允许新用户自行注册账号。",
"accessControl": "访问控制",
"refererHint": "通过 Referer 防盗链,限制哪些网站可以引用你的图片。",
"refererDomainsLabel": "允许引用的域名",
"refererTip": "多个域名请使用英文逗号 (,) 分隔,不支持通配符",
"refererExamplesTitle": "推荐示例",
"refererExamplesSample": "example.com, static.example.com",
"refererScenarioTitle": "常见场景",
"refererScenarioDesc": "允许主站与静态站点引用图片",
"refererScenario1": "个人博客引用本站图片",
"refererScenario2": "企业官网与静态资源站",
"refererScenario3": "开发环境本地调试",
"refererScenario4": "留空表示不限制任何来源",
"refererEnabled": "已开启",
"refererUnrestricted": "未限制",
"loginVerification": "登录验证",
"loginVerificationHint": "登录与注册时使用的人机验证方式,三选一",
"fileBed": "文件床",
"fileBedHint": "文件直链的访问方式,切换后立即生效",
"fileBedPublic": "公开访问",
"fileBedPublicHint": "任何人拿到链接都能下载,适合分享。",
"fileBedToken": "Token 访问",
"fileBedTokenHint": "下载需要携带 Token(链接后追加 ?token=),适合私密文件。",
"loginVerificationSlider": "本地滑块",
"loginVerificationSliderHint": "内置滑块验证,无需第三方服务。",
"loginVerificationTurnstile": "Cloudflare Turnstile",
"loginVerificationTurnstileHint": "使用 Cloudflare 提供的人机验证服务,安全可靠。",
"loginVerificationCap": "Cap POW",
"loginVerificationCapHint": "使用基于工作量证明的人机验证,适合无第三方服务的环境。",
"turnstileSiteKey": "Turnstile Site Key",
"turnstileSiteKeyPlaceholder": "0x4AAAAAAA…",
"turnstileSecretKey": "Turnstile Secret Key",
"turnstileSecretKeyPlaceholder": "0x4AAAAAAA…",
"capApiEndpoint": "Cap API Endpoint",
"capApiEndpointPlaceholder": "https://cap.example.com/your-site-key/",
"capSecretKey": "Cap Secret Key",
"capSecretKeyPlaceholder": "在 Cap Dashboard 创建的 Secret Key",
"systemInfo": "系统信息",
"systemInfoHint": "当前系统版本与更新",
"uploadConvenience": "上传便捷功能",
"defaultCopyFormat": "默认复制格式",
"refererPlaceholder": "example.com, www.example.com",
"domainSettings": "域名配置",
"domainSeparationActive": "已启用域名分离:后台、图片、视频、文件可使用独立域名",
"siteBaseUrl": "网站域名",
"siteBaseUrlHint": "末尾不加 /;管理后台、API 上传地址",
"siteBaseUrlPlaceholder": "https://admin.example.com",
"siteBaseUrlActive": "当前生效:{url}",
"imageBaseUrl": "图片域名",
"imageBaseUrlHint": "末尾不加 /;生成图片直链地址",
"imageBaseUrlSingleHint": "末尾不加 /;留空则使用当前访问域名;单域名部署无需填写网站域名",
"imageBaseUrlPlaceholder": "https://pic.example.com",
"imageBaseUrlActive": "当前生效:{url}",
"resourceBaseUrl": "域名",
"resourceBaseUrlSingleHint": "末尾不加 /;留空则使用当前访问域名。关闭域名分离时,该域名统一用于图片、视频和文件资源。",
"resourceBaseUrlPlaceholder": "https://cdn.example.com",
"resourceBaseUrlActive": "当前资源域名:{url}",
"runtimeDetected": "检测到当前访问:{url}(不会自动写入配置)",
"fillDetectedOrigin": "填入检测地址",
"hostRoleUnknown": "当前访问 Host 与配置不一致,可能存在反代绕过风险",
"disableDomainSeparationTitle": "关闭域名分离",
"disableDomainSeparationDesc": "将清除后台域名配置,并保留图片、视频、文件域名。确定继续?",
"disableDomainSeparationConfirm": "确认关闭",
"domainSeparationRequired": "启用域名分离时需同时填写后台域名与图片域名",
"hideFolderInUrl": "使用简短图片链接",
"hideFolderInUrlHint": "启用后,生成的图片链接将使用简短格式(如 /abc123.png),不包含年月目录。",
"storageUseDatePath": "上传目录按年/月分组",
"storageUseDatePathHint": "启用后,上传的图片将按 年/月 自动分组存储,如 2024/01/xxx.png,便于管理。",
"badgeEnv": ".env",
"badgeSaved": "已保存",
"badgeDefault": "默认",
"badgeUnset": "未设置",
"badgeOptional": "可选",
"tokenEnv": "环境变量",
"tokenDb": "后台生成",
"tokenNone": "未配置",
"apiTokenLine": "来源:{source}",
"viewReleases": "查看发行版",
"updateAvailable": "有新版本 {version}",
"upToDate": "已是最新版本",
"checkUpdateFailed": "检查更新失败,请稍后重试",
"unsavedChanges": "有未保存的更改",
"manageToken": "管理 Token",
"envOverride": "该项已由环境变量覆盖,无法在后台修改",
"saved": "服务器配置已保存",
"saveFailed": "保存服务器配置失败",
"loadFailed": "加载设置失败",
"uploadLimits": "上传限制",
"uploadLimitsHint": "全站上传策略与个人上传便捷选项,保存后立即生效。",
"imageProcessingHint": "全站格式转换与个人端压缩、清理策略。",
"videoProcessingHint": "全站视频转码资源与个人视频上传偏好,保存后与视频上传页同步。",
"serverPolicy": "全站策略",
"personalPreference": "个人偏好",
"uploadRateGroup": "上传限流",
"minutesUnit": "分钟",
"uploadMaxFileSize": "单文件大小上限",
"uploadMaxFileSizeHint": "超过此大小的图片将被拒绝上传(1–100 MB)。",
"uploadImageMaxFileSize": "图片大小上限",
"uploadImageMaxFileSizeHint": "超过此大小的图片将被拒绝上传,最大 100 MB。0 MB 表示禁止上传。",
"uploadVideoMaxFileSize": "视频大小上限",
"uploadVideoMaxFileSizeHint": "超过此大小的视频将被拒绝上传,最大 2048 MB。0 MB 表示禁止上传。",
"uploadFileMaxFileSize": "文件大小上限",
"uploadFileMaxFileSizeHint": "超过此大小的普通文件将被拒绝上传,最大 1024 MB。0 MB 表示禁止上传。",
"allowedMimeTypes": "允许的图片格式",
"allowedMimeTypesHint": "至少保留一种格式;服务端会校验文件签名,不仅看扩展名。",
"allowedVideoExtensions": "允许的视频格式",
"allowedVideoExtensionsHint": "至少保留一种视频容器格式;视频上传页和服务端都会按此列表校验。",
"forbiddenFileExtensions": "不允许的文件格式",
"forbiddenFileExtensionsHint": "文件上传页和服务端都会拒绝这些扩展名,可额外添加自定义后缀。",
"forbiddenFileExtensionsCustomPlaceholder": "添加后缀,如 exe, php",
"forbiddenFileExtensionsAdd": "添加",
"preserveOriginalUpload": "保留原图(关闭 WebP 转换)",
"preserveOriginalUploadHint": "开启后上传的 JPEG/PNG/GIF 不再转为 WebP,按原格式存储;关闭时可节省空间。",
"rateLimits": "限流",
"rateLimitsHint": "防止恶意刷上传或暴力登录。",
"loginRateLimitsHint": "防止登录接口被暴力尝试。",
"uploadRateFootnote": "窗口期内超过次数将返回 429;带 Token 的上传单独计数。",
"loginRateFootnote": "窗口期内超过次数将返回 429。",
"uploadRateIpMax": "上传限流(每 IP)",
"uploadRateTokenMax": "上传限流(每 Token)",
"uploadRateWindowMinutes": "上传限流窗口(分钟)",
"loginRateMax": "登录限流(每 IP)",
"loginRateWindowMinutes": "登录限流窗口(分钟)",
"rateLimitsFootnote": "窗口期内超过次数将返回 429。带 Token 的上传单独计数。"
},
"storage": {
"title": "存储设置",
"subtitle": "新上传写入活动后端;已有图片仍按原后端读取",
"activeBackend": "活动后端",
"backendLocal": "本地磁盘",
"backendCloud": "云存储",
"backendS3": "云存储",
"switchHint": "切换仅影响新上传,已有图片不受影响",
"provider": "预设",
"providerR2": "Cloudflare R2",
"providerCos": "腾讯云 COS",
"providerOss": "阿里云 OSS",
"providerAws": "AWS S3",
"providerCustom": "自定义",
"providerTelegram": "Telegram 频道",
"backendTelegram": "Telegram",
"telegramChatId": "Chat ID",
"telegramChatIdPlaceholder": "-1001234567890",
"telegramChatIdHint": "频道或群组 ID;Bot 须为管理员。私有频道可用。",
"telegramBotToken": "Bot Token",
"telegramApiProxy": "API 代理(可选)",
"telegramApiProxyPlaceholder": "http://127.0.0.1:7890",
"telegramApiProxyHint": "PicHost 访问 Telegram API 时使用的 HTTP/HTTPS 代理;留空为直连。",
"telegramServingHint": "图片直链固定经 PicHost 代理,不会跳转到 Telegram。",
"telegramQuotaHint": "Telegram 单文件实际可读上限约 20MB;频道约 20 条/分钟。",
"telegramSecretsRequired": "请填写 Bot Token 与 Chat ID",
"endpoint": "Endpoint",
"region": "Region",
"bucket": "Bucket",
"prefix": "对象前缀(可选)",
"prefixPlaceholder": "例如 pichost",
"forcePathStyle": "强制 Path-Style 访问",
"accessKey": "Access Key",
"secretKey": "Secret Key",
"servingMode": "访问方式",
"servingProxy": "代理(PicHost 同源)",
"servingPublic": "公开 URL(302 到 CDN)",
"servingHint": "公开模式下 Referer 防盗链需在 CDN/桶策略侧配置",
"publicUrl": "公开访问 URL",
"publicUrlPlaceholder": "https://cdn.example.com",
"testConnection": "测试连接",
"testSuccess": "连接成功",
"testFailed": "连接失败",
"saved": "存储配置已保存",
"saveFailed": "保存存储配置失败",
"loadFailed": "加载存储配置失败",
"envOverride": "存储配置已由环境变量覆盖,无法在后台修改",
"pageTitle": "存储管理",
"pageSubtitle": "管理多个存储后端,新上传写入默认后端",
"addBackend": "添加存储",
"editBackend": "编辑存储",
"formCreateHint": "配置云存储连接,保存后可设为默认写入目标",
"formEditHint": "修改连接信息;留空密钥则保持原值",
"sectionBasic": "基本信息",
"sectionConnection": "连接配置",
"sectionCredentials": "访问凭证",
"sectionAccess": "访问方式",
"sectionQuota": "容量配额",
"advancedOptions": "高级选项",
"servingProxyShort": "代理",
"servingPublicShort": "公开",
"backendName": "显示名称",
"badgeDefault": "默认",
"badgeDefaultStorage": "默认存储",
"badgeDisabled": "已停用",
"badgeEnabled": "已启用",
"overviewTitle": "存储总览",
"overviewSubtitle": "所有存储后端使用情况",
"overviewTotal": "总容量",
"overviewUsed": "已用容量",
"overviewFree": "剩余容量",
"overviewUsageRate": "总体使用率",
"overviewQuota": "总配额",
"overviewInstances": "存储实例",
"overviewActive": "活跃后台",
"capacityDistribution": "容量分布",
"backendType": "类型",
"storageId": "存储标识",
"storageType": "存储类型",
"badgeLocal": "本地",
"defaultStorageTip": "新上传的所有图片、视频、文件将默认保存到「{name}」。可点击其他后端的「设为默认」进行修改。",
"clearStorage": "清空存储",
"exportTitle": "导出数据库表",
"exportDescription": "把数据库中的每张表导出为 CSV,打包成 tar.gz 压缩包下载。密码、令牌等敏感字段会脱敏。",
"exportCsv": "导出 CSV 压缩包",
"exportCsvStarted": "导出完成,开始下载",
"exportCsvFailed": "导出失败",
"clearStorageTitle": "清空我的存储",
"clearStorageDescription": "永久删除当前账号上传的所有图片、视频、文件和缓存,不影响其他用户的数据。",
"clearStorageWarning": "高危风险:此操作会清空存储中的所有文件和缓存,无法撤销!",
"clearStorageScope": "只会清除当前登录用户的数据和文件。其他用户的数据、账户、存储配置和全站备份不会被删除。",
"clearStorageFinalTitle": "最终确认",
"clearStorageInstruction": "请输入“我已确认”以继续。操作开始后无法取消或撤销。",
"clearStoragePlaceholder": "我已确认",
"clearStoragePhrase": "我已确认",
"clearStorageConfirm": "永久清空",
"clearStorageSuccess": "已清空 {files} 个文件和 {cache} 个临时缓存,存储空间已释放",
"clearStoragePartial": "{failed}/{total} 个文件清理失败,请重试",
"clearStorageFailed": "清空存储失败,请稍后重试",
"supportedTitle": "支持的存储后端",
"supportedSubtitle": "PicHost 支持多种存储后端,满足不同场景需求",
"supportedLocalDesc": "适合小型部署和个人使用",
"supportedR2Desc": "高可用、低成本的对象存储",
"supportedS3Title": "S3 兼容",
"supportedS3Desc": "兼容 Amazon S3 协议的存储服务",
"supportedTelegramDesc": "用 Telegram 频道/群组存图,适合轻量与无限容量场景",
"footerTip": "默认存储后端将自动接收所有新上传的图片、视频和文件",
"statTotal": "总量",
"statUsed": "已用",
"statFree": "剩余",
"statFileCount": "文件数量",
"statQuota": "配额",
"usageRate": "使用率",
"indexImages": "PicHost 图片 {count} 张 · {size}",
"setDefault": "设为默认",
"actionSetDefault": "设默认",
"actionTest": "测试",
"disable": "停用",
"enable": "启用",
"usageCount": "{count} 张图片",
"quotaTotal": "套餐总量",
"quotaPlaceholder": "例如 10",
"quotaHint": "填写云存储套餐总量;已用按 PicHost 图片索引自动统计",
"quotaRequired": "请填写有效的套餐总量",
"notConfigured": "未配置",
"created": "存储后端已添加",
"deleted": "存储后端已删除",
"deleteFailed": "删除失败",
"deleteBlockedImages": "该后端仍有图片,请先迁移或删除图片后再删除",
"defaultUpdated": "默认后端已更新",
"deleteConfirmTitle": "删除存储",
"deleteConfirmBody": "确定删除「{name}」?此操作不可撤销。",
"secretsRequired": "新建存储需填写 Access Key 与 Secret Key",
"manageStorage": "管理对象存储",
"manageStorageHint": "配置 R2 / S3 / COS 等多后端与直链策略",
"backup": {
"sectionTitle": "备份与迁移",
"sectionSubtitle": "整站备份恢复与跨后端文件迁移",
"siteTitle": "站点备份与恢复",
"siteSubtitle": "用于换机、灾备与整站恢复",
"siteFooterHint": "备份包含数据库与全部文件,不包含 secret_json 明文。",
"exportTitle": "创建站点备份",
"exportSubtitle": "打包数据库与全部文件为 .phost.tar.gz",
"exportAction": "开始备份",
"exportStarted": "备份任务已开始",
"exportFailed": "创建备份失败",
"exportPathHint": "导出文件保存在 data/backups/",
"exportIncludesTitle": "备份包含",
"exportIncludesDb": "数据库快照(pichost.db)",
"exportIncludesImages": "全部图片、视频和文件({count} 个)",
"exportExcludesSecrets": "不含云存储 secret.json 明文",
"exportConcurrencyHint": "同时仅可运行一个备份或迁移任务",
"estimateLoading": "正在估算体积…",
"estimateImageCountLabel": "文件总数",
"estimatePackageSizeLabel": "预计备份包",
"estimateDatabaseSnapshotLabel": "数据库快照",
"estimateStoragePathLabel": "保存位置",
"estimateStoragePathValue": "data/backups/",
"estimateImages": "文件 {count} 个 · {size}",
"estimateDatabase": "数据库约 {size}",
"estimateTotal": "合计约 {size}",
"restoreTitle": "从备份恢复",
"restoreSubtitle": "上传或选择服务器上的 .phost.tar.gz,预检后确认恢复",
"restoreUpload": "选择备份文件",
"restoreUploadLabel": "本地上传",
"restoreUploadHint": "点击选择 .phost.tar.gz 备份包",
"restoreUploadAction": "上传备份恢复",
"restoreServerAction": "选择服务器备份",
"restoreServerPackages": "服务器已有备份",
"restoreServerSelectPlaceholder": "选择备份包",
"restorePreview": "预检",
"restorePreviewConfirm": "预检并确认",
"restoreConfirm": "确认恢复",
"restoreConfirmTitle": "确认恢复站点",
"restoreConfirmSource": "来源:{name}",
"restoreOverwriteWarning": "覆盖模式将替换冲突文件与数据库,请确认已做好当前站点备份",
"restoreSelectRequired": "请选择或上传备份文件",
"restoreStarted": "恢复任务已开始",
"restoreFailed": "恢复失败",
"conflictMode": "冲突策略",
"conflictSkip": "跳过已存在文件",
"conflictOverwrite": "覆盖已存在文件与数据库",
"syncTitle": "跨后端同步",
"siteSyncTitle": "两站点同步",
"siteSyncSubtitle": "将当前站点的媒体索引、图片、视频、文件、缩略图、HLS 分片和标签同步到另一台 PicHost。目标站点需已有同名用户。",
"siteSyncPushSubtitle": "将当前站点的媒体索引、图片、视频、文件、缩略图、HLS 分片和标签推送到另一台 PicHost。目标站点需已有同名用户。",
"siteSyncPullSubtitle": "从另一台 PicHost 拉取媒体索引、图片、视频、文件、缩略图、HLS 分片和标签。当前站点需已有同名用户。",
"siteSyncTarget": "目标站点地址",
"siteSyncSource": "来源站点地址",
"siteSyncToken": "目标站点管理员 API Token",
"siteSyncSourceToken": "来源站点管理员 API Token",
"siteSyncTokenPlaceholder": "输入目标站点管理员 Token",
"siteSyncSourceTokenPlaceholder": "输入来源站点管理员 Token",
"siteSyncStart": "开始同步",
"siteSyncStartPush": "开始推送",
"siteSyncStartPull": "开始拉取",
"siteSyncDirection": "同步策略:",
"siteSyncPush": "推送到目标站点",
"siteSyncPull": "从目标站点拉取",
"siteSyncConflict": "冲突策略:",
"siteSyncContent": "同步内容:",
"siteSyncScopeAll": "全站",
"siteSyncScopeImage": "仅图库",
"siteSyncScopeVideo": "仅视频库",
"siteSyncScopeFile": "仅文件库",
"syncSelectedTitle": "同步选中资源",
"syncSelectedSubtitle": "将选中的 {n} 项推送到另一台 PicHost",
"syncSelectedStart": "开始同步",
"syncSelectedAction": "同步给目标站点",
"siteSyncSkip": "跳过已存在",
"siteSyncOverwrite": "覆盖已存在",
"siteSyncResume": "继续上次同步",
"siteSyncAbandon": "放弃并清理残留",
"siteSyncAbandonConfirm": "确定放弃这次同步吗?将删除本次同步新建但尚未归入媒体记录的残留对象。",
"siteSyncAbandonWithoutTokenConfirm": "未填写目标站 Token。确定只放弃任务吗?目标站残留将标记为待清理,之后可由目标站自动清理。",
"siteSyncAbandoned": "同步已放弃,残留对象已清理",
"siteSyncAbandonedPendingCleanup": "同步已放弃,残留待清理",
"siteSyncScanProgress": "媒体扫描进度",
"siteSyncFileProgress": "已同步文件数量",
"siteSyncStarted": "两站点同步任务已开始",
"siteSyncFailed": "启动两站点同步失败",
"syncMigrateTitle": "跨后端迁移",
"syncMigrateSubtitle": "在已配置后端之间迁移文件",
"syncSubtitle": "在已配置的后端之间拷贝文件并更新索引",
"syncFrom": "源后端",
"syncTo": "目标后端",
"syncPendingImages": "待迁移文件",
"syncPendingSize": "预计体积",
"syncIncludesTitle": "同步说明",
"syncIncludesCopy": "拷贝源端图片、视频和文件到目标后端",
"syncIncludesIndex": "更新索引中的 storage_backend_id",
"syncIncludesConfig": "不修改站点配置与其它后端数据",
"syncDryRun": "仅预览 Dry Run",
"syncSetDefaultAfter": "迁移后设为默认后端",
"syncStartMigrate": "开始迁移",
"syncPreviewOnly": "预览",
"syncFooterHint": "仅迁移文件与索引,不影响站点配置。",
"syncDeleteSource": "同步后删除源端文件",
"syncSetDefault": "同步后将目标设为默认",
"syncPreview": "预检并开始",
"syncConfirm": "开始同步",
"syncConfirmTitle": "确认跨后端同步",
"syncDeleteWarning": "将删除源后端上的文件,此操作不可撤销",
"syncSelectRequired": "请选择源与目标后端",
"syncSameBackend": "源与目标不能相同",
"syncStarted": "同步任务已开始",
"syncFailed": "同步失败",
"previewFailed": "预检失败",
"previewImages": "文件数量",
"previewNew": "新增文件",
"previewConflicts": "冲突文件",
"previewCreated": "备份时间",
"previewSize": "数据量",
"jobsTitle": "最近任务",
"jobsSubtitle": "查看备份、恢复与迁移进度",
"jobsEmpty": "暂无备份或迁移任务",
"jobsEmptyHint": "导出、恢复或同步开始后,进度会显示在这里",
"jobsHideAll": "全部清除",
"jobsRestoreAll": "恢复全部",
"hiddenJobsShow": "显示隐藏记录",
"hiddenJobsHide": "只显示未关闭",
"jobHide": "关闭显示(不删除记录)",
"jobUnhide": "恢复显示",
"jobHidden": "任务已关闭显示,记录仍保留",
"jobUnhidden": "任务已恢复显示",
"jobsHiddenAll": "已关闭全部历史任务的显示,记录仍保留",
"jobsUnhiddenAll": "已恢复显示全部历史任务",
"hideFailed": "更新任务显示状态失败",
"jobsUnit": "条任务",
"colTask": "任务",
"colType": "类型",
"colStatus": "状态",
"colProgress": "进度",
"progressUnitMedia": "媒体记录",
"progressUnitObjects": "存储对象",
"colMessage": "说明",
"colCreated": "创建时间",
"colUpdated": "更新时间",
"colActions": "操作",
"jobTypeExport": "站点导出",
"jobTypeRestore": "站点恢复",
"jobTypeSync": "跨后端同步",
"jobTypeSiteSync": "两站点同步",
"statusPending": "等待中",
"statusRunning": "进行中",
"statusDone": "已完成",
"statusFailed": "失败",
"jobFailedUnknown": "未知错误",
"download": "下载",
"jobView": "查看",
"retry": "重试",
"retryStarted": "重试任务已开始",
"retryFailed": "重试失败",
"jobRunning": "已有任务正在运行,请稍后再试",
"migrateIn": "迁入",
"migrateOut": "迁出",
"migrateInHint": "从默认后端拷贝文件到此后端",
"migrateOutHint": "将文件从此后端迁出",
"syncDraftApplied": "已填入同步表单,请确认后开始",
"syncNeedTwoBackends": "至少需要两个存储后端才能同步",
"selectBackend": "选择后端",
"syncConfirmRoute": "{from} → {to}",
"cancel": "取消",
"cancelDone": "任务已取消",
"cancelFailed": "取消任务失败"
}
},
"stats": {
"title": "图库",
"subtitle": "浏览、搜索与管理已上传图片",
"uploadToday": "今日上传",
"uploadMonth": "本月上传",
"uploadTotal": "累计上传",
"storedCount": "当前存储",
"totalFiles": "总文件数",
"totalOccupied": "共占用 {size}",
"storageUsage": "存储使用率",
"noQuota": "未配置容量上限",
"vsYesterday": "较昨日",
"vsLastMonth": "较上月",
"trendUp": "↑ {p}%",
"trendDown": "↓ {p}%",
"trendFlat": "持平",
"deleteToday": "今日删除",
"deleteMonth": "本月删除",
"deleteTotal": "累计删除",
"userCount": "注册用户数量",
"uploadBytes": "累计上传体积",
"sourceDistribution": "上传来源分布",
"sourceWeb": "网页",
"sourceApi": "API",
"tagWeb": "网页",
"tagApi": "API",
"noData": "暂无数据",
"gallery": "图库记录",
"imagesSection": "全部图片",
"filterStorageAll": "全部存储",
"storage": "存储",
"searchPlaceholder": "搜索文件名",
"searchPlaceholderWide": "搜索文件名、标签或链接",
"filterType": "图片类型",
"filterTypeAll": "全部类型",
"filterSource": "上传来源",
"filterSourceAll": "全部来源",
"sourceWeb": "网页上传",
"sourceApi": "API 上传",
"resetFilters": "重置",
"batchActions": "批量操作",
"selectedItems": "已选择 {n} 项",
"colFilename": "文件名",
"colPreview": "预览",
"colSize": "大小",
"colType": "类型",
"colSource": "来源",
"colUploadedAt": "上传时间",
"colActions": "操作",
"previewBadge": "图片",
"clear": "清空",
"selected": "已选 {n}",
"batchDelete": "批量删除",
"batchSelect": "批量选择",
"viewMode": "视图模式",
"viewGrid": "网格视图",
"viewList": "列表视图",
"selectAll": "全选",
"invertSelection": "反选",
"clearSelection": "取消选择",
"scrollTop": "回到顶部",
"loadFailed": "加载统计失败",
"selectFirst": "请先选择图片",
"deleted": "已删除 {n} 张图片",
"deletePartialFail": "{n} 张图片删除失败",
"deleteFailed": "删除失败",
"deletedSingle": "已删除",
"counting": "统计中…",
"summarySearch": "搜索「{q}」· 共 {total} 张",
"summaryTotal": "共 {total} 张",
"summarySearchStorage": "{storage} · 搜索「{q}」· 共 {total} 张",
"summaryTotalStorage": "{storage} · 共 {total} 张"
},
"logs": {
"pageTitle": "操作日志",
"pageSubtitle": "查看您的操作记录",
"pageSubtitleAdmin": "查看所有用户的操作记录",
"loadFailed": "加载操作日志失败",
"empty": "暂无操作记录",
"entriesUnit": "条记录",
"filterActionAll": "全部操作",
"filterSourceAll": "全部来源",
"filterUserAll": "全部用户",
"searchPlaceholder": "搜索文件名、路径或 IP",
"dateFrom": "开始日期",
"dateTo": "结束日期",
"dateRangeSeparator": "~",
"summaryAll": "全部 · 共 {total} 条记录,上传 {upload} 条,删除 {delete} 条",
"actionUpload": "上传",
"actionDelete": "删除",
"actionLogin": "登录",
"actionEdit": "编辑",
"actionSettings": "设置",
"actionTags": "标签",
"sourceWeb": "网页",
"sourceApi": "API",
"sourceAdmin": "管理后台",
"colTime": "时间",
"colUser": "用户",
"colStorage": "存储",
"colAction": "操作",
"colSource": "来源",
"colFile": "文件名",
"colFolder": "目录",
"colSize": "大小",
"colKey": "路径",
"colIp": "IP 地址",
"colResult": "操作结果",
"resultSuccess": "成功",
"resultFailure": "失败"
},
"image": {
"empty": "暂无图片",
"previewFailed": "预览失败",
"openPreview": "查看大图",
"previewTitle": "图片详情",
"previewSubtitle": "查看图片信息与链接",
"previewOriginalName": "文件名",
"previewUploadedAt": "上传时间",
"previewSize": "大小",
"previewSizeDetail": "{size}({bytes} 字节)",
"previewContentType": "文件类型",
"previewOwner": "上传用户",
"previewStorage": "存储位置",
"previewKey": "图片路径",
"previewExtension": "扩展名",
"previewDimensions": "尺寸",
"previewDimensionsUnknown": "加载中…",
"previewUploadSource": "上传方式",
"uploadSourceUnknown": "未知",
"previewLinks": "链接与嵌入",
"previewCopyLink": "复制链接",
"previewDownload": "下载原图",
"previewOpen": "新窗口打开",
"previewClose": "关闭",
"uploader": "上传者:{name}",
"storageBackend": "存储:{name}"
},
"delete": {
"confirmDescVideo": "确定要删除选中的 {count} 个视频吗?此操作不可恢复。",
"confirmDescFile": "确定要删除选中的 {count} 个文件吗?此操作不可恢复。",
"confirmTitle": "确认删除",
"confirmDesc": "确定要删除选中的 {count} 张图片吗?此操作不可恢复。",
"confirm": "确认删除"
},
"pagination": {
"totalCount": "共 {total} {unit}",
"pageStatus": "第 {page} / {totalPages} 页",
"perPage": "{size} 条/页",
"pageSize": "每页条数",
"pageNumber": "第 {page} 页",
"pageOf": "第 {page} / {totalPages} 页 · 共 {total} {unit}",
"totalOnly": "共 {total} {unit}",
"first": "第一页",
"prev": "上一页",
"next": "下一页",
"last": "最后一页",
"goTo": "跳转",
"goToPrefix": "前往",
"goToSuffix": "页",
"pagePlaceholder": "页码"
},
"api": {
"tokenTitle": "API Token",
"envOverrideTitle": "Token 由环境变量覆盖",
"envOverrideDesc": "修改 API_UPLOAD_TOKEN 后需重启服务;后台无法重新生成。",
"personalTitle": "个人 API Token",
"personalDesc": "此 Token 仅用于您自己的脚本上传,上传的图片、视频或文件归属您的账号。",
"notConfiguredTitle": "尚未配置 Token",
"notConfiguredDesc": "首次打开会自动创建 Token,或点击「重新生成」。",
"regenerate": "重新生成",
"tokenSourceEnv": "来源:环境变量 API_UPLOAD_TOKEN",
"tokenSourceDb": "来源:后台生成(可重新生成)",
"tokenSourceNone": "来源:未配置",
"tokenHeader": "请求头:",
"tokenInvalidate": "重新生成后旧 Token 立即失效",
"docsTitle": "API 文档",
"curlExample": "cURL 示例",
"loadFailed": "加载 API 设置失败",
"regenerateEnvBlocked": "环境变量已配置 Token,无法在后台重新生成",
"regenerateFailed": "重新生成 Token 失败",
"confirmRegenerateTitle": "确认重新生成 Token?",
"confirmRegenerateDesc": "旧 Token 将立即失效,使用旧 Token 的脚本与自动化任务将无法继续调用接口,直到你更新为新 Token。",
"confirmRegenerate": "确认重新生成",
"newTokenTitle": "新 Token 已生成",
"newTokenDesc": "请立即复制保存。关闭弹窗后仍可在上方输入框复制,但请尽快更新到你的脚本配置中。",
"copyToken": "复制 Token",
"saved": "我已保存",
"searchPlaceholder": "搜索接口…",
"showToken": "显示",
"hideToken": "隐藏",
"helpText": "需要帮助?查看完整 API 文档",
"helpTitle": "需要帮助?",
"helpSubtitle": "查看完整 API 文档",
"expand": "展开",
"collapse": "收起",
"viewDocs": "查看文档",
"requestParams": "请求参数",
"paramName": "参数名",
"paramType": "类型",
"paramLocation": "位置",
"paramRequired": "必填",
"paramDescription": "说明",
"required": "是",
"optional": "否",
"requestExample": "请求示例",
"responseExample": "响应示例",
"categories": {
"image": "图片接口",
"video": "视频接口",
"file": "文件接口",
"extension": "插件接口",
"system": "系统通用"
},
"params": {
"upload": {
"image": "上传图片,主字段",
"file": "兼容字段,单图上传",
"files": "兼容字段,多图上传",
"token": "Twikoo 协议兼容,表单 token",
"tagNames": "可选,JSON 数组或逗号分隔;名称不存在则创建,存在则复用"
},
"list": {
"limit": "每页条数,默认 20,最大 100",
"page": "页码,从 1 开始",
"tagIds": "按标签筛选,逗号分隔 ID;与 untagged、tagMode 配合",
"tagMode": "多标签时 or(默认)或 and",
"untagged": "设为 1 仅显示无标签图片"
},
"search": {
"q": "搜索关键词,必填"
},
"delete": {
"key": "图片存储路径,如 images/2026/08/xxx.webp"
},
"batchDelete": {
"keys": "要删除的图片 key 数组"
},
"videoUpload": {
"video": "上传视频主字段,单文件最大 500 MB",
"file": "兼容字段,可代替 video",
"files": "兼容字段,可一次上传多个视频",
"transcode": "设为 1 后异步转码为 HLS;不设置则只保留原视频并生成缩略图",
"transcodePreset": "可选转码档位:copy(直接封装)、veryfast(速度)、medium(平衡)、slow(质量)、compress(目标码率压缩)",
"transcodeBitratePercent": "仅 compress 档使用,目标码率为源码率的 10–100% 整数;省略时使用服务端当前设置",
"token": "可选,API Token 也可通过 Auth-Token 请求头传递"
},
"fileUpload": {
"file": "上传文件主字段,单文件最大 100 MB;禁止 HTML / HTM / SVG",
"files": "兼容字段,可一次上传多个文件",
"token": "可选,API Token 也可通过 Auth-Token 请求头传递"
},
"mediaList": {
"kindVideo": "固定为 video,获取视频列表",
"kindFile": "固定为 file,获取文件列表",
"page": "页码,从 1 开始",
"limit": "每页条数,默认 20,最大 100",
"q": "按文件名或路径关键词搜索",
"processing": "视频专用;设为 1 时只返回排队中或转码中的视频",
"uploadSource": "上传来源:web 或 api",
"tagIds": "按标签筛选,逗号分隔标签 ID",
"tagMode": "多标签筛选时使用 or 或 and,默认 or",
"untagged": "设为 1 时仅返回未标记内容"
},
"mediaSearch": {
"q": "搜索关键词,匹配文件名或存储路径;不能为空"
},
"videoDelete": {
"key": "视频存储路径;删除时同时清理缩略图与 HLS 文件"
},
"videoBatchDelete": {
"keys": "要删除的视频 key 数组,单次最多 100 个;同时清理缩略图和 HLS 文件"
},
"fileDelete": {
"key": "文件存储路径,如 files/2026/10/xxx.pdf"
},
"fileBatchDelete": {
"keys": "要删除的文件 key 数组,单次最多 100 个"
},
"twikoo": {
"image": "上传图片",
"token": "API Token"
},
"backendId": "存储后端 ID,可选"
},
"debug": {
"title": "在线调试",
"headers": "Headers",
"query": "Query",
"body": "Body",
"send": "发送请求",
"response": "响应",
"selectFile": "选择文件",
"noFileSelected": "未选择任何文件",
"tokenPlaceholder": "输入 Auth-Token",
"invalidJson": "JSON 格式无效",
"sendFailed": "请求发送失败",
"networkError": "网络错误或无法连接",
"notesTitle": "响应说明",
"noteSuccess": "200 表示请求成功,返回 JSON 数据",
"noteError": "4xx / 5xx 表示请求失败,查看 error 字段",
"noteLimit": "上传限制:单次最多 10 个;视频单文件最大 500 MB,文件单文件最大 100 MB"
},
"docs": {
"upload": {
"title": "上传图片",
"desc": "上传单张或多张图片。字段 image 传图片;仍兼容 file、files。图片存入 images/ 目录。"
},
"list": {
"title": "获取图片列表",
"desc": "分页列出图库,limit 默认 20、最大 100。"
},
"search": {
"title": "搜索图片",
"desc": "按文件名或路径关键词搜索,参数 q 必填。"
},
"delete": {
"title": "删除图片",
"desc": "通过 key 删除单张图片,key 为存储路径(如 images/2026/08/xxx.webp)。"
},
"batchDelete": {
"title": "批量删除",
"desc": "一次删除多张图片,请求体为 keys 数组。"
},
"videoUpload": {
"title": "上传视频",
"desc": "上传 MP4 / WebM / MOV / MKV 等视频,单次最多 10 个、单文件最大 500 MB。上传后独立生成缩略图;transcode=1 时再异步转码为 HLS。"
},
"videoList": {
"title": "获取视频列表",
"desc": "设置 kind=video 获取视频。默认包含未转码、已完成和失败条目;processing=1 仅查看排队中或转码中的任务。"
},
"videoDelete": {
"title": "删除视频",
"desc": "通过视频 key 删除视频,同时清理缩略图和已生成的 HLS 播放列表与分片。"
},
"videoSearch": {
"title": "搜索视频",
"desc": "按文件名或存储路径搜索视频,支持分页、存储后端、上传来源和标签筛选;q 必填。"
},
"videoBatchDelete": {
"title": "批量删除视频",
"desc": "一次删除最多 100 个视频;每个视频的缩略图、HLS 播放列表与分片会一并清理。"
},
"fileUpload": {
"title": "上传文件",
"desc": "上传任意文件,单次最多 10 个、单文件最大 100 MB;禁止上传 HTML、HTM 和 SVG。"
},
"fileList": {
"title": "获取文件列表",
"desc": "设置 kind=file 分页获取文件床内容,支持搜索、存储后端、来源和标签筛选。"
},
"fileDelete": {
"title": "删除文件",
"desc": "通过文件 key 删除单个文件,操作不可恢复。"
},
"fileSearch": {
"title": "搜索文件",
"desc": "按文件名或存储路径搜索文件,设置 kind=file;支持分页、存储后端、上传来源和标签筛选。"
},
"fileBatchDelete": {
"title": "批量删除文件",
"desc": "一次删除最多 100 个文件,响应会分别返回删除成功和失败的 key。"
},
"twikoo": {
"title": "twikoo 兼容上传",
"desc": "兼容 Twikoo / EasyImage 2.0 协议,图片存入 images/ 目录;字段 image + token。"
},
"config": {
"title": "获取配置",
"desc": "获取系统公开配置,无需鉴权。"
},
"count": {
"title": "图片数量统计",
"desc": "获取当前可见范围内的图片总数。"
}
}
},
"files": {
"maxFiles": "每次最多上传 {n} 个文件",
"uploadSuccess": "已上传 {n} 个文件",
"uploadFailed": "上传失败,请稍后重试",
"fileTooLarge": "{name}:超过单文件上限 {limit} MB",
"loadFailed": "读取文件列表失败",
"copyLink": "复制直链",
"download": "下载",
"deleted": "已删除",
"deleteFailed": "删除失败",
"videoFormatBlocked": "不允许上传 {format} 视频格式",
"fileFormatBlocked": "不允许上传 {format} 文件格式"
},
"host": {
"image": "图片",
"video": "视频",
"file": "文件",
"imageFull": "个人轻量图床",
"videoFull": "个人轻量视频床",
"fileFull": "个人轻量文件床"
},
"library": {
"play": "播放",
"copyVideoLink": "复制视频链接",
"copyThumbLink": "复制缩略图链接",
"selectedCount": "已选择 {n} 项",
"selectFirst": "请先选择视频",
"clearSelection": "取消选择",
"reset": "重置",
"batchDelete": "批量删除",
"deleted": "已删除 {n} 个视频",
"fileDeleted": "已删除 {n} 个文件",
"deletePartialFail": "{n} 个视频删除失败",
"statsToday": "今日上传",
"statsMonth": "本月上传",
"statsTotal": "累计视频",
"statsBytes": "总占用",
"statsUsage": "存储使用率",
"statsSource": "上传来源分布",
"statsTotalHintVideo": "总视频数",
"statsTotalHintFile": "总文件数",
"statsTotalHintImage": "总图片数",
"statsVsYesterday": "较昨日 {value}",
"statsVsLastMonth": "较上月 {value}",
"transcodePending": "等待转码中",
"transcoding": "转码中",
"transcodeElapsed": "已耗时",
"transcodeTotal": "总耗时",
"transcodeFailed": "转码失败",
"searchPlaceholder": "搜索文件名",
"searchEmpty": "没有匹配的内容",
"clearSearch": "清除搜索",
"file": {
"title": "文件床",
"subtitle": "管理已上传的文件,复制直链或下载",
"uploadTitle": "拖拽文件到此处上传",
"uploadHint": "或点击选择文件,单次最多 10 个",
"uploadFormats": "支持任意类型(禁止 HTML / HTM / SVG),单个文件最大 {size} MB",
"uploadFormatsBlocked": "禁止 {formats};其他文件类型可上传,单个文件最大 {size} MB",
"uploadFormatsUnrestricted": "支持任意类型,单个文件最大 {size} MB",
"empty": "还没有文件,上传一个试试"
},
"video": {
"title": "视频",
"subtitle": "管理已上传的视频,复制直链或下载",
"previewTitle": "视频详情",
"previewSubtitle": "查看视频信息与链接",
"previewTranscode": "转码状态",
"previewThumbLink": "缩略图链接",
"previewKey": "视频路径",
"transcodeNone": "未转码",
"transcodeDone": "已完成(m3u8)",
"transcodeErrorFfmpegMissing": "无 FFmpeg",
"transcodeErrorPermissionDenied": "无文件权限",
"transcodeErrorUnknown": "原因未知",
"downloadMp4": "下载 MP4",
"downloadMp4Title": "下载 MP4 视频",
"downloadMp4Confirm": "将会合并视频切片到 MP4,是否继续?",
"downloadMp4Working": "正在合并视频切片,请稍候…",
"downloadMp4Failed": "视频合并失败,请稍后重试",
"uploadTitle": "拖拽视频到此处上传",
"uploadHint": "或点击选择视频文件,单次最多 10 个",
"uploadFormats": "支持 MP4 / WebM / MOV / MKV 等,单个文件最大 {size} MB",
"uploadFormatsAllowed": "支持 {formats},单个文件最大 {size} MB",
"empty": "还没有视频,上传一个试试"
}
},
"userSettings": {
"loadFailed": "加载设置失败",
"saveFailed": "保存设置失败"
}
,
"users": {
"title": "用户管理",
"subtitle": "查看账号、清除密码或注销用户",
"adminOnly": "仅管理员可访问此页面",
"roleAdmin": "管理员",
"roleUser": "普通用户",
"clearPassword": "清除密码",
"deleteUser": "注销用户",
"usageImages": "图片",
"usageVideos": "视频",
"usageFiles": "文件",
"resetPending": "待重置密码",
"passwordCleared": "已清除 {name} 的密码",
"clearFailed": "操作失败",
"deleteTitle": "注销用户?",
"deleteWarning": "将永久删除该用户当前的图片、视频、文件、标签和登录会话。管理员数据和其他用户数据不受影响,此操作不可恢复。",
"deleteConfirmLabel": "输入用户名 {name} 确认注销",
"deleteSubmit": "确认注销",
"deleteFailed": "注销失败",
"userDeleted": "已注销用户 {name}",
"adminProtected": "管理员账号不可清除密码或注销",
"loadFailed": "读取用户列表失败"
},
"reset": {
"title": "设置新密码",
"subtitle": "管理员已清除你的密码,请设置一个新密码继续使用",
"newPassword": "新密码(至少 6 位)",
"confirmPassword": "确认新密码",
"submit": "设置并登录",
"tooShort": "密码至少 6 位",
"mismatch": "两次输入的密码不一致",
"success": "密码已更新",
"failed": "设置失败,请确认管理员已清除你的密码"
},
"profile": {
"title": "个人资料",
"subtitle": "修改你的用户名",
"username": "用户名",
"usernameHint": "2–32 位字母、数字、下划线、点或短横线",
"saved": "用户名已更新",
"saveFailed": "保存失败"
}
}