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
+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": "微授权",