ci / ci (22, ubuntu-latest) (push) Canceled after 0s
Publish Docker image / build (linux/amd64, ubuntu-latest, amd64) (push) Canceled after 0s
Publish Docker image / build (linux/arm64, ubuntu-24.04-arm, arm64) (push) Canceled after 0s
Publish Docker image / merge (push) Canceled after 0s
GitHub Release / release (push) Canceled after 0s
Add admin/image domain separation with host isolation middleware, optional hide-folder public URLs, GitHub release update check, and Lucky/Nginx deployment docs. Switch license to GPL-3.0-only.
449 lines
18 KiB
JSON
449 lines
18 KiB
JSON
{
|
||
"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",
|
||
"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": "登录失败,请检查用户名和密码",
|
||
"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 文档与 Twikoo 上传地址",
|
||
"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",
|
||
"copied": "已复制到剪贴板",
|
||
"copiedLabel": "已复制 {label}",
|
||
"copiedUrl": "已复制直链",
|
||
"copiedMarkdown": "已复制 Markdown",
|
||
"copiedHtml": "已复制 HTML",
|
||
"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": "系统设置",
|
||
"subtitle": "保存后写入数据库;环境变量优先级更高",
|
||
"uploadAccount": "上传与账号",
|
||
"defaultFolder": "默认上传目录",
|
||
"defaultFolderHint": "保存在本机浏览器,仅影响您的上传目标目录",
|
||
"allowRegistration": "开放用户注册",
|
||
"allowRegistrationHint": "允许新用户自行注册(普通用户仅可见自己的图片)",
|
||
"accessControl": "访问控制",
|
||
"refererHint": "Referer 防盗链,逗号分隔允许引用的域名,留空不限制",
|
||
"refererPlaceholder": "example.com, www.example.com",
|
||
"linkGeneration": "域名与链接",
|
||
"domainSeparationActive": "已启用域名分离:图片域仅出图,管理域提供后台与 API",
|
||
"siteBaseUrl": "网站域名",
|
||
"siteBaseUrlHint": "末尾不加 /;管理后台、API 文档与 Twikoo 上传地址",
|
||
"siteBaseUrlPlaceholder": "https://admin.example.com",
|
||
"siteBaseUrlActive": "当前生效:{url}",
|
||
"imageBaseUrl": "图片域名",
|
||
"imageBaseUrlHint": "末尾不加 /;生成图片直链地址",
|
||
"imageBaseUrlSingleHint": "末尾不加 /;留空则使用当前访问域名;单域名部署无需填写网站域名",
|
||
"imageBaseUrlPlaceholder": "https://pic.example.com",
|
||
"imageBaseUrlActive": "当前生效:{url}",
|
||
"hideFolderInUrl": "隐藏直链目录前缀",
|
||
"hideFolderInUrlHint": "开启后链接为 /2026/08/xxx.webp,不含 images/ 等目录名;旧链接仍可用",
|
||
"hideFolderConfirmTitle": "确认隐藏目录前缀?",
|
||
"hideFolderConfirmDesc": "开启后不同目录下若存在相同年月与文件名(如 images/2026/08/a.webp 与 blog/2026/08/a.webp),短链接 /2026/08/a.webp 将优先解析到 images 目录,可能访问到非预期的图片。仅单一上传目录或文件名全局唯一时建议开启。",
|
||
"hideFolderConfirmEnable": "仍要开启",
|
||
"badgeEnv": ".env",
|
||
"badgeSaved": "已保存",
|
||
"badgeDefault": "默认",
|
||
"badgeUnset": "未设置",
|
||
"tokenEnv": "环境变量",
|
||
"tokenDb": "后台生成",
|
||
"tokenNone": "未配置",
|
||
"apiTokenLine": "API Token · {source} ·",
|
||
"viewReleases": "查看发行版",
|
||
"updateAvailable": "有新版本 {version}",
|
||
"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": "默认",
|
||
"badgeDisabled": "已停用",
|
||
"badgeEnabled": "已启用",
|
||
"statTotal": "总量",
|
||
"statUsed": "已用",
|
||
"statFree": "剩余",
|
||
"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": "当前库存",
|
||
"deleteToday": "今日删除",
|
||
"deleteMonth": "本月删除",
|
||
"deleteTotal": "累计删除",
|
||
"userCount": "注册用户数量",
|
||
"uploadBytes": "累计上传体积",
|
||
"folderDistribution": "上传目录分布",
|
||
"folderUsage": "目录占用",
|
||
"noData": "暂无数据",
|
||
"folderCount": "{count} 张 · {size}",
|
||
"gallery": "图库记录",
|
||
"folder": "目录",
|
||
"filterStorageAll": "全部存储",
|
||
"storage": "存储",
|
||
"searchPlaceholder": "搜索文件名",
|
||
"clear": "清除",
|
||
"selected": "已选 {n}",
|
||
"batchDelete": "批量删除",
|
||
"scrollTop": "回到顶部",
|
||
"loadFailed": "加载统计失败",
|
||
"selectFirst": "请先选择图片",
|
||
"deleted": "已删除 {n} 张图片",
|
||
"deletePartialFail": "{n} 张图片删除失败",
|
||
"deleteFailed": "删除失败",
|
||
"deletedSingle": "已删除",
|
||
"allFolders": "全部",
|
||
"counting": "统计中…",
|
||
"summarySearch": "{folder} · 搜索「{q}」· 共 {total} 张",
|
||
"summaryTotal": "{folder} · 共 {total} 张",
|
||
"summarySearchStorage": "{folder} · {storage} · 搜索「{q}」· 共 {total} 张",
|
||
"summaryTotalStorage": "{folder} · {storage} · 共 {total} 张"
|
||
},
|
||
"logs": {
|
||
"pageTitle": "操作日志",
|
||
"pageSubtitle": "查看您的上传与删除记录",
|
||
"pageSubtitleAdmin": "查看所有用户的上传与删除记录",
|
||
"loadFailed": "加载操作日志失败",
|
||
"empty": "暂无操作记录",
|
||
"entriesUnit": "条记录",
|
||
"filterActionAll": "全部操作",
|
||
"filterSourceAll": "全部来源",
|
||
"filterUserAll": "全部用户",
|
||
"searchPlaceholder": "搜索文件名",
|
||
"summaryAll": "全部 · 共 {total} 条记录,上传 {upload} 条,删除 {delete} 条",
|
||
"actionUpload": "上传",
|
||
"actionDelete": "删除",
|
||
"sourceWeb": "网页",
|
||
"sourceApi": "API",
|
||
"sourceTwikoo": "Twikoo",
|
||
"colTime": "时间",
|
||
"colUser": "用户",
|
||
"colStorage": "存储",
|
||
"colAction": "操作",
|
||
"colSource": "来源",
|
||
"colFile": "文件名",
|
||
"colFolder": "目录",
|
||
"colSize": "大小",
|
||
"colKey": "路径"
|
||
},
|
||
"image": {
|
||
"empty": "暂无图片",
|
||
"previewFailed": "预览失败",
|
||
"uploader": "上传者:{name}",
|
||
"storageBackend": "存储:{name}"
|
||
},
|
||
"delete": {
|
||
"confirmTitle": "确认删除",
|
||
"confirmDesc": "确定要删除选中的 {count} 张图片吗?此操作不可恢复。",
|
||
"confirm": "确认删除"
|
||
},
|
||
"pagination": {
|
||
"pageOf": "第 {page} / {totalPages} 页 · 共 {total} {unit}",
|
||
"totalOnly": "共 {total} {unit}",
|
||
"first": "第一页",
|
||
"prev": "上一页",
|
||
"next": "下一页",
|
||
"last": "最后一页"
|
||
},
|
||
"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": "我已保存",
|
||
"docs": {
|
||
"upload": {
|
||
"title": "上传图片",
|
||
"descAdmin": "上传单张或多张图片。字段 image 传图片,folder 指定目录(不存在则自动创建);仍兼容 file、files、type。",
|
||
"descUser": "上传单张或多张图片。字段 image 传图片;仍兼容 file、files。图片固定存入 images/ 目录。",
|
||
"curlCustomFolder": "# 上传到自定义目录 blog/"
|
||
},
|
||
"list": {
|
||
"title": "获取图片列表",
|
||
"descAdmin": "分页列出图库,folder 可筛选目录,limit 默认 20、最大 100。",
|
||
"descUser": "分页列出您的图库,limit 默认 20、最大 100。",
|
||
"curlFolderFilter": "# 按目录筛选"
|
||
},
|
||
"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 协议,图片存入 twikoo/ 目录;字段 image + token。"
|
||
}
|
||
}
|
||
},
|
||
"userSettings": {
|
||
"loadFailed": "加载设置失败",
|
||
"saveFailed": "保存设置失败"
|
||
}
|
||
}
|