feat: add comprehensive i18n support across all pages

- Add i18n support to admin sidebar, breadcrumbs, and nav-footer
- Add i18n support to admin pages: system-settings, users, versions, risk-control, sessions, cloud-variables, cloud-constants
- Add i18n support to auth pages: login, register
- Add i18n support to install and profile pages
- Add i18n support to agent pages: dashboard, finance, users, apps, cards
- Replace all hard-coded Chinese text with i18n translation keys
- Add comprehensive translation keys to zh.json and en.json
- Fix date formatting to use locale-agnostic toLocaleDateString()
- Pass t function as parameter for i18n in non-component files
This commit is contained in:
2026-05-07 23:06:58 +08:00
parent f1f2a9dc9d
commit c816f4d85c
26 changed files with 1817 additions and 658 deletions
+556 -7
View File
@@ -35,7 +35,49 @@
"next": "Next",
"yes": "Yes",
"no": "No",
"optional": "Optional"
"optional": "Optional",
"select": "Select",
"type": "Type",
"reason": "Reason",
"status": "Status",
"expiresAt": "Expires At",
"createdAt": "Created At",
"batchEnable": "Batch Enable",
"batchDisable": "Batch Disable",
"batchDelete": "Batch Delete",
"save": "Save",
"search": "Search",
"upload": "Upload",
"download": "Download",
"copy": "Copy",
"show": "Show",
"hide": "Hide",
"username": "Username",
"email": "Email",
"password": "Password",
"phone": "Phone",
"submit": "Submit",
"close": "Close",
"detail": "Detail",
"viewAll": "View All",
"noData": "No Data",
"active": "Active",
"inactive": "Inactive",
"banned": "Banned",
"online": "Online",
"offline": "Offline",
"enabled": "Enabled",
"disabled": "Disabled",
"unused": "Unused",
"used": "Used",
"expired": "Expired",
"recharge": "Recharge",
"consume": "Consume",
"refund": "Refund",
"admin": "Admin",
"agent": "Agent",
"basicPlan": "Basic Plan",
"normal": "Normal"
},
"premium": {
"premium": "premium",
@@ -1386,6 +1428,71 @@
"methods": {
"manual": "Manual",
"auto": "Auto"
},
"createForm": {
"title": "Create Version",
"description": "Create a new version for the application, upload ZIP update package and configure update strategy",
"editTitle": "Edit Version",
"editDescription": "Modify version information and update strategy",
"versionConfig": "Version Configuration",
"versionConfigDesc": "Fill in basic version information and upload update file",
"selectApp": "Select Application",
"selectAppPlaceholder": "Select application",
"versionNumber": "Version Number",
"versionPlaceholder": "e.g.: 1.0.0",
"minVersion": "Minimum Version",
"minVersionPlaceholder": "e.g.: 0.9.0 (full installation required below this version)",
"versionDesc": "Version Description",
"versionDescPlaceholder": "Briefly describe the updates in this version",
"updateFile": "Update File (ZIP format)",
"dragOrClick": "Drag ZIP file here or click to upload",
"selectFile": "Select File",
"uploadAndParse": "Upload & Parse",
"fileUploaded": "File uploaded and parsed",
"fileHash": "File Hash",
"containsFiles": "Contains {count} files",
"fileList": "File List",
"fileName": "File Name",
"filePath": "Path",
"fileSize": "Size",
"fileType": "Type",
"entryFile": "Entry File",
"entryFileDesc": "Select the main program file to launch after update (optional)",
"entryFilePlaceholder": "Select entry file (optional)",
"forcedUpdate": "Force Update",
"forcedUpdateDesc": "When enabled, users must update to this version to continue using",
"autoUpdate": "Auto Update",
"autoUpdateDesc": "When enabled, the application will automatically download and install updates",
"changelog": "Changelog",
"changelogPlaceholder": "Describe the updates, bug fixes, new features in detail...",
"preview": "Preview",
"previewApp": "Application",
"previewVersion": "Version",
"previewMinVersion": "Min Version",
"previewDesc": "Description",
"previewFile": "Update File",
"previewFileCount": "File Count",
"previewEntryFile": "Entry File",
"previewForcedUpdate": "Force Update",
"previewAutoUpdate": "Auto Update",
"changelogPreview": "Changelog Preview",
"noChangelog": "No changelog",
"notUploaded": "Not uploaded",
"publishVersion": "Publish Version",
"updateVersion": "Save Changes",
"zipOnly": "Only ZIP format files are supported",
"selectZipFirst": "Please select a ZIP file first",
"uploadSuccess": "File uploaded successfully",
"uploadFailed": "Upload failed",
"selectAppRequired": "Please select an application",
"versionRequired": "Please enter version number",
"uploadZipRequired": "Please upload a ZIP file first",
"createSuccess": "Version created successfully",
"createFailed": "Failed to create version",
"updateSuccess": "Version updated successfully",
"updateFailed": "Failed to update version",
"fetchFailed": "Failed to fetch version information",
"fetchAppsFailed": "Failed to fetch application list"
}
},
"cardTypes": {
@@ -1798,6 +1905,7 @@
"description": "Description",
"application": "Application",
"status": "Status",
"stream": "Record",
"createdAt": "Created At"
},
"types": {
@@ -1831,7 +1939,8 @@
"appRequired": "Please select application",
"status": "Status"
},
"createDescription": "Add a new cloud constant"
"createDescription": "Add a new cloud constant",
"downloadFile": "Download File"
},
"cloudVariables": {
"title": "Cloud Variables",
@@ -1887,6 +1996,7 @@
"description": "Description",
"application": "Application",
"status": "Status",
"stream": "Record",
"createdAt": "Created At"
},
"types": {
@@ -1937,6 +2047,7 @@
"scope": "Scope"
},
"createDescription": "Add a new cloud variable",
"downloadFile": "Download File",
"records": {
"title": "Variable Records",
"description": "View records for variable {key}",
@@ -2041,6 +2152,25 @@
"updateFailed": "Failed to update",
"fetchFailed": "Failed to fetch cloud function"
},
"riskControl": {
"title": "Risk Control",
"description": "Manage risk control rules and ban strategies",
"columns": {
"value": "Banned Value"
}
},
"sessions": {
"title": "Sessions",
"description": "Manage online sessions and instances",
"columns": {
"instanceId": "Instance ID",
"deviceIdentifier": "Device Fingerprint",
"deviceName": "Device Name",
"username": "Username",
"appName": "Application",
"lastHeartbeat": "Last Heartbeat"
}
},
"extension": {
"title": "Extension Configuration",
"description": "Manage Webhooks and Open API keys",
@@ -2212,6 +2342,408 @@
"appVariablesDesc": "Read/write application cloud variables"
}
}
},
"systemSettings": {
"title": "System Settings",
"description": "Configure system settings",
"loadFailed": "Failed to load settings",
"saveSuccess": "Settings saved successfully",
"saveFailed": "Failed to save settings",
"saveSettings": "Save Settings",
"tabs": {
"basic": "Basic",
"security": "Security",
"backup": "Backup",
"cleanup": "Data Cleanup",
"feature": "Features",
"notification": "Notifications"
},
"basic": {
"title": "Basic Settings",
"description": "Configure website basic information",
"siteName": "Site Name",
"siteNamePlaceholder": "Enter site name",
"siteLogo": "Site Logo",
"uploadLogo": "Upload Logo",
"logoHint": "Supports JPG, PNG, SVG formats",
"remove": "Remove",
"favicon": "Site Favicon",
"uploadFavicon": "Upload Favicon",
"faviconHint": "Recommended 32x32 or 64x64 pixels ICO/PNG",
"siteFooter": "Footer Text",
"siteFooterPlaceholder": "Enter footer text"
},
"security": {
"title": "Security Settings",
"description": "Configure system security options",
"enableCaptcha": "Login Captcha",
"enableCaptchaDesc": "Require captcha verification on login",
"loginFailLockCount": "Login Failure Lock Count",
"loginFailLockCountHint": "Number of consecutive failures before account lockout",
"lockMinutes": "Lock Duration (minutes)",
"lockMinutesHint": "Duration of account lockout",
"passwordMinLength": "Minimum Password Length",
"passwordMinLengthHint": "Minimum character count for user passwords",
"sessionTimeout": "Session Timeout (hours)",
"sessionTimeoutHint": "User login session validity period"
},
"backup": {
"title": "Backup Settings",
"description": "Configure automatic database backup",
"enableBackup": "Enable Auto Backup",
"enableBackupDesc": "Automatically backup database on schedule",
"backupInterval": "Backup Interval (hours)",
"backupIntervalHint": "Hours between each backup",
"backupRetention": "Retention Days",
"backupRetentionHint": "Number of days to keep backup files",
"storageType": "Storage Location",
"storageTypePlaceholder": "Select storage location",
"storageTypeHint": "Backup file storage location, configurable in storage management",
"local": "Local Storage",
"s3": "S3 Storage",
"webdav": "WebDAV",
"ftp": "FTP",
"sftp": "SFTP"
},
"feature": {
"title": "Feature Settings",
"description": "Configure system feature toggles",
"ticketSystem": "Ticket System",
"ticketSystemDesc": "Allow users to submit support tickets",
"multiLang": "Multi-language Support",
"multiLangDesc": "Allow users to switch languages",
"defaultTheme": "Default Color Mode",
"defaultThemePlaceholder": "Select default color mode",
"defaultThemeHint": "Default color mode for new users",
"followSystem": "Follow System",
"lightMode": "Light Mode",
"darkMode": "Dark Mode"
},
"notification": {
"title": "Notification Settings",
"description": "Configure system notification options",
"enableNotification": "Enable Email Notifications",
"enableNotificationDesc": "Send email notifications when enabled",
"adminNotifyEmail": "Admin Notification Email",
"adminNotifyEmailHint": "Admin email for receiving system notifications",
"notifyEvents": "Notification Events",
"loginNotify": "Abnormal Login Notification",
"loginNotifyDesc": "Send notification when abnormal login detected",
"rechargeNotify": "Recharge Notification",
"rechargeNotifyDesc": "Send notification when user recharge succeeds",
"ticketNotify": "Ticket Notification",
"ticketNotifyDesc": "Send notification when new ticket submitted"
},
"cleanup": {
"title": "Data Cleanup",
"description": "Configure automatic cleanup rules for expired data to free database space",
"enableAutoCleanup": "Enable Auto Cleanup",
"enableAutoCleanupDesc": "Automatically clean up expired data on schedule",
"cleanupInterval": "Cleanup Interval (hours)",
"cleanupIntervalHint": "Hours between each cleanup execution",
"captchaRetention": "Captcha Retention Days",
"captchaRetentionHint": "Days to retain expired captchas",
"verifyCodeRetention": "Email/SMS Code Retention Days",
"verifyCodeRetentionHint": "Days to retain used email/SMS verification codes",
"apiUsageRetention": "API Usage Log Retention Days",
"apiUsageRetentionHint": "Days to retain API usage statistics",
"webhookLogRetention": "Webhook Log Retention Days",
"webhookLogRetentionHint": "Days to retain webhook delivery logs",
"deviceSessionRetention": "Device Session Retention Days",
"deviceSessionRetentionHint": "Days to retain expired device session records",
"saveCleanupSettings": "Save Cleanup Settings",
"runManualCleanup": "Run Cleanup Now",
"cleanupSaveSuccess": "Cleanup settings saved successfully",
"cleanupSaveFailed": "Failed to save cleanup settings",
"manualCleanupSuccess": "Manual cleanup completed",
"manualCleanupFailed": "Manual cleanup failed"
},
"upload": {
"logoSuccess": "Logo uploaded successfully",
"faviconSuccess": "Favicon uploaded successfully",
"uploadFailed": "Upload failed"
}
}
},
"auth": {
"login": {
"platformName": "Admin Panel",
"heroTitle": "Software License Management Platform",
"heroDesc": "Professional software verification and license management solution, providing comprehensive protection for your software",
"quickIntegration": "Quick Integration",
"secureReliable": "Secure & Reliable",
"dataAnalysis": "Data Analysis",
"userManagement": "User Management",
"welcomeBack": "Welcome Back",
"loginDesc": "Enter your credentials to sign in",
"username": "Username",
"usernamePlaceholder": "Enter username",
"password": "Password",
"passwordPlaceholder": "Enter password",
"forgotPassword": "Forgot password?",
"rememberMe": "Remember me",
"loginBtn": "Sign In",
"loggingIn": "Signing in...",
"noAccount": "Don't have an account?",
"registerNow": "Sign up",
"fillRequired": "Please enter username and password",
"loginSuccess": "Login successful",
"loginFailed": "Login failed, please check your username and password"
},
"register": {
"platformName": "Admin Panel",
"heroTitle": "Get Started",
"heroDesc": "Create an account and experience professional software license management",
"feature1": "Create applications for free, quick SDK integration",
"feature2": "Comprehensive user management and data analysis",
"feature3": "Flexible card license solutions",
"createAccount": "Create Account",
"registerDesc": "Fill in the information below to register",
"username": "Username",
"usernamePlaceholder": "Enter username",
"email": "Email",
"emailPlaceholder": "Enter email",
"password": "Password",
"passwordPlaceholder": "Enter password (at least 6 characters)",
"confirmPassword": "Confirm Password",
"confirmPasswordPlaceholder": "Enter password again",
"agreeTerms": "I have read and agree to the",
"termsOfService": "Terms of Service",
"and": "and",
"privacyPolicy": "Privacy Policy",
"registerBtn": "Sign Up",
"registering": "Registering...",
"hasAccount": "Already have an account?",
"loginNow": "Sign in",
"usernameRequired": "Please enter username",
"emailRequired": "Please enter email",
"passwordRequired": "Please enter password",
"passwordMinLength": "Password must be at least 6 characters",
"passwordMismatch": "Passwords do not match",
"agreeRequired": "Please agree to the terms of service",
"registerSuccess": "Registration successful, please login",
"registerFailed": "Registration failed"
}
},
"install": {
"checkingStatus": "Checking installation status...",
"wizardTitle": "System Installation Wizard",
"wizardDesc": "Welcome to the Software License Management Platform, please complete the following configuration",
"checkFailed": "Failed to check installation status",
"dbConfig": "Database Configuration",
"dbType": "Database Type",
"dbTypeSqlite": "SQLite",
"dbTypeSqliteDesc": "Lightweight, no additional service required, suitable for small deployments",
"dbTypeMysql": "MySQL",
"dbTypeMysqlDesc": "High performance, suitable for production environments",
"dbHost": "Host Address",
"dbPort": "Port",
"dbName": "Database Name",
"dbUsername": "Username",
"dbPassword": "Password",
"testConnection": "Test Connection",
"dbConnectFailed": "Database connection failed",
"dbConnectSuccess": "Database connection successful",
"securityConfig": "Security Configuration",
"jwtSecret": "JWT Secret",
"jwtSecretPlaceholder": "Leave empty to auto-generate",
"jwtSecretHint": "JWT secret is used to sign authentication tokens, please keep it safe",
"redisCache": "Redis Cache (Optional)",
"enableRedis": "Enable Redis",
"redisHost": "Host",
"redisPort": "Port",
"redisPassword": "Password",
"redisPasswordPlaceholder": "Optional",
"adminAccount": "Admin Account",
"adminUser": "Username",
"adminPass": "Password",
"adminPassPlaceholder": "At least 6 characters",
"adminPassMinLength": "Password must be at least 6 characters",
"adminEmail": "Email (Optional)",
"installComplete": "Installation Complete",
"installCompleteDesc": "The system has been successfully installed, you can now login with your admin account",
"goToLogin": "Go to Login",
"prevStep": "Previous",
"nextStep": "Next",
"installing": "Installing...",
"startInstall": "Start Installation",
"installFailed": "Installation failed",
"installSuccess": "Installation successful"
},
"profile": {
"changePassword": "Change Password",
"changePasswordDesc": "Enter your current password and new password, minimum 6 characters",
"currentPassword": "Current Password",
"currentPasswordPlaceholder": "Enter current password",
"newPassword": "New Password",
"newPasswordPlaceholder": "Enter new password",
"confirmPassword": "Confirm Password",
"confirmPasswordPlaceholder": "Enter new password again",
"cancel": "Cancel",
"confirmChange": "Confirm Change",
"basicInfo": "Basic Information",
"username": "Username",
"usernamePlaceholder": "Enter username",
"email": "Email",
"emailPlaceholder": "Enter email",
"phone": "Phone",
"phonePlaceholder": "Enter phone number",
"saveChanges": "Save Changes",
"joinedAt": "Joined at",
"apiToken": "API Token",
"apiTokenDesc": "API Token is used to call open API endpoints, please keep it safe and do not share it.",
"show": "Show",
"hide": "Hide",
"copy": "Copy",
"regenerateToken": "Regenerate",
"generateToken": "Generate Token",
"tokenRegenerated": "API Token has been regenerated",
"tokenRegenerateFailed": "Failed to regenerate",
"tokenCopied": "API Token copied to clipboard",
"recentTransactions": "Recent Transactions",
"viewAll": "View All",
"noTransactions": "No transactions yet",
"currentPlan": "Current Plan",
"basicPlan": "Basic",
"expiresAt": "Expires at",
"upgradePlan": "Upgrade Plan",
"apiCalls": "API Calls",
"storage": "Storage",
"accountStats": "Account Statistics",
"lastLogin": "Last Login",
"accountStatus": "Account Status",
"accountType": "Account Type",
"loadUserFailed": "Failed to load user information",
"fillComplete": "Please fill in all required fields",
"profileUpdateSuccess": "Profile updated successfully",
"profileUpdateFailed": "Update failed",
"currentPasswordRequired": "Please enter current password",
"newPasswordRequired": "Please enter new password",
"passwordMismatch": "Passwords do not match",
"passwordMinLength": "Password must be at least 6 characters",
"passwordChangeSuccess": "Password changed successfully",
"passwordChangeFailed": "Failed to change password",
"selectImageFile": "Please select an image file",
"imageSizeExceeded": "Image size cannot exceed 2MB",
"avatarUpdateSuccess": "Avatar updated successfully",
"avatarUpdateFailed": "Failed to upload avatar",
"roleAdmin": "Admin",
"roleAgent": "Agent",
"statusActive": "Active",
"statusInactive": "Inactive",
"statusBanned": "Banned",
"txRecharge": "Recharge",
"txConsume": "Consume",
"txRefund": "Refund"
},
"agent": {
"dashboard": {
"title": "Dashboard",
"welcomeBack": "Welcome back, here's your business overview",
"loadStatsFailed": "Failed to load statistics",
"authorizedApps": "Authorized Apps",
"authorizedAppsCount": "Number of authorized applications",
"totalCards": "Total Cards",
"todayGenerated": "Today",
"totalUsers": "Total Users",
"totalUsersDesc": "Cumulative registered users",
"totalRevenue": "Total Revenue",
"todayRevenue": "Today",
"quickActions": "Quick Actions",
"generateCards": "Generate Cards",
"appManagement": "App Management",
"userManagement": "User Management",
"financeManagement": "Finance Management",
"recentCards": "Recently Generated Cards",
"noCards": "No card records yet",
"unused": "Unused",
"used": "Used"
},
"finance": {
"title": "Finance Management",
"description": "View your account balance and transaction records",
"loadFailed": "Failed to load financial data",
"accountBalance": "Account Balance",
"transactionRecords": "Transaction Records",
"noTransactions": "No transactions yet",
"balance": "Balance",
"recharge": "Recharge",
"consume": "Consume",
"refund": "Refund"
},
"users": {
"title": "User Management",
"description": "Manage users under your applications",
"loadFailed": "Failed to load user list",
"noUsers": "No user records yet",
"username": "Username",
"email": "Email",
"status": "Status",
"registerTime": "Register Time",
"lastLogin": "Last Login",
"active": "Active"
},
"apps": {
"title": "App Management",
"description": "Manage your authorized applications",
"loadFailed": "Failed to load app list",
"noApps": "No authorized apps yet",
"noDescription": "No description",
"cardTypesCount": "card types",
"view": "View",
"detail": {
"loadFailed": "Failed to load app details",
"noDescription": "No description",
"availableCardTypes": "Available Card Types",
"cardTypeDesc": "You can generate the following card types for this application",
"noCardTypes": "No available card types",
"duration": "Duration",
"days": "days",
"price": "Price",
"generateCards": "Generate Cards",
"notFound": "Application not found or access denied"
}
},
"cards": {
"title": "Card Management",
"description": "Manage your generated cards",
"loadFailed": "Failed to load card list",
"generateCards": "Generate Cards",
"noCards": "No card records yet",
"cardCode": "Card Code",
"app": "Application",
"cardType": "Card Type",
"status": "Status",
"createTime": "Create Time",
"useTime": "Use Time",
"unused": "Unused",
"used": "Used",
"expired": "Expired",
"disabled": "Disabled",
"create": {
"title": "Generate Cards",
"description": "Generate cards for authorized applications",
"loadFailed": "Failed to load data",
"selectApp": "Please select an application",
"selectCardType": "Please select a card type",
"quantityRange": "Quantity must be between 1 and 100",
"generateSuccess": "Successfully generated {count} cards",
"copiedToClipboard": "Cards copied to clipboard",
"generateFailed": "Generation failed",
"generateSettings": "Generation Settings",
"settingsDesc": "Select application and card type, set generation quantity",
"selectAppLabel": "Select Application",
"selectAppPlaceholder": "Please select an application",
"selectCardTypeLabel": "Select Card Type",
"selectCardTypePlaceholder": "Please select a card type",
"quantity": "Quantity",
"quantityPlaceholder": "Enter quantity",
"quantityHint": "Maximum 100 cards per generation",
"estimatedCost": "Estimated Cost",
"cancel": "Cancel",
"generating": "Generating...",
"generateBtn": "Generate Cards"
}
}
},
"pricing": {
@@ -2294,6 +2826,7 @@
"advancedFeatures": "Advanced",
"contentManagement": "Content",
"systemManagement": "System",
"financeGroup": "Finance",
"console": "Console",
"applications": "Applications",
"cardTypes": "Card Types",
@@ -2303,7 +2836,8 @@
"users": "Users",
"devices": "Devices",
"sessions": "Sessions",
"agentApps": "Agent Apps",
"agents": "Agents",
"agentApps": "Authorizations",
"finance": "Finance",
"logs": "Logs",
"tickets": "Tickets",
@@ -2317,17 +2851,32 @@
"docCategories": "Doc Categories",
"docList": "Documents",
"packages": "Packages",
"systemSettings": "System Settings",
"paymentChannels": "Payment Channels",
"emailSettings": "Email Settings",
"smsSettings": "SMS Settings",
"storageConfigs": "Storage",
"basicSettings": "Basic Settings",
"emailSettings": "Email Service",
"smsSettings": "SMS Service",
"paymentSettings": "Payment Settings",
"security": "Security Settings",
"profile": "Profile",
"adminDashboard": "Admin Dashboard",
"agentDashboard": "Agent Dashboard",
"logout": "Logout",
"login": "Login",
"register": "Register",
"navigation": "Navigation"
"navigation": "Navigation",
"create": "Create",
"edit": "Edit",
"detail": "Detail",
"recharge": "Recharge",
"request": "Request Auth",
"invite": "Invite Auth",
"records": "Records",
"basicPlan": "Basic Plan",
"normal": "Normal",
"storage": "Storage",
"admin": "Admin",
"agent": "Agent"
},
"footer": {
"brand": "Weishouquan",
+557 -8
View File
@@ -35,7 +35,49 @@
"next": "下一页",
"yes": "是",
"no": "否",
"optional": "可选"
"optional": "可选",
"select": "选择",
"type": "类型",
"reason": "原因",
"status": "状态",
"expiresAt": "过期时间",
"createdAt": "创建时间",
"batchEnable": "批量启用",
"batchDisable": "批量禁用",
"batchDelete": "批量删除",
"save": "保存",
"search": "搜索",
"upload": "上传",
"download": "下载",
"copy": "复制",
"show": "显示",
"hide": "隐藏",
"username": "用户名",
"email": "邮箱",
"password": "密码",
"phone": "手机号",
"submit": "提交",
"close": "关闭",
"detail": "详情",
"viewAll": "查看全部",
"noData": "暂无数据",
"active": "正常",
"inactive": "未激活",
"banned": "已封禁",
"online": "在线",
"offline": "离线",
"enabled": "已启用",
"disabled": "已禁用",
"unused": "未使用",
"used": "已使用",
"expired": "已过期",
"recharge": "充值",
"consume": "消费",
"refund": "退款",
"admin": "管理员",
"agent": "代理商",
"basicPlan": "基础版",
"normal": "正常"
},
"premium": {
"premium": "会员计划",
@@ -1353,6 +1395,71 @@
"methods": {
"manual": "手动更新",
"auto": "自动更新"
},
"createForm": {
"title": "创建版本",
"description": "为应用创建新的版本,上传ZIP更新包并配置更新策略",
"editTitle": "编辑版本",
"editDescription": "修改版本信息和更新策略",
"versionConfig": "版本配置",
"versionConfigDesc": "填写版本的基本信息和上传更新文件",
"selectApp": "选择应用",
"selectAppPlaceholder": "选择应用",
"versionNumber": "版本号",
"versionPlaceholder": "例如: 1.0.0",
"minVersion": "最低版本",
"minVersionPlaceholder": "例如: 0.9.0 (低于此版本需要完整安装)",
"versionDesc": "版本描述",
"versionDescPlaceholder": "简短描述此版本的更新内容",
"updateFile": "更新文件 (ZIP格式)",
"dragOrClick": "拖拽ZIP文件到此处或点击上传",
"selectFile": "选择文件",
"uploadAndParse": "上传解析",
"fileUploaded": "文件已上传并解析",
"fileHash": "文件哈希",
"containsFiles": "包含 {count} 个文件",
"fileList": "文件列表",
"fileName": "文件名",
"filePath": "路径",
"fileSize": "大小",
"fileType": "类型",
"entryFile": "入口文件",
"entryFileDesc": "选择更新完成后要启动的主程序文件(可选)",
"entryFilePlaceholder": "选择入口文件(可选)",
"forcedUpdate": "强制更新",
"forcedUpdateDesc": "启用后用户必须更新到此版本才能继续使用",
"autoUpdate": "自动更新",
"autoUpdateDesc": "启用后应用将自动下载并安装更新",
"changelog": "更新日志",
"changelogPlaceholder": "详细描述此版本的更新内容、修复的问题、新增的功能等...",
"preview": "预览",
"previewApp": "所属应用",
"previewVersion": "版本号",
"previewMinVersion": "最低版本",
"previewDesc": "版本描述",
"previewFile": "更新文件",
"previewFileCount": "文件数量",
"previewEntryFile": "入口文件",
"previewForcedUpdate": "强制更新",
"previewAutoUpdate": "自动更新",
"changelogPreview": "更新日志预览",
"noChangelog": "暂无更新日志",
"notUploaded": "未上传",
"publishVersion": "发布版本",
"updateVersion": "保存修改",
"zipOnly": "只支持ZIP格式文件",
"selectZipFirst": "请先选择ZIP文件",
"uploadSuccess": "文件上传成功",
"uploadFailed": "上传失败",
"selectAppRequired": "请选择应用",
"versionRequired": "请输入版本号",
"uploadZipRequired": "请先上传ZIP文件",
"createSuccess": "版本创建成功",
"createFailed": "创建失败",
"updateSuccess": "版本更新成功",
"updateFailed": "更新失败",
"fetchFailed": "获取版本信息失败",
"fetchAppsFailed": "获取应用列表失败"
}
},
"cardTypes": {
@@ -1788,6 +1895,7 @@
"description": "描述",
"application": "应用",
"status": "状态",
"stream": "记录",
"createdAt": "创建时间"
},
"types": {
@@ -1821,7 +1929,8 @@
"appRequired": "请选择应用",
"status": "启用状态"
},
"createDescription": "添加新的云端常量"
"createDescription": "添加新的云端常量",
"downloadFile": "下载文件"
},
"cloudVariables": {
"title": "云端变量",
@@ -1876,6 +1985,7 @@
"description": "描述",
"application": "应用",
"status": "状态",
"stream": "记录",
"createdAt": "创建时间"
},
"types": {
@@ -1926,6 +2036,7 @@
"scope": "作用域"
},
"createDescription": "添加新的云端变量",
"downloadFile": "下载文件",
"records": {
"title": "变量记录",
"description": "查看变量 {key} 的记录数据",
@@ -2030,6 +2141,25 @@
"updateFailed": "更新失败",
"fetchFailed": "获取云端函数失败"
},
"riskControl": {
"title": "风控管理",
"description": "管理风控规则和封禁策略",
"columns": {
"value": "封禁值"
}
},
"sessions": {
"title": "在线实例",
"description": "管理在线会话和实例",
"columns": {
"instanceId": "实例标识",
"deviceIdentifier": "设备指纹",
"deviceName": "设备名称",
"username": "所属用户",
"appName": "所属应用",
"lastHeartbeat": "最后心跳"
}
},
"extension": {
"title": "扩展配置",
"description": "管理Webhook和开放API密钥",
@@ -2201,6 +2331,408 @@
"appVariablesDesc": "读写应用云端变量"
}
}
},
"systemSettings": {
"title": "系统设置",
"description": "配置系统各项设置",
"loadFailed": "加载设置失败",
"saveSuccess": "保存成功",
"saveFailed": "保存失败",
"saveSettings": "保存设置",
"tabs": {
"basic": "基本设置",
"security": "安全设置",
"backup": "备份设置",
"cleanup": "数据清理",
"feature": "功能设置",
"notification": "通知设置"
},
"basic": {
"title": "基本设置",
"description": "配置网站基本信息",
"siteName": "网站名称",
"siteNamePlaceholder": "请输入网站名称",
"siteLogo": "网站Logo",
"uploadLogo": "上传Logo",
"logoHint": "支持 JPG、PNG、SVG 格式",
"remove": "移除",
"favicon": "网站图标 (Favicon)",
"uploadFavicon": "上传图标",
"faviconHint": "推荐 32x32 或 64x64 像素的 ICO/PNG",
"siteFooter": "页脚信息",
"siteFooterPlaceholder": "请输入页脚信息"
},
"security": {
"title": "安全设置",
"description": "配置系统安全相关选项",
"enableCaptcha": "登录验证码",
"enableCaptchaDesc": "启用后登录时需要输入验证码",
"loginFailLockCount": "登录失败锁定次数",
"loginFailLockCountHint": "连续失败多少次后锁定账户",
"lockMinutes": "锁定时长(分钟)",
"lockMinutesHint": "账户锁定持续时间",
"passwordMinLength": "密码最小长度",
"passwordMinLengthHint": "用户密码最小字符数",
"sessionTimeout": "会话超时(小时)",
"sessionTimeoutHint": "用户登录会话有效期"
},
"backup": {
"title": "备份设置",
"description": "配置数据库自动备份",
"enableBackup": "启用自动备份",
"enableBackupDesc": "定时自动备份数据库",
"backupInterval": "备份间隔(小时)",
"backupIntervalHint": "每隔多少小时备份一次",
"backupRetention": "保留天数",
"backupRetentionHint": "备份文件保留多少天",
"storageType": "存储位置",
"storageTypePlaceholder": "选择存储位置",
"storageTypeHint": "备份文件存储位置,可在存储管理中配置",
"local": "本地存储",
"s3": "S3存储",
"webdav": "WebDAV",
"ftp": "FTP",
"sftp": "SFTP"
},
"feature": {
"title": "功能设置",
"description": "配置系统功能开关",
"ticketSystem": "工单系统",
"ticketSystemDesc": "启用后用户可以提交工单",
"multiLang": "多语言支持",
"multiLangDesc": "启用后用户可以切换语言",
"defaultTheme": "默认颜色模式",
"defaultThemePlaceholder": "选择默认颜色模式",
"defaultThemeHint": "新用户默认的颜色模式",
"followSystem": "跟随系统",
"lightMode": "浅色模式",
"darkMode": "深色模式"
},
"notification": {
"title": "通知设置",
"description": "配置系统通知选项",
"enableNotification": "启用邮件通知",
"enableNotificationDesc": "启用后系统将发送邮件通知",
"adminNotifyEmail": "管理员通知邮箱",
"adminNotifyEmailHint": "接收系统通知的管理员邮箱",
"notifyEvents": "通知事件",
"loginNotify": "异常登录通知",
"loginNotifyDesc": "检测到异常登录时发送通知",
"rechargeNotify": "充值通知",
"rechargeNotifyDesc": "用户充值成功时发送通知",
"ticketNotify": "工单通知",
"ticketNotifyDesc": "新工单提交时发送通知"
},
"cleanup": {
"title": "数据清理",
"description": "配置过期数据自动清理规则,释放数据库空间",
"enableAutoCleanup": "启用自动清理",
"enableAutoCleanupDesc": "定时自动清理过期数据",
"cleanupInterval": "清理间隔(小时)",
"cleanupIntervalHint": "每隔多少小时执行一次清理",
"captchaRetention": "验证码保留天数",
"captchaRetentionHint": "图形验证码过期后保留天数",
"verifyCodeRetention": "邮箱/短信验证码保留天数",
"verifyCodeRetentionHint": "已使用的邮箱/短信验证码保留天数",
"apiUsageRetention": "API调用日志保留天数",
"apiUsageRetentionHint": "API调用统计记录保留天数",
"webhookLogRetention": "Webhook日志保留天数",
"webhookLogRetentionHint": "Webhook发送日志保留天数",
"deviceSessionRetention": "设备会话保留天数",
"deviceSessionRetentionHint": "过期的设备会话记录保留天数",
"saveCleanupSettings": "保存清理设置",
"runManualCleanup": "立即执行清理",
"cleanupSaveSuccess": "清理设置保存成功",
"cleanupSaveFailed": "保存清理设置失败",
"manualCleanupSuccess": "手动清理完成",
"manualCleanupFailed": "手动清理失败"
},
"upload": {
"logoSuccess": "Logo上传成功",
"faviconSuccess": "图标上传成功",
"uploadFailed": "上传失败"
}
}
},
"auth": {
"login": {
"platformName": "管理平台",
"heroTitle": "软件授权管理平台",
"heroDesc": "专业的软件验证与授权管理解决方案,为您的软件提供全方位的保护",
"quickIntegration": "快速集成",
"secureReliable": "安全可靠",
"dataAnalysis": "数据分析",
"userManagement": "用户管理",
"welcomeBack": "欢迎回来",
"loginDesc": "请输入您的账号信息登录系统",
"username": "用户名",
"usernamePlaceholder": "请输入用户名",
"password": "密码",
"passwordPlaceholder": "请输入密码",
"forgotPassword": "忘记密码?",
"rememberMe": "记住我",
"loginBtn": "登录",
"loggingIn": "登录中...",
"noAccount": "还没有账号?",
"registerNow": "立即注册",
"fillRequired": "请填写用户名和密码",
"loginSuccess": "登录成功",
"loginFailed": "登录失败,请检查用户名和密码"
},
"register": {
"platformName": "管理平台",
"heroTitle": "开始使用",
"heroDesc": "创建账号,立即体验专业的软件授权管理服务",
"feature1": "免费创建应用,快速集成 SDK",
"feature2": "完善的用户管理和数据分析",
"feature3": "灵活的卡密授权方案",
"createAccount": "创建账号",
"registerDesc": "填写以下信息完成注册",
"username": "用户名",
"usernamePlaceholder": "请输入用户名",
"email": "邮箱",
"emailPlaceholder": "请输入邮箱",
"password": "密码",
"passwordPlaceholder": "请输入密码(至少6位)",
"confirmPassword": "确认密码",
"confirmPasswordPlaceholder": "请再次输入密码",
"agreeTerms": "我已阅读并同意",
"termsOfService": "服务条款",
"and": "和",
"privacyPolicy": "隐私政策",
"registerBtn": "注册",
"registering": "注册中...",
"hasAccount": "已有账号?",
"loginNow": "立即登录",
"usernameRequired": "请输入用户名",
"emailRequired": "请输入邮箱",
"passwordRequired": "请输入密码",
"passwordMinLength": "密码长度至少6位",
"passwordMismatch": "两次输入的密码不一致",
"agreeRequired": "请阅读并同意服务条款",
"registerSuccess": "注册成功,请登录",
"registerFailed": "注册失败"
}
},
"install": {
"checkingStatus": "检查安装状态...",
"wizardTitle": "系统安装向导",
"wizardDesc": "欢迎使用软件授权管理平台,请完成以下配置",
"checkFailed": "检查安装状态失败",
"dbConfig": "数据库配置",
"dbType": "数据库类型",
"dbTypeSqlite": "SQLite",
"dbTypeSqliteDesc": "轻量级,无需额外服务,适合小型部署",
"dbTypeMysql": "MySQL",
"dbTypeMysqlDesc": "高性能,适合生产环境",
"dbHost": "主机地址",
"dbPort": "端口",
"dbName": "数据库名",
"dbUsername": "用户名",
"dbPassword": "密码",
"testConnection": "测试连接",
"dbConnectFailed": "数据库连接失败",
"dbConnectSuccess": "数据库连接成功",
"securityConfig": "安全配置",
"jwtSecret": "JWT 密钥",
"jwtSecretPlaceholder": "留空则自动生成",
"jwtSecretHint": "JWT 密钥用于签名认证令牌,请妥善保管",
"redisCache": "Redis 缓存(可选)",
"enableRedis": "启用 Redis",
"redisHost": "主机",
"redisPort": "端口",
"redisPassword": "密码",
"redisPasswordPlaceholder": "可选",
"adminAccount": "管理员账号",
"adminUser": "用户名",
"adminPass": "密码",
"adminPassPlaceholder": "至少6位",
"adminPassMinLength": "密码长度至少6位",
"adminEmail": "邮箱(可选)",
"installComplete": "安装完成",
"installCompleteDesc": "系统已成功安装,您现在可以使用管理员账号登录",
"goToLogin": "前往登录",
"prevStep": "上一步",
"nextStep": "下一步",
"installing": "安装中...",
"startInstall": "开始安装",
"installFailed": "安装失败",
"installSuccess": "安装成功"
},
"profile": {
"changePassword": "修改密码",
"changePasswordDesc": "请输入当前密码和新密码,密码长度至少6位",
"currentPassword": "当前密码",
"currentPasswordPlaceholder": "请输入当前密码",
"newPassword": "新密码",
"newPasswordPlaceholder": "请输入新密码",
"confirmPassword": "确认密码",
"confirmPasswordPlaceholder": "请再次输入新密码",
"cancel": "取消",
"confirmChange": "确认修改",
"basicInfo": "基本信息",
"username": "用户名",
"usernamePlaceholder": "请输入用户名",
"email": "邮箱",
"emailPlaceholder": "请输入邮箱",
"phone": "手机号",
"phonePlaceholder": "请输入手机号",
"saveChanges": "保存修改",
"joinedAt": "加入于",
"apiToken": "API Token",
"apiTokenDesc": "API Token 用于调用开放 API 接口,请妥善保管,不要泄露给他人。",
"show": "显示",
"hide": "隐藏",
"copy": "复制",
"regenerateToken": "重新生成",
"generateToken": "生成 Token",
"tokenRegenerated": "API Token 已重新生成",
"tokenRegenerateFailed": "重新生成失败",
"tokenCopied": "API Token 已复制到剪贴板",
"recentTransactions": "最近交易",
"viewAll": "查看全部",
"noTransactions": "暂无交易记录",
"currentPlan": "当前套餐",
"basicPlan": "基础版",
"expiresAt": "有效期至",
"upgradePlan": "升级套餐",
"apiCalls": "API 调用",
"storage": "存储空间",
"accountStats": "账户统计",
"lastLogin": "上次登录",
"accountStatus": "账户状态",
"accountType": "账户类型",
"loadUserFailed": "获取用户信息失败",
"fillComplete": "请填写完整信息",
"profileUpdateSuccess": "个人信息更新成功",
"profileUpdateFailed": "更新失败",
"currentPasswordRequired": "请输入当前密码",
"newPasswordRequired": "请输入新密码",
"passwordMismatch": "两次输入的密码不一致",
"passwordMinLength": "密码长度至少6位",
"passwordChangeSuccess": "密码修改成功",
"passwordChangeFailed": "修改密码失败",
"selectImageFile": "请选择图片文件",
"imageSizeExceeded": "图片大小不能超过2MB",
"avatarUpdateSuccess": "头像更新成功",
"avatarUpdateFailed": "上传头像失败",
"roleAdmin": "管理员",
"roleAgent": "代理商",
"statusActive": "正常",
"statusInactive": "未激活",
"statusBanned": "已封禁",
"txRecharge": "充值",
"txConsume": "消费",
"txRefund": "退款"
},
"agent": {
"dashboard": {
"title": "控制台",
"welcomeBack": "欢迎回来,查看您的业务概况",
"loadStatsFailed": "获取统计数据失败",
"authorizedApps": "授权应用",
"authorizedAppsCount": "已授权的应用数量",
"totalCards": "卡密总数",
"todayGenerated": "今日生成",
"totalUsers": "用户总数",
"totalUsersDesc": "累计注册用户",
"totalRevenue": "累计收入",
"todayRevenue": "今日",
"quickActions": "快捷操作",
"generateCards": "生成卡密",
"appManagement": "应用管理",
"userManagement": "用户管理",
"financeManagement": "财务管理",
"recentCards": "最近生成卡密",
"noCards": "暂无卡密记录",
"unused": "未使用",
"used": "已使用"
},
"finance": {
"title": "财务管理",
"description": "查看您的账户余额和交易记录",
"loadFailed": "获取财务数据失败",
"accountBalance": "账户余额",
"transactionRecords": "交易记录",
"noTransactions": "暂无交易记录",
"balance": "余额",
"recharge": "充值",
"consume": "消费",
"refund": "退款"
},
"users": {
"title": "用户管理",
"description": "管理您应用下的用户",
"loadFailed": "获取用户列表失败",
"noUsers": "暂无用户记录",
"username": "用户名",
"email": "邮箱",
"status": "状态",
"registerTime": "注册时间",
"lastLogin": "最后登录",
"active": "正常"
},
"apps": {
"title": "应用管理",
"description": "管理您授权的应用",
"loadFailed": "获取应用列表失败",
"noApps": "暂无授权应用",
"noDescription": "暂无描述",
"cardTypesCount": "种卡类",
"view": "查看",
"detail": {
"loadFailed": "获取应用详情失败",
"noDescription": "暂无描述",
"availableCardTypes": "可用卡类",
"cardTypeDesc": "您可以为此应用生成以下类型的卡密",
"noCardTypes": "暂无可用卡类",
"duration": "时长",
"days": "天",
"price": "价格",
"generateCards": "生成卡密",
"notFound": "应用不存在或无权访问"
}
},
"cards": {
"title": "卡密管理",
"description": "管理您生成的卡密",
"loadFailed": "获取卡密列表失败",
"generateCards": "生成卡密",
"noCards": "暂无卡密记录",
"cardCode": "卡密",
"app": "应用",
"cardType": "卡类",
"status": "状态",
"createTime": "创建时间",
"useTime": "使用时间",
"unused": "未使用",
"used": "已使用",
"expired": "已过期",
"disabled": "已禁用",
"create": {
"title": "生成卡密",
"description": "为授权应用生成卡密",
"loadFailed": "获取数据失败",
"selectApp": "请选择应用",
"selectCardType": "请选择卡类",
"quantityRange": "生成数量需要在 1-100 之间",
"generateSuccess": "成功生成 {count} 张卡密",
"copiedToClipboard": "卡密已复制到剪贴板",
"generateFailed": "生成失败",
"generateSettings": "生成设置",
"settingsDesc": "选择应用和卡类,设置生成数量",
"selectAppLabel": "选择应用",
"selectAppPlaceholder": "请选择应用",
"selectCardTypeLabel": "选择卡类",
"selectCardTypePlaceholder": "请选择卡类",
"quantity": "生成数量",
"quantityPlaceholder": "请输入生成数量",
"quantityHint": "单次最多生成 100 张卡密",
"estimatedCost": "预计费用",
"cancel": "取消",
"generating": "生成中...",
"generateBtn": "生成卡密"
}
}
},
"pricing": {
@@ -2283,6 +2815,7 @@
"advancedFeatures": "高级功能",
"contentManagement": "内容管理",
"systemManagement": "系统管理",
"financeGroup": "财务",
"console": "控制台",
"applications": "应用管理",
"cardTypes": "卡类管理",
@@ -2292,7 +2825,8 @@
"users": "用户管理",
"devices": "设备管理",
"sessions": "在线实例",
"agentApps": "代理授权",
"agents": "代理管理",
"agentApps": "授权管理",
"finance": "财务管理",
"logs": "日志记录",
"tickets": "工单系统",
@@ -2306,17 +2840,32 @@
"docCategories": "文档分类",
"docList": "文档列表",
"packages": "套餐管理",
"systemSettings": "系统设置",
"paymentChannels": "支付渠道",
"emailSettings": "邮箱配置",
"smsSettings": "短信配置",
"storageConfigs": "存储管理",
"basicSettings": "基本设置",
"emailSettings": "邮件服务",
"smsSettings": "短信服务",
"paymentSettings": "支付配置",
"security": "安全设置",
"profile": "个人中心",
"adminDashboard": "管理后台",
"agentDashboard": "代理后台",
"agentDashboard": "代理后台",
"logout": "退出登录",
"login": "登录",
"register": "注册",
"navigation": "导航"
"navigation": "导航",
"create": "创建",
"edit": "编辑",
"detail": "详情",
"recharge": "充值",
"request": "申请授权",
"invite": "邀请授权",
"records": "记录",
"basicPlan": "基础版",
"normal": "正常",
"storage": "存储",
"admin": "管理员",
"agent": "代理商"
},
"footer": {
"brand": "微授权",