{ "app": { "title": "PicHost - 个人图床", "description": "个人自用的轻量图床系统", "tagline": "个人轻量图床" }, "common": { "loadingSession": "正在验证登录状态…", "save": "保存", "cancel": "取消", "copy": "复制", "delete": "删除", "edit": "编辑", "search": "搜索", "refresh": "刷新", "back": "返回", "all": "全部", "notConfigured": "(未配置)", "countImages": "{count} 张", "itemsUnit": "条", "imagesUnit": "张", "more": "更多" }, "nav": { "api": "API", "gallery": "图库", "stats": "统计", "logs": "操作日志", "settings": "设置", "storage": "存储", "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": "验证通过", "registerFailed": "注册失败,请检查输入", "setupFailed": "初始化失败,请检查输入", "migrateFailed": "迁移失败,请检查输入", "passwordMismatch": "两次输入的密码不一致", "showPassword": "显示密码", "hidePassword": "隐藏密码", "registerSuccess": "注册成功", "errors": { "invalidUsername": "用户名需为 3–32 位字母、数字或下划线", "invalidPassword": "密码至少 8 位" } }, "setup": { "migrateTitle": "迁移到账号密码登录", "initTitle": "首次使用,创建管理员账号", "usernamePlaceholder": "3–32 位字母、数字或下划线", "passwordPlaceholder": "设置登录密码", "confirmPlaceholder": "再次输入密码", "allowRegistration": "允许其他用户注册", "domainSeparation": "启用后台与图片域名分离", "domainSeparationHint": "管理后台与 API 使用网站域名,图片直链使用独立图片域名", "domainSeparationProxyHint": "需将两个域名解析到本机,并通过 Nginx、Caddy、NPM 等反代到端口 6892", "domainSeparationProxyExample": "查看示例", "siteBaseUrl": "网站域名", "siteBaseUrlHint": "末尾不加 /;管理后台、API 上传地址", "siteBaseUrlPlaceholder": "https://admin.example.com", "imageBaseUrl": "图片域名", "imageBaseUrlHint": "末尾不加 /;生成图片直链地址", "imageBaseUrlPlaceholder": "https://pic.example.com", "domainSeparationInvalid": "请填写有效的网站域名与图片域名,且两者不能相同", "migrateSubmit": "完成迁移", "initSubmit": "创建并进入", "migrateSuccess": "账号迁移完成", "initSuccess": "初始化完成" }, "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,单张最大 10 MB,每次最多 10 张", "selectFiles": "选择图片", "settings": "上传设置", "progress": "上传进度", "statusPending": "等待", "statusUploading": "上传中", "statusSuccess": "成功", "statusError": "失败", "selectImages": "请选择图片", "maxFiles": "每次最多上传 {n} 张图片", "uploadSuccess": "成功上传 {n} 张图片", "uploadPartialFail": "{n} 张图片上传失败", "uploadFailed": "上传失败", "loginRequired": "请先登录", "sessionTitle": "本次上传", "sessionEmpty": "暂无本次上传" }, "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": "客户端预压缩质量(1–100),需开启「客户端预压缩」", "current": "当前:{n}", "qualityHigh": "高质量", "qualityMedium": "中等质量", "qualityLow": "有损压缩", "convenience": "便捷功能", "autoCopy": "上传成功自动复制链接", "autoCopyHint": "按所选格式复制到剪贴板" }, "settings": { "title": "系统设置", "pageTitle": "设置与偏好", "pageSubtitle": "管理系统配置与操作日志", "pageSubtitleBasic": "管理系统配置与上传偏好", "navBasic": "基础设置", "navDomains": "域名与路径", "navAccess": "访问控制", "navPreferences": "偏好设置", "navLogs": "操作日志", "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": "允许主站与静态站点引用图片", "refererEnabled": "已开启", "refererUnrestricted": "未限制", "systemInfo": "系统信息", "systemInfoHint": "当前系统版本与更新", "uploadConvenience": "上传便捷功能", "defaultCopyFormat": "默认复制格式", "refererPlaceholder": "example.com, www.example.com", "domainSettings": "域名配置", "domainSeparationActive": "已启用域名分离:图片域仅出图,管理域提供后台与 API", "siteBaseUrl": "网站域名", "siteBaseUrlHint": "末尾不加 /;管理后台、API 上传地址", "siteBaseUrlPlaceholder": "https://admin.example.com", "siteBaseUrlActive": "当前生效:{url}", "imageBaseUrl": "图片域名", "imageBaseUrlHint": "末尾不加 /;生成图片直链地址", "imageBaseUrlSingleHint": "末尾不加 /;留空则使用当前访问域名;单域名部署无需填写网站域名", "imageBaseUrlPlaceholder": "https://pic.example.com", "imageBaseUrlActive": "当前生效:{url}", "runtimeDetected": "检测到当前访问:{url}(不会自动写入配置)", "fillDetectedOrigin": "填入检测地址", "hostRoleUnknown": "当前访问 Host 与配置不一致,可能存在反代绕过风险", "disableDomainSeparationTitle": "关闭域名分离", "disableDomainSeparationDesc": "将清除管理域名配置,仅保留图片域名。确定继续?", "disableDomainSeparationConfirm": "确认关闭", "domainSeparationRequired": "启用域名分离时需同时填写网站域名与图片域名", "hideFolderInUrl": "使用简短图片链接", "hideFolderInUrlHint": "开启后链接仅含域名与文件名,例如 img.example.com/abc.webp;关闭后保留日期或自定义目录,例如 img.example.com/2026/08/abc.webp", "storageUseDatePath": "上传目录按年/月分组", "storageUseDatePathHint": "开启后保存为 images/2026/08/xxx.webp;关闭则为 images/xxx.webp。仅影响启用后的新上传", "badgeEnv": ".env", "badgeSaved": "已保存", "badgeDefault": "默认", "badgeUnset": "未设置", "badgeOptional": "可选", "tokenEnv": "环境变量", "tokenDb": "后台生成", "tokenNone": "未配置", "apiTokenLine": "来源:{source}", "viewReleases": "查看发行版", "updateAvailable": "有新版本 {version}", "upToDate": "当前已是最新版本", "checkUpdateFailed": "检查更新失败,请稍后重试", "unsavedChanges": "有未保存的更改", "manageToken": "管理 Token", "envOverride": "该项已由环境变量覆盖,无法在后台修改", "saved": "服务器配置已保存", "saveFailed": "保存服务器配置失败", "loadFailed": "加载设置失败" }, "storage": { "title": "存储设置", "subtitle": "新上传写入活动后端;已有图片仍按原后端读取", "activeBackend": "活动后端", "backendLocal": "本地磁盘", "backendCloud": "云存储", "backendS3": "云存储", "switchHint": "切换仅影响新上传,已有图片不受影响", "provider": "预设", "providerR2": "Cloudflare R2", "providerCos": "腾讯云 COS", "providerOss": "阿里云 OSS", "providerAws": "AWS S3", "providerCustom": "自定义", "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}」。可点击其他后端的「设为默认」进行修改。", "supportedTitle": "支持的存储后端", "supportedSubtitle": "PicHost 支持多种存储后端,满足不同场景需求", "supportedLocalDesc": "适合小型部署和个人使用", "supportedR2Desc": "高可用、低成本的对象存储", "supportedS3Title": "S3 兼容", "supportedS3Desc": "兼容 Amazon S3 协议的存储服务", "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 等多后端与直链策略" }, "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": "搜索文件名", "summaryAll": "全部 · 共 {total} 条记录,上传 {upload} 条,删除 {delete} 条", "actionUpload": "上传", "actionDelete": "删除", "sourceWeb": "网页", "sourceApi": "API", "colTime": "时间", "colUser": "用户", "colStorage": "存储", "colAction": "操作", "colSource": "来源", "colFile": "文件名", "colFolder": "目录", "colSize": "大小", "colKey": "路径" }, "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": { "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,用于下方所有接口的 Auth-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": "图片接口", "extension": "插件接口", "system": "系统通用" }, "params": { "upload": { "image": "上传图片,主字段", "file": "兼容字段,单图上传", "files": "兼容字段,多图上传", "token": "Twikoo 协议兼容,表单 token" }, "list": { "limit": "每页条数,默认 20,最大 100", "page": "页码,从 1 开始" }, "search": { "q": "搜索关键词,必填" }, "delete": { "key": "图片存储路径,如 images/2026/08/xxx.webp" }, "batchDelete": { "keys": "要删除的图片 key 数组" }, "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 张,单张最大 10 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 数组。" }, "twikoo": { "title": "twikoo 兼容上传", "desc": "兼容 Twikoo / EasyImage 2.0 协议,图片存入 images/ 目录;字段 image + token。" }, "config": { "title": "获取配置", "desc": "获取系统公开配置,无需鉴权。" }, "count": { "title": "图片数量统计", "desc": "获取当前可见范围内的图片总数。" } } }, "userSettings": { "loadFailed": "加载设置失败", "saveFailed": "保存设置失败" } }