1244 lines
56 KiB
JSON
1244 lines
56 KiB
JSON
{
|
||
"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": "存储",
|
||
"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,单张最大 10 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": "上传成功后,自动复制链接到剪贴板。"
|
||
},
|
||
"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)。",
|
||
"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": "清空存储",
|
||
"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": "冲突策略:",
|
||
"siteSyncSkip": "跳过已存在",
|
||
"siteSyncOverwrite": "覆盖已存在",
|
||
"siteSyncResume": "继续上次同步",
|
||
"siteSyncAbandon": "放弃并清理残留",
|
||
"siteSyncAbandonConfirm": "确定放弃这次同步吗?将删除本次同步新建但尚未归入媒体记录的残留对象。",
|
||
"siteSyncAbandoned": "同步已放弃,残留对象已清理",
|
||
"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": "导出、恢复或同步开始后,进度会显示在这里",
|
||
"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": "上传失败,请稍后重试",
|
||
"loadFailed": "读取文件列表失败",
|
||
"copyLink": "复制直链",
|
||
"download": "下载",
|
||
"deleted": "已删除",
|
||
"deleteFailed": "删除失败",
|
||
"videoFormatBlocked": "不允许上传 {format} 视频格式",
|
||
"fileFormatBlocked": "不允许上传 {format} 文件格式"
|
||
},
|
||
"host": {
|
||
"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": "转码中",
|
||
"transcodeFailed": "转码失败",
|
||
"searchPlaceholder": "搜索文件名",
|
||
"searchEmpty": "没有匹配的内容",
|
||
"clearSearch": "清除搜索",
|
||
"file": {
|
||
"title": "文件床",
|
||
"subtitle": "管理已上传的文件,复制直链或下载",
|
||
"uploadTitle": "拖拽文件到此处上传",
|
||
"uploadHint": "或点击选择文件,单次最多 10 个",
|
||
"uploadFormats": "支持任意类型(禁止 HTML / HTM / SVG),单个文件最大 100MB",
|
||
"uploadFormatsBlocked": "禁止 {formats};其他文件类型可上传,单个文件最大 100MB",
|
||
"uploadFormatsUnrestricted": "支持任意类型,单个文件最大 100MB",
|
||
"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 等,单个文件最大 100MB",
|
||
"uploadFormatsAllowed": "支持 {formats},单个文件最大 100MB",
|
||
"empty": "还没有视频,上传一个试试"
|
||
}
|
||
},
|
||
"userSettings": {
|
||
"loadFailed": "加载设置失败",
|
||
"saveFailed": "保存设置失败"
|
||
}
|
||
}
|