981 lines
33 KiB
TypeScript
981 lines
33 KiB
TypeScript
export default {
|
||
// 通用
|
||
common: {
|
||
confirm: '确认',
|
||
cancel: '取消',
|
||
close: '关闭',
|
||
delete: '删除',
|
||
edit: '编辑',
|
||
save: '保存',
|
||
add: '添加',
|
||
back: '返回',
|
||
next: '下一页',
|
||
previous: '上一页',
|
||
loading: '加载中...',
|
||
noData: '暂无数据',
|
||
success: '成功',
|
||
error: '错误',
|
||
warning: '警告',
|
||
info: '信息',
|
||
search: '搜索',
|
||
copy: '复制',
|
||
uploadSuccess: '上传成功',
|
||
uploadFailed: '上传失败',
|
||
copySuccess: '复制成功',
|
||
copyFailed: '复制失败',
|
||
deleteSuccess: '删除成功',
|
||
deleteFailed: '删除失败',
|
||
downloadSuccess: '下载成功',
|
||
downloadFailed: '下载失败',
|
||
shareSuccess: '分享成功',
|
||
shareFailed: '分享失败',
|
||
expiredFile: '文件已过期',
|
||
fileNotFound: '文件不存在',
|
||
networkError: '网络错误',
|
||
unknownError: '未知错误',
|
||
invalidFileType: '不支持的文件类型',
|
||
fileTooLarge: '文件过大',
|
||
uploadCanceled: '上传已取消',
|
||
processing: '处理中...',
|
||
pleaseWait: '请稍候...',
|
||
fileDetails: '文件详情',
|
||
enabled: '已开启',
|
||
disabled: '已关闭',
|
||
minute: '分钟',
|
||
files: '个文件',
|
||
second: '秒',
|
||
hour: '小时',
|
||
day: '天',
|
||
times: '次',
|
||
appName: '文件快递柜 - FileCodeBox',
|
||
appDescription: '开箱即用的文件快传系统'
|
||
},
|
||
|
||
// 管理员模块
|
||
admin: {
|
||
logout: '退出登录',
|
||
dashboard: {
|
||
title: '仪表盘',
|
||
totalFiles: '总文件数',
|
||
storageSpace: '存储空间',
|
||
todayShares: '今日分享',
|
||
totalRetrievals: '累计取件',
|
||
activeFiles: '有效文件:{count}',
|
||
todayIncrease: '今日新增容量:{count}',
|
||
yesterdayShares: '昨日分享:{count}',
|
||
serverUptime: '运行时间',
|
||
refresh: '刷新数据',
|
||
refreshing: '刷新中',
|
||
lastUpdated: '最近更新:{time}',
|
||
loadFailed: '仪表盘数据加载失败',
|
||
fileHealth: '文件健康',
|
||
fileHealthDesc: '基于状态洞察统计可取件、风险与待处理队列。',
|
||
activeFileRatio: '有效占比',
|
||
fileShareRatio: '文件占比',
|
||
textShareRatio: '文本占比',
|
||
binaryFiles: '文件分享 {count} 个',
|
||
textShares: '文本分享 {count} 条',
|
||
expiredFiles: '已过期文件',
|
||
needCleanup: '可在文件管理中清理',
|
||
chunkedFiles: '分片上传文件',
|
||
storagePolicy: '存储与上传策略',
|
||
storagePolicyDesc: '当前后台配置对上传链路的影响。',
|
||
storageBackend: '存储后端',
|
||
singleFileLimit: '单文件上限',
|
||
guestUpload: '游客上传',
|
||
maxSaveTime: '最长保存',
|
||
noSaveLimit: '不限制',
|
||
todayCapacityReference: '今日容量 / 单文件上限',
|
||
fileTypeDistribution: '类型分布',
|
||
textType: '文本',
|
||
recentFiles: '最近分享',
|
||
recentFilesDesc: '最近创建的分享记录,便于快速核对状态。',
|
||
available: '可取件',
|
||
healthActions: {
|
||
attention: {
|
||
title: '需关注',
|
||
description: '集中处理异常和预警文件'
|
||
},
|
||
storageIssue: {
|
||
title: '存储异常',
|
||
description: '检查缺少下载信息的文件'
|
||
},
|
||
expiringSoon: {
|
||
title: '即将过期',
|
||
description: '优先续期仍需保留的分享'
|
||
},
|
||
neverRetrieved: {
|
||
title: '未取件',
|
||
description: '识别创建后尚未被取件的记录'
|
||
},
|
||
permanent: {
|
||
title: '永久有效',
|
||
description: '查看长期保留的分享记录'
|
||
}
|
||
},
|
||
table: {
|
||
file: '文件',
|
||
size: '大小',
|
||
usage: '取件',
|
||
status: '状态'
|
||
}
|
||
},
|
||
fileManage: {
|
||
title: '文件管理'
|
||
},
|
||
settings: {
|
||
title: '系统设置',
|
||
basicSettings: '基本设置',
|
||
websiteInfo: '网站基本信息',
|
||
websiteName: '网站名称',
|
||
websiteDescription: '网站描述',
|
||
siteName: '网站名称',
|
||
adminPassword: '管理员密码',
|
||
passwordPlaceholder: '如需修改请输入新密码',
|
||
passwordNote: '不修改请留空',
|
||
keywords: 'SEO 关键词',
|
||
themeSelection: '界面主题',
|
||
robotsFile: 'Robots.txt 配置',
|
||
notificationSettings: '通知设置',
|
||
notificationTitle: '公告标题',
|
||
notificationContent: '公告内容',
|
||
storageSettings: '存储配置',
|
||
storagePath: '文件存储路径',
|
||
storagePathPlaceholder: '使用默认路径可留空',
|
||
storageMethod: '存储方式',
|
||
localStorage: '本地存储',
|
||
s3Storage: 'S3 对象存储',
|
||
webdavStorage: 'WebDAV 存储',
|
||
chunkUploadNote: '分片上传(实验性功能,大文件上传更稳定)',
|
||
s3AccessKeyId: 'Access Key ID',
|
||
s3SecretAccessKey: 'Secret Access Key',
|
||
s3BucketName: '存储桶名称',
|
||
s3EndpointUrl: '服务端点 URL',
|
||
s3RegionName: '区域名称',
|
||
s3SignatureVersion: '签名版本',
|
||
s3Hostname: '自定义域名',
|
||
s3v2: 'S3v2',
|
||
s3v4: 'S3v4',
|
||
autoPlaceholder: '自动识别',
|
||
enabled: '已启用',
|
||
disabled: '已禁用',
|
||
webdavUrl: '输入 WebDAV 服务地址',
|
||
webdavUsername: '输入 WebDAV 用户名',
|
||
webdavPassword: '输入 WebDAV 密码',
|
||
webdavUrlPlaceholder: '输入 WebDAV 服务地址',
|
||
webdavUsernamePlaceholder: '输入 WebDAV 用户名',
|
||
webdavPasswordPlaceholder: '输入 WebDAV 密码',
|
||
enableProxy: '启用下载代理',
|
||
uploadLimits: '上传设置',
|
||
uploadRateLimit: '限流时间窗口(在此时间内限制上传次数)',
|
||
uploadPerMinute: '限流时间窗口(在此时间内限制上传次数)',
|
||
minute: '分钟',
|
||
uploadCountLimit: '允许上传文件数(限流窗口内最多上传几个文件)',
|
||
files: '个文件',
|
||
fileSizeLimit: '单文件大小上限',
|
||
expirationMethod: '过期方式',
|
||
expirationType: '过期方式',
|
||
expiration: {
|
||
day: '按天数',
|
||
hour: '按小时',
|
||
minute: '按分钟',
|
||
forever: '永久有效',
|
||
count: '按下载次数'
|
||
},
|
||
maxSaveTime: '文件最长保存时间',
|
||
timeUnits: {
|
||
second: '秒',
|
||
minute: '分钟',
|
||
hour: '小时',
|
||
day: '天'
|
||
},
|
||
guestUpload: '允许游客上传',
|
||
errorLimits: '访问保护',
|
||
errorRateLimit: '检测时间窗口(在此时间内统计错误次数)',
|
||
errorPerMinute: '检测时间窗口(在此时间内统计错误次数)',
|
||
errorCountLimit: '允许错误次数(超过后临时封禁)',
|
||
times: '次',
|
||
saveChanges: '保存设置',
|
||
fileSizeUnits: {
|
||
kb: 'KB',
|
||
mb: 'MB',
|
||
gb: 'GB'
|
||
}
|
||
}
|
||
},
|
||
|
||
// 页面标题和导航
|
||
nav: {
|
||
sendFile: '发送文件',
|
||
retrieveFile: '取件',
|
||
fileRecords: '取件记录'
|
||
},
|
||
|
||
// 取件页面
|
||
retrieve: {
|
||
title: '文件取件',
|
||
codeInput: {
|
||
placeholder: '请输入5位取件码',
|
||
label: '取件码'
|
||
},
|
||
submit: '取件',
|
||
needSendFile: '需要发送文件?点击这里',
|
||
recordsDrawer: '取件记录',
|
||
messages: {
|
||
invalidCode: '请输入5位取件码',
|
||
retrieveSuccess: '文件获取成功',
|
||
invalidCodeError: '无效的取件码',
|
||
retrieveFailure: '获取文件失败:',
|
||
networkError: '取件失败,请稍后重试:',
|
||
unknownError: '未知错误',
|
||
previewUnavailable: '暂时无法预览文件信息,可直接取件'
|
||
},
|
||
workspace: {
|
||
sendFile: '发送文件',
|
||
inspect: '预览',
|
||
inspecting: '预览中',
|
||
retrieving: '取件中',
|
||
ready: '可取件',
|
||
noPreview: '等待取件码',
|
||
noPreviewDesc: '输入 5 位取件码后会先读取文件信息,确认后再消耗取件次数。',
|
||
latestRecord: '最近取件',
|
||
noRecord: '暂无取件记录',
|
||
currentCode: '取件码',
|
||
fileSize: '文件大小',
|
||
viewDetail: '查看详情',
|
||
historyCount: '{count} 条记录',
|
||
openRecords: '打开取件记录',
|
||
security: '安全取件',
|
||
securityState: '预览不会消耗取件次数,确认取件后才会记录访问。',
|
||
noExpiry: '不限制',
|
||
unlimited: '不限次数',
|
||
remainingCount: '剩余 {count} 次',
|
||
textType: '文本内容',
|
||
fileType: '文件下载',
|
||
expiresAt: '过期时间',
|
||
remainingDownloads: '剩余次数',
|
||
usedCount: '已取件',
|
||
emptyCode: '未输入',
|
||
previewState: '预览状态',
|
||
waiting: '等待输入'
|
||
}
|
||
},
|
||
|
||
// 发送页面
|
||
send: {
|
||
title: '文件发送',
|
||
sendText: '发送文本',
|
||
fileDetails: '文件详情',
|
||
expirationMethod: '过期方式',
|
||
uploadArea: {
|
||
dragText: '拖拽文件到此处或',
|
||
clickText: '点击选择文件',
|
||
textInput: '在此输入要发送的文本...',
|
||
placeholder: '点击或拖放文件到此处上传',
|
||
description: '支持各种常见格式',
|
||
descriptionWithLimit: '支持各种常见格式,最大{size}',
|
||
retry: '重试',
|
||
selectedFiles: '已选择 {count} 个文件',
|
||
status: {
|
||
initializing: '正在初始化上传...',
|
||
uploading: '正在上传文件...',
|
||
confirming: '正在确认上传...',
|
||
success: '上传成功!'
|
||
}
|
||
},
|
||
submit: '安全寄送',
|
||
submitting: '发送中...',
|
||
needRetrieveFile: '需要取件?点击这里',
|
||
sendRecords: '发件记录',
|
||
secureEncryption: '安全加密',
|
||
workspace: {
|
||
uploadLimit: '单文件上限',
|
||
uploadMode: '上传模式',
|
||
standardMode: '标准上传',
|
||
chunkMode: '分片上传',
|
||
guestPolicy: '游客上传',
|
||
guestOpen: '允许',
|
||
guestClosed: '已关闭',
|
||
currentTask: '当前任务',
|
||
awaitingFile: '等待选择文件',
|
||
fileReady: '已选择 {count} 个文件',
|
||
textDraft: '文本草稿 {count} 字',
|
||
payload: '发送内容',
|
||
expirationPreview: '有效期',
|
||
security: '安全状态',
|
||
latestRecord: '最近一次发送',
|
||
noRecord: '暂无记录',
|
||
copyLink: '复制链接',
|
||
viewDetail: '查看详情',
|
||
historyTitle: '发送历史',
|
||
historyCount: '{count} 条记录',
|
||
openRecords: '打开发送记录'
|
||
},
|
||
fileDetail: {
|
||
title: '文件详情',
|
||
content: '文件内容',
|
||
previewContent: '预览内容',
|
||
download: '点击下载',
|
||
qrCode: '取件二维码',
|
||
scanQrCode: '扫描二维码快速取件'
|
||
},
|
||
contentPreview: {
|
||
title: '内容预览'
|
||
},
|
||
fileManage: {
|
||
title: '文件管理',
|
||
searchPlaceholder: '搜索文件名称、描述...',
|
||
allFiles: '所有文件',
|
||
editFileInfo: '编辑文件信息',
|
||
saveChanges: '保存更改',
|
||
headers: {
|
||
code: '取件码',
|
||
name: '名称',
|
||
size: '大小',
|
||
description: '描述',
|
||
expiration: '过期时间',
|
||
actions: '操作'
|
||
},
|
||
form: {
|
||
code: '取件码',
|
||
codePlaceholder: '输入取件码',
|
||
filename: '文件名称',
|
||
filenamePlaceholder: '输入文件名称',
|
||
suffix: '文件后缀',
|
||
suffixPlaceholder: '输入文件后缀',
|
||
downloadLimit: '下载次数限制',
|
||
downloadLimitPlaceholder: '输入下载次数限制'
|
||
}
|
||
},
|
||
expiration: {
|
||
label: '过期时间',
|
||
placeholders: {
|
||
days: '输入天数',
|
||
hours: '输入小时数',
|
||
minutes: '输入分钟数',
|
||
count: '输入查看次数',
|
||
forever: '永久',
|
||
default: '输入值'
|
||
},
|
||
units: {
|
||
days: '天',
|
||
hours: '小时',
|
||
minutes: '分钟',
|
||
times: '次',
|
||
forever: '永久'
|
||
}
|
||
},
|
||
time: {
|
||
day: '按天',
|
||
hour: '按小时',
|
||
minute: '按分钟',
|
||
forever: '永久',
|
||
count: '按次数'
|
||
},
|
||
messages: {
|
||
selectFile: '请选择要上传的文件',
|
||
enterText: '请输入要发送的文本',
|
||
enterExpirationValue: '请输入过期值',
|
||
expirationTooLong: '过期时间不能超过{days}天',
|
||
sendSuccess: '文件发送成功!取件码:{code}',
|
||
initChunkUploadFailed: '初始化切片上传失败',
|
||
chunkUploadFailed: '切片 {index} 上传失败',
|
||
completeUploadFailed: '完成上传失败',
|
||
uploadFailed: '上传失败,请稍后重试',
|
||
guestUploadDisabled: '游客上传功能已关闭',
|
||
fileSizeExceeded: '文件大小超过限制 ({size})',
|
||
serverError: '服务器响应异常',
|
||
sendFailed: '发送失败,请稍后重试',
|
||
expiresAfterCount: '{count}次后过期',
|
||
expiresAt: '{date}过期',
|
||
emptyFileError: '无法读取空文件',
|
||
fileAddedFromClipboard: '已从剪贴板添加文件:{filename}',
|
||
fileProcessingFailed: '文件处理失败',
|
||
expiresAfter: '{value}{unit}后过期'
|
||
}
|
||
},
|
||
|
||
// 文件管理
|
||
fileManage: {
|
||
title: '文件管理',
|
||
subtitle: '共 {count} 条分享记录,可按状态、类型和使用情况快速筛选。',
|
||
searchPlaceholder: '搜索取件码、名称或文本...',
|
||
allFiles: '所有文件',
|
||
detail: '详情',
|
||
detailTitle: '文件详情',
|
||
detailLoading: '正在加载详情...',
|
||
detailFailed: '详情加载失败',
|
||
editFileInfo: '编辑文件信息',
|
||
saveChanges: '保存更改',
|
||
refresh: '刷新列表',
|
||
resetFilters: '重置筛选',
|
||
totalFiles: '全部记录',
|
||
activeFiles: '可取件',
|
||
expiredFiles: '已过期',
|
||
storageUsed: '占用空间',
|
||
statusLabel: '状态',
|
||
typeLabel: '类型',
|
||
healthLabel: '健康',
|
||
all: '全部',
|
||
active: '可取件',
|
||
expired: '已过期',
|
||
fileType: '文件',
|
||
textType: '文本',
|
||
chunkedType: '分片',
|
||
healthFilters: {
|
||
all: '全部',
|
||
attention: '需关注',
|
||
danger: '异常',
|
||
warning: '预警',
|
||
expiringSoon: '即将过期',
|
||
storageIssue: '存储异常',
|
||
neverRetrieved: '未取件',
|
||
healthy: '健康',
|
||
permanent: '永久有效'
|
||
},
|
||
sortBy: '排序',
|
||
unlimited: '不限次数',
|
||
remaining: '剩余 {count} 次',
|
||
loadError: '文件列表加载失败',
|
||
noMatches: '没有匹配的文件',
|
||
viewText: '查看',
|
||
textPreview: '文本预览',
|
||
copyText: '复制文本',
|
||
copyCode: '复制取件码',
|
||
copyLink: '复制取件链接',
|
||
copySuccess: '文本已复制到剪贴板',
|
||
copyCodeSuccess: '取件码已复制到剪贴板',
|
||
copyLinkSuccess: '取件链接已复制到剪贴板',
|
||
copyFailed: '复制失败,请重试',
|
||
charCount: '共 {count} 个字符',
|
||
downloadFile: '下载文件',
|
||
exportText: '导出文本',
|
||
downloadSuccess: '已下载:{name}',
|
||
exportSuccess: '已导出:{name}',
|
||
downloadFailed: '下载失败',
|
||
previewFailed: '预览加载失败',
|
||
loadingPreview: '正在加载预览...',
|
||
previewComplete: '已加载完整内容,共 {count} 个字符',
|
||
previewTruncated: '已显示 {shown} / {total} 个字符',
|
||
previewFallback: '预览接口不可用,已使用列表中的文本内容',
|
||
selectCurrentPage: '选择当前页',
|
||
selectedCount: '已选择 {count} 项',
|
||
selectFile: '选择 {name}',
|
||
clearSelection: '清空选择',
|
||
batchDelete: '批量删除',
|
||
batchDeleteConfirm: '确认删除选中的 {count} 个文件?此操作不可撤销。',
|
||
batchDeleteSuccess: '已删除 {count} 个文件',
|
||
batchDeletePartialSuccess: '已删除 {count} 个文件,{failed} 个失败',
|
||
batchDeleteFailed: '批量删除失败',
|
||
batchEdit: '批量编辑',
|
||
batchEditTitle: '批量编辑文件策略',
|
||
batchEditSelected: '将更新选中的 {count} 个文件',
|
||
batchEditMode: '更新方式',
|
||
batchEditExpiresAt: '设置过期时间',
|
||
batchEditDownloadLimit: '设置取件次数',
|
||
batchEditForever: '设为永久有效',
|
||
batchEditForeverHint: '清空过期时间,并将取件次数设为不限。',
|
||
batchUpdateConfirm: '确认更新选中的 {count} 个文件?',
|
||
batchUpdateSuccess: '已更新 {count} 个文件',
|
||
batchUpdatePartialSuccess: '已更新 {count} 个文件,{failed} 个失败',
|
||
batchUpdateFailed: '批量更新失败',
|
||
batchUpdateNoFields: '请选择要更新的策略',
|
||
batchPolicyActionConfirm: '确认对选中的 {count} 个文件执行“{action}”?',
|
||
batchPolicyActionSuccess: '已处理 {count} 个文件',
|
||
batchPolicyActionPartialSuccess: '已处理 {count} 个文件,{failed} 个失败',
|
||
batchPolicyActionFailed: '批量策略动作执行失败',
|
||
policyActionSuccess: '文件策略已更新',
|
||
policyActionFailed: '策略动作执行失败',
|
||
metadataInfo: '运营备注',
|
||
metadataHint: '仅管理员可见,用于记录处理线索、归档标签和后续动作。',
|
||
metadataNote: '备注',
|
||
metadataNotePlaceholder: '记录这个分享的背景、处理记录或负责人...',
|
||
metadataTags: '标签',
|
||
metadataTagsPlaceholder: '逗号分隔,例如:客户A, 待续期, 重要',
|
||
metadataUpdatedAt: '最近保存:{time}',
|
||
metadataNeverUpdated: '尚未保存备注',
|
||
saveMetadata: '保存备注',
|
||
metadataSaveSuccess: '备注和标签已保存',
|
||
metadataSaveFailed: '备注保存失败',
|
||
policyActions: {
|
||
extend24h: '延长 24 小时',
|
||
extend7d: '延长 7 天',
|
||
makePermanent: '设为永久',
|
||
resetDownloadLimit: '重置为 {count} 次'
|
||
},
|
||
policyActionDescriptions: {
|
||
extend24h: '从当前有效期继续追加一天',
|
||
extend7d: '适合临时续期一周',
|
||
makePermanent: '清空过期时间和次数限制',
|
||
resetDownloadLimit: '恢复可取件次数到 {count} 次'
|
||
},
|
||
applyBatchEdit: '应用更改',
|
||
overview: '概览',
|
||
policyInfo: '策略信息',
|
||
storageInfo: '存储信息',
|
||
statusInsight: '状态洞察',
|
||
nextAction: '建议动作',
|
||
lifecycle: '生命周期',
|
||
permanent: '永久有效',
|
||
createdAt: '创建时间',
|
||
remainingDownloads: '剩余次数',
|
||
textLength: '文本长度',
|
||
hasDownloadLimit: '限制取件次数',
|
||
hasExpirationTime: '限制过期时间',
|
||
canPreviewText: '可预览文本',
|
||
canDownload: '可下载',
|
||
storageBackend: '存储后端',
|
||
fileHash: '文件哈希',
|
||
isChunked: '分片上传',
|
||
filePath: '存储路径',
|
||
uuidFileName: '存储文件名',
|
||
uploadId: '上传会话',
|
||
yes: '是',
|
||
no: '否',
|
||
insightSeverity: {
|
||
success: '正常',
|
||
warning: '需关注',
|
||
danger: '异常',
|
||
info: '提示',
|
||
neutral: '待观察'
|
||
},
|
||
insightStates: {
|
||
available: '当前可正常取件',
|
||
expired: '当前已不可取件',
|
||
storage_incomplete: '存储信息不完整',
|
||
expiring_soon: '即将过期',
|
||
permanent: '永久有效'
|
||
},
|
||
insightActions: {
|
||
monitor: '保持观察',
|
||
extend_or_delete: '延长有效期或清理记录',
|
||
inspect_storage: '检查存储路径与文件名',
|
||
extend_expiration: '按需延长过期时间'
|
||
},
|
||
insightReasons: {
|
||
expired: '已超过过期时间',
|
||
download_limit_exhausted: '取件次数已用尽',
|
||
expires_soon: '24 小时内过期',
|
||
never_retrieved: '尚未被取件',
|
||
storage_metadata_incomplete: '缺少可下载存储信息',
|
||
chunked_upload: '由分片上传生成'
|
||
},
|
||
timeline: {
|
||
status: {
|
||
done: '已完成',
|
||
pending: '等待中',
|
||
active: '生效中',
|
||
expired: '已过期',
|
||
exhausted: '已用尽',
|
||
unlimited: '不限'
|
||
},
|
||
created: {
|
||
title: '记录创建',
|
||
description: '分享记录已创建,当前状态为 {status}。'
|
||
},
|
||
content_ready: {
|
||
title: '内容就绪',
|
||
description: '内容类型为 {detail},当前状态为 {status}。'
|
||
},
|
||
upload_session: {
|
||
title: '上传会话',
|
||
description: '上传会话已记录:{detail}。'
|
||
},
|
||
expiration_policy: {
|
||
title: '过期策略',
|
||
description: '过期策略当前为 {status}。',
|
||
remaining: '还剩 {time}',
|
||
overdue: '已超时 {time}'
|
||
},
|
||
download_limit: {
|
||
title: '取件次数',
|
||
description: '取件次数策略当前为 {status},{value}。'
|
||
},
|
||
retrieved: {
|
||
title: '取件记录',
|
||
description: '累计取件 {value},当前状态为 {status}。'
|
||
}
|
||
},
|
||
headers: {
|
||
select: '选择',
|
||
code: '取件码',
|
||
name: '名称',
|
||
type: '类型',
|
||
size: '大小',
|
||
usage: '取件',
|
||
status: '状态',
|
||
description: '描述',
|
||
expiration: '过期时间',
|
||
actions: '操作'
|
||
},
|
||
sort: {
|
||
createdAt: '创建时间',
|
||
expiredAt: '过期时间',
|
||
name: '名称',
|
||
size: '大小',
|
||
usedCount: '取件次数',
|
||
code: '取件码',
|
||
desc: '降序',
|
||
asc: '升序'
|
||
},
|
||
form: {
|
||
code: '取件码',
|
||
codePlaceholder: '输入取件码',
|
||
filename: '文件名称',
|
||
filenamePlaceholder: '输入文件名称',
|
||
suffix: '文件后缀',
|
||
suffixPlaceholder: '输入文件后缀',
|
||
downloadLimit: '下载次数限制',
|
||
downloadLimitPlaceholder: '输入下载次数限制'
|
||
}
|
||
},
|
||
|
||
// 文件记录
|
||
fileRecord: {
|
||
filename: '文件名',
|
||
size: '文件大小',
|
||
date: '取件日期',
|
||
code: '取件码',
|
||
actions: '操作',
|
||
download: '下载',
|
||
viewDetails: '查看详情',
|
||
deleteRecord: '删除记录',
|
||
preview: '预览',
|
||
copyContent: '复制内容',
|
||
contentCopied: '内容已复制到剪贴板',
|
||
copyFailed: '复制失败,请重试'
|
||
},
|
||
|
||
// 文件详情模态框
|
||
fileDetail: {
|
||
title: '文件详情',
|
||
content: '文件内容',
|
||
previewContent: '预览内容',
|
||
download: '点击下载',
|
||
qrCode: '取件二维码',
|
||
scanQrCode: '扫描二维码快速取件'
|
||
},
|
||
|
||
// 内容预览
|
||
contentPreview: {
|
||
title: '内容预览'
|
||
},
|
||
|
||
// 侧边抽屉
|
||
drawer: {
|
||
noRecords: '暂无记录'
|
||
},
|
||
|
||
// 文件大小单位
|
||
fileSize: {
|
||
bytes: 'Bytes',
|
||
kb: 'KB',
|
||
mb: 'MB',
|
||
gb: 'GB',
|
||
tb: 'TB'
|
||
},
|
||
|
||
// 管理页面
|
||
manage: {
|
||
settings: {
|
||
title: '系统设置',
|
||
basicSettings: '基本设置',
|
||
siteName: '网站名称',
|
||
adminPassword: '管理员密码',
|
||
passwordPlaceholder: '如需修改请输入新密码',
|
||
passwordNote: '不修改请留空',
|
||
keywords: 'SEO 关键词',
|
||
themeSelection: '界面主题',
|
||
robotsFile: 'Robots.txt 配置',
|
||
notificationSettings: '通知设置',
|
||
notificationTitle: '公告标题',
|
||
notificationContent: '公告内容',
|
||
storageSettings: '存储配置',
|
||
storagePath: '文件存储路径',
|
||
storagePathPlaceholder: '使用默认路径可留空',
|
||
storageMethod: '存储方式',
|
||
localStorage: '本地存储',
|
||
s3Storage: 'S3 对象存储',
|
||
webdavStorage: 'WebDAV 存储',
|
||
chunkUploadNote: '分片上传(实验性功能,大文件上传更稳定)',
|
||
uploadLimits: '上传设置',
|
||
uploadPerMinute: '限流时间窗口(在此时间内限制上传次数)',
|
||
uploadCountLimit: '允许上传文件数(限流窗口内最多上传几个文件)',
|
||
fileSizeLimit: '单文件大小上限',
|
||
expiration: {
|
||
day: '按天数',
|
||
hour: '按小时',
|
||
minute: '按分钟',
|
||
forever: '永久有效',
|
||
count: '按下载次数'
|
||
},
|
||
maxSaveTime: '文件最长保存时间',
|
||
s3AccessKeyId: 'Access Key ID',
|
||
s3SecretAccessKey: 'Secret Access Key',
|
||
s3BucketName: '存储桶名称',
|
||
s3EndpointUrl: '服务端点 URL',
|
||
s3RegionName: '区域名称',
|
||
s3SignatureVersion: '签名版本',
|
||
s3Hostname: '自定义域名',
|
||
s3v2: 'S3v2',
|
||
s3v4: 'S3v4',
|
||
autoPlaceholder: '自动识别',
|
||
enableProxy: '启用下载代理',
|
||
webdavUrlPlaceholder: '输入 WebDAV 服务地址',
|
||
webdavUsernamePlaceholder: '输入 WebDAV 用户名',
|
||
webdavPasswordPlaceholder: '输入 WebDAV 密码',
|
||
fileSizeUnits: {
|
||
kb: 'KB',
|
||
mb: 'MB',
|
||
gb: 'GB'
|
||
},
|
||
expirationType: '过期方式',
|
||
guestUpload: '允许游客上传',
|
||
errorLimits: '访问保护',
|
||
errorPerMinute: '检测时间窗口(在此时间内统计错误次数)',
|
||
errorCountLimit: '允许错误次数(超过后临时封禁)',
|
||
saveChanges: '保存设置',
|
||
refreshConfig: '刷新配置',
|
||
refreshing: '刷新中',
|
||
saving: '保存中',
|
||
unsavedChanges: '有未保存的配置变更',
|
||
allChangesSaved: '所有配置已保存',
|
||
refreshBlocked: '请先保存当前变更再刷新'
|
||
},
|
||
dashboard: {
|
||
title: '仪表盘',
|
||
totalFiles: '总文件数',
|
||
storageSpace: '存储空间',
|
||
todayShares: '今日分享',
|
||
totalRetrievals: '累计取件',
|
||
activeFiles: '有效文件:{count}',
|
||
todayIncrease: '今日新增容量:{count}',
|
||
yesterdayShares: '昨日分享:{count}',
|
||
serverUptime: '运行时间',
|
||
refresh: '刷新数据',
|
||
fileHealth: '文件健康',
|
||
fileHealthDesc: '基于真实文件记录统计有效、过期和类型分布。',
|
||
activeFileRatio: '有效占比',
|
||
fileShareRatio: '文件占比',
|
||
textShareRatio: '文本占比',
|
||
binaryFiles: '文件分享 {count} 个',
|
||
textShares: '文本分享 {count} 条',
|
||
expiredFiles: '已过期文件',
|
||
needCleanup: '可在文件管理中清理',
|
||
chunkedFiles: '分片上传文件',
|
||
storagePolicy: '存储与上传策略',
|
||
storagePolicyDesc: '当前后台配置对上传链路的影响。',
|
||
storageBackend: '存储后端',
|
||
singleFileLimit: '单文件上限',
|
||
guestUpload: '游客上传',
|
||
maxSaveTime: '最长保存',
|
||
noSaveLimit: '不限制',
|
||
todayCapacityReference: '今日容量 / 单文件上限',
|
||
fileTypeDistribution: '类型分布',
|
||
textType: '文本',
|
||
recentFiles: '最近分享',
|
||
recentFilesDesc: '最近创建的分享记录,便于快速核对状态。',
|
||
available: '可取件',
|
||
table: {
|
||
file: '文件',
|
||
size: '大小',
|
||
usage: '取件',
|
||
status: '状态'
|
||
}
|
||
},
|
||
fileManage: {
|
||
title: '文件管理',
|
||
searchPlaceholder: '搜索文件名称、描述...',
|
||
allFiles: '所有文件',
|
||
editFileInfo: '编辑文件信息',
|
||
saveChanges: '保存更改',
|
||
headers: {
|
||
code: '取件码',
|
||
name: '名称',
|
||
size: '大小',
|
||
description: '描述',
|
||
expiration: '过期时间',
|
||
actions: '操作'
|
||
},
|
||
form: {
|
||
code: '取件码',
|
||
codePlaceholder: '输入取件码',
|
||
filename: '文件名称',
|
||
filenamePlaceholder: '输入文件名称',
|
||
suffix: '文件后缀',
|
||
suffixPlaceholder: '输入文件后缀',
|
||
downloadLimit: '下载次数限制',
|
||
downloadLimitPlaceholder: '输入下载次数限制'
|
||
},
|
||
updateFailed: '更新失败',
|
||
deleteFailed: '删除失败',
|
||
deleteConfirm: '确认删除这个文件?此操作不可撤销。',
|
||
loadFileListFailed: '加载文件列表失败'
|
||
},
|
||
systemSettings: {
|
||
title: '系统设置',
|
||
basicSettings: '基本设置',
|
||
websiteInfo: '网站基本信息',
|
||
websiteName: '网站名称',
|
||
websiteDescription: '网站描述',
|
||
adminPassword: '管理员密码',
|
||
passwordPlaceholder: '如需修改请输入新密码',
|
||
passwordNote: '不修改请留空',
|
||
keywords: 'SEO 关键词',
|
||
themeSelection: '界面主题',
|
||
notificationSettings: '通知设置',
|
||
notificationTitle: '公告标题',
|
||
notificationContent: '公告内容',
|
||
storageSettings: '存储配置',
|
||
storagePath: '文件存储路径',
|
||
storagePathPlaceholder: '使用默认路径可留空',
|
||
storageMethod: '存储方式',
|
||
localStorage: '本地存储',
|
||
s3Storage: 'S3 对象存储',
|
||
webdavStorage: 'WebDAV 存储',
|
||
chunkUploadNote: '分片上传(实验性功能,大文件上传更稳定)',
|
||
enabled: '已启用',
|
||
disabled: '已禁用',
|
||
webdavUrl: '输入 WebDAV 服务地址',
|
||
webdavUsername: '输入 WebDAV 用户名',
|
||
webdavPassword: '输入 WebDAV 密码',
|
||
enableProxy: '启用下载代理',
|
||
uploadLimits: '上传设置',
|
||
uploadRateLimit: '限流时间窗口(在此时间内限制上传次数)',
|
||
minute: '分钟',
|
||
uploadCountLimit: '允许上传文件数(限流窗口内最多上传几个文件)',
|
||
files: '个文件',
|
||
fileSizeLimit: '单文件大小上限',
|
||
expirationMethod: '过期方式',
|
||
expirationMethods: {
|
||
day: '按天数',
|
||
hour: '按小时',
|
||
minute: '按分钟',
|
||
forever: '永久有效',
|
||
count: '按下载次数'
|
||
},
|
||
expiration: {
|
||
day: '按天数',
|
||
hour: '按小时',
|
||
minute: '按分钟',
|
||
forever: '永久有效',
|
||
count: '按下载次数'
|
||
},
|
||
maxSaveTime: '文件最长保存时间',
|
||
timeUnits: {
|
||
second: '秒',
|
||
minute: '分钟',
|
||
hour: '小时',
|
||
day: '天'
|
||
},
|
||
guestUpload: '允许游客上传',
|
||
errorLimits: '访问保护',
|
||
errorRateLimit: '检测时间窗口(在此时间内统计错误次数)',
|
||
errorCountLimit: '允许错误次数(超过后临时封禁)',
|
||
times: '次',
|
||
saveSettings: '保存设置',
|
||
saveSuccess: '设置已保存',
|
||
saveFailed: '保存失败,请重试',
|
||
getConfigFailed: '获取配置失败,请刷新页面'
|
||
},
|
||
login: {
|
||
title: '登录',
|
||
password: '密码',
|
||
passwordPlaceholder: '密码',
|
||
loginButton: '登录',
|
||
loggingIn: '登录中...',
|
||
invalidPassword: '无效的密码',
|
||
passwordTooShort: '密码长度至少为6位',
|
||
loginFailed: '登录失败',
|
||
noValidToken: '登录失败:未获取到有效令牌'
|
||
}
|
||
},
|
||
|
||
// 工具函数相关
|
||
utils: {
|
||
common: {
|
||
formatTime: '格式化时间戳为可读格式',
|
||
formatFileSize: '格式化文件大小',
|
||
formatDuration: '格式化持续时间',
|
||
time: {
|
||
forever: '永久',
|
||
day: '天',
|
||
hour: '小时',
|
||
minute: '分钟',
|
||
second: '秒'
|
||
},
|
||
copyToClipboard: '复制文本到剪贴板',
|
||
copyFailed: '复制失败:',
|
||
debounce: '防抖函数',
|
||
throttle: '节流函数',
|
||
validateEmail: '验证邮箱格式',
|
||
validateUrl: '验证URL格式',
|
||
generateRandomString: '生成随机字符串',
|
||
deepClone: '深度克隆对象',
|
||
getFileExtension: '获取文件扩展名',
|
||
isMobileDevice: '检查是否为移动设备',
|
||
formatNumber: '格式化数字,添加千分位分隔符'
|
||
},
|
||
clipboard: {
|
||
title: '剪贴板工具函数',
|
||
copyText: '复制文本到剪贴板',
|
||
copySuccess: '复制成功',
|
||
copyFailed: '复制失败,请手动复制'
|
||
}
|
||
},
|
||
|
||
// 组件相关
|
||
components: {
|
||
pagination: {
|
||
showing: '显示第',
|
||
to: '到',
|
||
of: '条,共',
|
||
total: '条',
|
||
previous: '上一页',
|
||
next: '下一页'
|
||
},
|
||
languageSwitcher: {
|
||
clickOutsideToClose: '点击外部关闭下拉菜单'
|
||
},
|
||
borderProgressBar: {
|
||
borderWidth: '边框宽度',
|
||
cornerRadius: '拐角半径',
|
||
createGradient: '创建渐变',
|
||
drawBackground: '绘制背景',
|
||
calculateProgress: '计算进度',
|
||
drawProgress: '绘制进度'
|
||
}
|
||
},
|
||
|
||
// 其他通用文本
|
||
misc: {
|
||
emptyFileError: '无法读取空文件',
|
||
fileAddedFromClipboard: '已从剪贴板添加文件:',
|
||
fileProcessFailed: '文件处理失败',
|
||
chunkSize: '保持 2MB 的切片大小用于计算哈希',
|
||
secureContext: '如果不是安全上下文(HTTP),则返回一个基于文件信息的替代哈希',
|
||
cryptoFallback: '如果 crypto.subtle.digest 失败,使用替代方案',
|
||
generateAlternativeHash: '生成替代哈希的函数',
|
||
fileInfoHash: '使用文件名、大小和最后修改时间生成一个简单的哈希',
|
||
convertToHex: '转换为16进制字符串并填充到64位',
|
||
defaultChunkSize: '默认切片大小为5MB',
|
||
initChunkUpload: '1. 初始化切片上传',
|
||
uploadChunk: '2. 上传切片',
|
||
completeUpload: '3. 完成上传',
|
||
chunkUploadFailed: '切片上传失败:',
|
||
uploadProgressListener: '添加上传进度监听',
|
||
noLimitCheck: '如果没有限制,直接返回true',
|
||
expirationValidation: '添加过期时间验证',
|
||
chunkUploadReplacement: '使用切片上传替代原来的直接上传',
|
||
textUploadUnchanged: '文本上传保持不变',
|
||
addSendRecord: '添加新的发送记录',
|
||
permanent: '永久',
|
||
sendSuccessMessage: '显示发送成功消息',
|
||
resetForm: '重置表单 - 只重置文件和文本内容,保留过期信息',
|
||
showDetails: '显示详情',
|
||
autoCopyLink: '自动复制取件码链接',
|
||
delayedLoading: '使用 onMounted 钩子延迟加载一些非关键资源或初始化',
|
||
nonCriticalInit: '这里可以放置一些非立即需要的初始化代码'
|
||
}
|
||
}
|