- 在数据管理页面添加“查看备份”按钮,用于打开备份列表弹窗 - 新增 S3BackupModal 组件,展示备份文件列表,支持下载和删除操作 - 扩展 S3 工具类,支持列出、获取和删除 S3 对象 - 新增后端 API 接口:获取备份列表、删除备份、下载备份文件 - 为所有支持的语言添加相应的国际化文本
328 lines
10 KiB
JSON
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..."
|
|
}
|
|
} |