Files
cwd/cwd-admin/src/locales/en-US.json
anghunk 3cfa5f1f6a feat(admin): 添加 S3 备份列表查看、下载和删除功能
- 在数据管理页面添加“查看备份”按钮,用于打开备份列表弹窗
- 新增 S3BackupModal 组件,展示备份文件列表,支持下载和删除操作
- 扩展 S3 工具类,支持列出、获取和删除 S3 对象
- 新增后端 API 接口:获取备份列表、删除备份、下载备份文件
- 为所有支持的语言添加相应的国际化文本
2026-02-12 16:26:50 +08:00

328 lines
10 KiB
JSON

{
"menu": {
"comments": "Comments",
"stats": "Dashboard",
"analytics": "Analytics",
"settings": "Settings",
"data": "Data"
},
"layout": {
"toggleMenu": "Toggle Menu",
"docs": "Documentation",
"logout": "Logout",
"moreActions": "More Actions",
"defaultSite": "Default Site",
"theme": {
"light": "Light",
"dark": "Dark",
"system": "System"
},
"version": {
"title": "Version Info",
"apiAddress": "API Address",
"apiVersion": "API Version",
"adminVersion": "Admin Version",
"match": "Admin and API versions match.",
"mismatch": "Version mismatch. Please update API service to match Admin version.",
"fetchError": "Failed to fetch version:",
"loading": "Loading...",
"notConfigured": "Not Configured",
"notFetched": "Not Fetched",
"ok": "OK"
}
},
"stats": {
"title": "Dashboard",
"overview": "Overview",
"total": "Total Comments",
"approved": "Approved",
"pending": "Pending",
"rejected": "Rejected",
"trend": "Comment Trend",
"bySite": "By Site",
"last7Days": "Last 7 Days",
"last30Days": "Last 30 Days",
"noData": "No Data",
"table": {
"domain": "Domain",
"total": "Total",
"approved": "Approved",
"pending": "Pending",
"rejected": "Rejected"
},
"loadError": "Failed to load stats"
},
"analytics": {
"title": "Analytics",
"overview": "Overview",
"totalPv": "Total PV",
"todayPv": "Today PV",
"weekPv": "Week PV",
"monthPv": "Month PV",
"totalPages": "Pages Visited",
"trend": "Traffic Trend",
"pageDetail": "Page Details",
"likeRank": "Top Liked Pages",
"last7Days": "Last 7 Days",
"last30Days": "Last 30 Days",
"sort": {
"pv": "Sort by PV",
"latest": "Latest Visited"
},
"table": {
"title": "Page Title",
"pv": "PV",
"time": "Last Visit",
"url": "URL",
"rank": "Rank",
"like": "Likes"
},
"noData": "No Data",
"noLikeData": "No Like Data",
"loadError": "Failed to load analytics"
},
"data": {
"title": "Data Management",
"sections": {
"comments": {
"title": "Comments",
"desc": "Manage comments and import from other frameworks.",
"exportLabel": "Export:",
"exporting": "Exporting...",
"exportJson": "Export JSON",
"importLabel": "Import:",
"importButton": "Import Comments",
"source": {
"cwd": "CWD (.json)",
"twikoo": "Twikoo (.json)",
"artalk": "Artalk (.json)"
}
},
"config": {
"title": "System Config",
"desc": "Manage settings, email config, blocklists, etc.",
"export": "Export Config",
"import": "Import Config"
},
"stats": {
"title": "Analytics Data",
"desc": "Manage page views, likes, and trends.",
"export": "Export Stats",
"import": "Import Stats"
},
"backup": {
"title": "Full Backup",
"desc": "Backup or restore all system data (Comments + Config + Stats).",
"export": "Full Export",
"import": "Full Restore"
},
"s3": {
"title": "S3 Backup",
"desc": "Configure S3-compatible storage (AWS S3, Cloudflare R2, MinIO, etc.) and trigger manual backups.",
"endpoint": "API Endpoint",
"endpointHint": "e.g., https://[account_id].r2.cloudflarestorage.com",
"region": "Region",
"regionHint": "e.g., auto, us-east-1",
"bucket": "Bucket",
"accessKey": "Access Key ID",
"secretKey": "Secret Access Key",
"save": "Save Config",
"saving": "Saving...",
"backup": "Backup to S3 Now",
"backingUp": "Backing up...",
"success": "Backup successful! File: {file}",
"viewBackups": "View Backups",
"loadingBackups": "Loading...",
"backupListTitle": "S3 Backup List",
"emptyBackupList": "No backup files",
"download": "Download",
"delete": "Delete",
"confirmDelete": "Are you sure you want to delete backup {file}?",
"deleteSuccess": "Deleted successfully"
}
},
"logs": {
"title": "Operation Logs"
},
"prefixModal": {
"title": "Missing URL Prefix Detected",
"descPart1": "Detected ",
"descPart2": " comments with URL missing protocol prefix (http/https).",
"descPart3": "Add prefix during import?",
"label": "Domain Prefix (e.g. https://example.me)",
"placeholder": "Enter domain prefix",
"skip": "Skip (Don't Add)",
"confirm": "Add & Import"
},
"messages": {
"exportSuccess": "Export Success",
"exportFailed": "Export Failed",
"fileReadFailed": "File Read Failed",
"jsonParseFailed": "JSON Parse Failed",
"importConfigSuccess": "Config Imported",
"importStatsSuccess": "Stats Imported",
"importBackupSuccess": "Full Restore Success",
"importCommentsSuccess": "Comments Imported",
"prefixRequired": "Please enter domain prefix",
"importStart": "Importing: {name} (Mode: {mode})",
"fileParseSuccess": "File parsed, processing...",
"errorWithMessage": "Error: {msg}",
"parsedCommentsCount": "Parsed {count} comments",
"detectMissingPrefix": "Detected {count} URLs missing prefix, waiting for confirmation...",
"prefixAdded": "Prefix added, continuing...",
"skipPrefix": "Skipped prefix addition",
"readFileFailedLog": "Read file failed",
"importCommentsDone": "Import Done: {message}"
}
},
"comments": {
"title": "Comment Management",
"statusFilter": {
"all": "All",
"approved": "Approved",
"pending": "Pending",
"rejected": "Rejected"
},
"refresh": "Refresh",
"table": {
"author": "User",
"content": "Comment",
"path": "Path",
"status": "Status",
"actions": "Actions",
"admin": "Admin",
"time": "Time",
"ip": "IP",
"email": "Email"
},
"actions": {
"approve": "Approve",
"pending": "Pending",
"reject": "Reject",
"edit": "Edit",
"delete": "Delete",
"blockIp": "Block IP",
"blockEmail": "Block Email",
"pin": "Pin"
},
"pagination": {
"prev": "Prev",
"next": "Next",
"jumpTo": "Go to",
"page": "Page",
"confirm": "OK"
},
"confirmDelete": "Delete comment {id}?",
"confirmBlockIp": "Block IP {ip}?",
"confirmBlockEmail": "Block Email {email}?",
"successBlockIp": "IP Blocked",
"successBlockEmail": "Email Blocked",
"empty": "No Data",
"editModal": {
"title": "Edit Comment",
"name": "Nickname",
"email": "Email",
"url": "URL",
"postSlug": "Slug",
"postUrl": "Post URL",
"content": "Content",
"status": "Status",
"priority": "Priority (1=Normal, higher=Top)",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving..."
}
},
"settings": {
"title": "Settings",
"tabs": {
"comment": "Comments & Security",
"feature": "Features",
"emailNotify": "Email Notify",
"telegramNotify": "Telegram Notify",
"display": "Display"
},
"comment": {
"title": "Comment Display",
"adminEmail": "Admin Email",
"adminBadge": "Admin Badge Text (Empty for default icon)",
"adminEnabled": "Show Admin Badge",
"avatarPrefix": "Avatar Prefix (Default: https://gravatar.com/avatar)",
"securityTitle": "Security",
"requireReview": "Require Review for New Comments",
"adminKey": "Admin Key (Required for admin email comments)",
"adminKeyPlaceholder": "Enter key to set or change",
"allowedDomains": "Allowed Domains (Empty to allow all. Split by space or comma)",
"blockedIps": "Blocked IPs (Split by comma or newline)",
"blockedEmails": "Blocked Emails (Split by comma or newline)",
"save": "Save",
"saving": "Saving..."
},
"feature": {
"title": "Features",
"articleLike": "Enable Article Likes",
"articleLikeHint": "Show like button at top of comments.",
"commentLike": "Enable Comment Likes",
"commentLikeHint": "Show like button on each comment.",
"imageLightbox": "Image Lightbox",
"imageLightboxHint": "Enable fullscreen preview for images in comments.",
"placeholder": "Placeholder Text",
"placeholderHint": "Custom placeholder for comment input.",
"widgetLanguage": "Widget Language",
"widgetLanguageHint": "Language for the frontend widget.",
"save": "Save",
"saving": "Saving..."
},
"emailNotify": {
"title": "Email Notification",
"enable": "Enable Email Notify",
"smtpTitle": "1. SMTP Config",
"provider": "Provider",
"host": "SMTP Host",
"port": "SMTP Port",
"secure": "SSL Secure",
"user": "Email User",
"pass": "Password/App Token",
"qqHint": "Note: For QQ Mail, use App Token instead of password.",
"163Hint": "Note: For 163 Mail, use App Token instead of password.",
"templateTitle": "2. Template Config",
"adminTemplate": "Admin Template (HTML)",
"adminTemplateHint": "Vars: ${commentAuthor}, ${postTitle}, ${postUrl}, ${commentContent}",
"replyTemplate": "Reply Template (HTML)",
"replyTemplateHint": "Vars: ${toName}, ${replyAuthor}, ${postTitle}, ${postUrl}, ${parentComment}, ${replyContent}",
"testBtn": "Send Test Email",
"testingBtn": "Sending...",
"resetBtn": "Reset Templates",
"save": "Save Config",
"saving": "Saving..."
},
"telegramNotify": {
"title": "Telegram Notification",
"enable": "Enable Telegram Notify",
"botToken": "Bot Token",
"botTokenHint": "Get from BotFather",
"chatId": "Chat ID",
"chatIdHint": "User ID or Group ID. Use userinfobot to find.",
"webhookBtn": "Set Webhook",
"webhookSetting": "Setting...",
"testBtn": "Send Test Message",
"testingBtn": "Sending...",
"save": "Save",
"saving": "Saving..."
},
"display": {
"title": "Display Settings",
"layoutTitle": "Admin Title",
"layoutTitleHint": "Displayed in top navigation bar.",
"adminLanguage": "Admin Language",
"adminLanguageHint": "Language for the admin panel.",
"save": "Save",
"saving": "Saving..."
}
},
"common": {
"saveSuccess": "Saved Successfully",
"saveFailed": "Save Failed",
"loading": "Loading..."
}
}