{ "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": "注销该用户并清除所有数据", "disable": "禁用", "enable": "启用", "disabled": "已禁用", "disableSuccess": "已禁用用户 {name}", "enableSuccess": "已启用用户 {name}", "statusFailed": "账号状态修改失败", "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": "保存失败" } }