feat(admin): batch ops, transfer, watermark, usage and qr share pages

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-20 21:10:30 +08:00
parent 618d1d796c
commit f08d68bebf
31 changed files with 2717 additions and 34 deletions
+117 -3
View File
@@ -233,7 +233,8 @@
"system": {
"title": "账号与同步",
"users": "账号管理",
"userSync": "用户同步"
"userSync": "用户同步",
"usage": "用量统计"
},
"albums": {
"title": "相册管理",
@@ -339,6 +340,8 @@
"tabPhotos": "照片管理",
"tabMembers": "成员管理",
"tabCategories": "分类管理",
"tabWatermark": "水印管理",
"tabShare": "分享",
"loadFailed": "相册加载失败",
"retry": "重试",
"fieldTitle": "标题",
@@ -348,7 +351,10 @@
"fieldStartAt": "开始时间",
"fieldEndAt": "结束时间",
"fieldCreatedAt": "创建时间",
"fieldUpdatedAt": "更新时间"
"fieldUpdatedAt": "更新时间",
"fieldStatsSyncedAt": "统计同步时间",
"statsNotSynced": "尚无回传",
"fieldOwnerId": "负责人"
},
"banner": {
"kind": "资产类型",
@@ -438,7 +444,114 @@
"hidden": "照片已隐藏",
"restored": "照片已恢复发布",
"deleted": "照片已删除",
"empty": "暂无照片"
"empty": "暂无照片",
"colLikeCount": "点赞数",
"batchHide": "批量隐藏",
"batchHideConfirm": "确定批量隐藏选中的 {count} 张照片?隐藏后公开端即刻不可见。",
"batchResult": "批量隐藏完成:成功 {ok} 张 / 失败 {fail} 张",
"batchResultAllOk": "批量隐藏完成:成功 {ok} 张",
"batchFailuresTitle": "失败明细(逐项原因)",
"batchColPhoto": "照片 ID",
"batchColReason": "原因"
},
"transfer": {
"entry": "负责人交接",
"title": "相册负责人交接",
"targetLabel": "新负责人",
"searchPlaceholder": "输入账号前缀(至少 2 字符)搜索",
"keepLabel": "保留原负责人",
"keepHint": "开启则原负责人转为协作者,关闭则移出成员表",
"historyHint": "交接仅转移负责人角色:历史照片的上传人保持不变。",
"submit": "交接",
"success": "负责人已交接"
},
"watermark": {
"loadFailed": "水印配置加载失败",
"retry": "重试",
"currentVersion": "当前配置",
"versionTag": "v{version} · {state}",
"neverConfigured": "从未配置",
"enabled": "已开启",
"disabled": "已关闭",
"switchLabel": "浏览图水印",
"positionLabel": "位置",
"position_topLeft": "左上",
"position_topRight": "右上",
"position_bottomLeft": "左下",
"position_bottomRight": "右下",
"position_center": "居中",
"opacityLabel": "不透明度",
"scaleLabel": "尺寸占比",
"textContentLabel": "文字内容",
"textContentPlaceholder": "留空则不绘制文字",
"fontSizeLabel": "字号",
"save": "保存并发起重生成",
"saveHint": "保存即创建新配置版本,并为全部历史照片发起重生成(原子切换,完成前旧图可用)",
"accepted": "配置已保存(v{version}),重生成任务已受理",
"previewTitle": "测试水印(示意预览)",
"previewHint": "CSS 叠加示意,实际效果以重生成后的浏览图为准",
"jobsTitle": "版本历史",
"regen": "发起重生成",
"colVersion": "版本",
"colState": "状态",
"colProgress": "进度",
"colCreatedAt": "创建时间",
"state_pending": "等待中",
"state_running": "进行中",
"state_done": "已完成",
"state_failed": "已失败",
"failedCount": "失败 {count} 张",
"jobsEmpty": "暂无重生成任务"
},
"share": {
"viewerUrl": "观众端链接",
"copy": "复制链接",
"hint": "观众经此链接访问相册公开页;关闭「公开可见」开关后链接失效。",
"qrTitle": "扫码打开",
"publicOffHint": "该相册已关闭「公开可见」,观众端链接当前不可访问"
}
},
"usage": {
"loadFailed": "用量加载失败",
"retry": "重试",
"totals": {
"photoCount": "照片总数",
"totalBytes": "存储总量",
"thresholds": "告警阈值"
},
"albums": {
"title": "相册用量",
"colTitle": "相册",
"colPhotoCount": "照片数",
"colOriginal": "原图",
"colVariant": "变体",
"colTotal": "合计",
"empty": "暂无相册"
},
"thresholds": {
"entry": "阈值设置",
"title": "用量告警阈值",
"storageLabel": "全库存储阈值",
"storageShort": "全库",
"perAlbumLabel": "单相册阈值",
"perAlbumShort": "单相册",
"off": "未设置",
"hint": "开关关闭即清除该阈值(告警停用);保存后立即重新评估——超阈产生新告警、阈值上调解除旧告警。",
"submit": "保存",
"saved": "阈值已保存"
},
"alerts": {
"title": "告警列表",
"colState": "状态",
"colKind": "维度",
"colMessage": "描述",
"colCreatedAt": "产生时间",
"colResolvedAt": "解除时间",
"active": "未解决",
"resolved": "已解决",
"kind_storage": "全库存储",
"kind_perAlbum": "单相册",
"empty": "暂无告警"
}
},
"usersManage": {
@@ -594,6 +707,7 @@
"MEMBER_CONFLICT": "该用户已是相册成员",
"ALBUM_NOT_FOUND": "相册不存在或不可见",
"PHOTO_NOT_FOUND": "照片不存在",
"PHOTO_NOT_PUBLIC": "照片状态不可隐藏(非已发布)",
"UPLOAD_VERIFY_FAILED": "上传核验失败,请重试",
"UPLOAD_SESSION_CONFLICT": "上传会话状态冲突,请重新开始",
"ALBUM_UPLOAD_DISABLED": "该相册已关闭上传"