Files
SecScore/src/i18n/locales/zh-CN.json
T

981 lines
39 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"next": "下一步",
"prev": "上一步",
"finish": "完成",
"cancel": "取消",
"save": "保存",
"loading": "加载中...",
"confirm": "确认",
"success": "成功",
"error": "错误",
"delete": "删除",
"edit": "编辑",
"add": "添加",
"search": "搜索",
"clear": "清空",
"close": "关闭",
"yes": "是",
"no": "否",
"submit": "提交",
"reset": "重置",
"import": "导入",
"export": "导出",
"create": "创建",
"update": "更新",
"refresh": "刷新",
"view": "查看",
"name": "姓名",
"status": "状态",
"operation": "操作",
"description": "描述",
"total": "共 {{count}} 条",
"noData": "暂无数据",
"pleaseSelect": "请选择",
"pleaseEnter": "请输入",
"readOnly": "当前为只读权限",
"none": "无",
"more": "更多"
},
"oobe": {
"title": "欢迎使用 SecScore",
"subtitle": "教育积分管理专家",
"step": "第 {{current}}/{{total}} 步",
"skip": "跳过",
"steps": {
"entry": {
"title": "开始配置",
"description": "请选择接下来要进行的操作",
"enterOobe": "进入OOBE",
"connectPostgresAutoSync": "连接PostgreSQL自动同步",
"skipDirect": "跳过OOBE,直接进入"
},
"postgresql": {
"title": "连接 PostgreSQL",
"description": "输入 PostgreSQL 连接字符串,系统将自动连接并同步后进入应用",
"connectionPlaceholder": "postgresql://user:password@host:port/database?sslmode=require",
"autoSyncAndEnter": "连接并自动同步后进入"
},
"language": {
"title": "选择语言",
"description": "请选择您偏好的界面语言"
},
"theme": {
"title": "设置主题",
"description": "选择您喜欢的界面外观",
"mode": "模式",
"lightMode": "浅色",
"darkMode": "深色",
"primaryColor": "主色",
"backgroundGradient": "背景渐变"
},
"password": {
"title": "设置密码",
"description": "设置登录密码以保护您的数据(可选)",
"adminPassword": "管理密码",
"adminPasswordHint": "可管理所有功能,6位数字",
"pointsPassword": "积分密码",
"pointsPasswordHint": "仅可操作积分,6位数字",
"passwordPlaceholder": "请输入6位数字",
"hint": "留空则不设置密码,之后可在设置中配置"
},
"students": {
"title": "导入名单",
"description": "添加学生名单以便开始积分管理",
"import": "导入名单",
"manual": "手动添加",
"importHint": "支持 Excel (.xlsx) 或 JSON 文件",
"manualHint": "支持粘贴多行文本,一行一个姓名",
"dragDrop": "拖拽文件到此处,或点击选择",
"supportedFormats": "支持 .xlsx, .json 格式",
"studentName": "学生姓名",
"addStudent": "添加学生",
"noStudents": "暂无学生,请添加或导入",
"studentCount": "已添加 {{count}} 名学生",
"studentExists": "学生已存在",
"importSuccess": "成功导入 {{count}} 名学生",
"noNewStudents": "没有新学生可导入",
"parseFailed": "文件解析失败",
"unsupportedFormat": "不支持的文件格式"
},
"reasons": {
"title": "设置理由",
"description": "添加常用的积分变动理由",
"addReason": "添加理由",
"reasonName": "理由名称",
"points": "积分",
"positive": "加分",
"negative": "扣分",
"noReasons": "暂无理由,请添加常用理由",
"reasonCount": "已添加 {{count}} 个理由",
"reasonExists": "理由已存在"
},
"start": {
"title": "准备就绪",
"description": "一切准备就绪,开始使用 SecScore 吧!",
"features": {
"score": "轻松管理学生积分",
"history": "完整的积分变动历史",
"settlement": "支持结算与归档"
},
"startButton": "开始使用"
}
}
},
"settings": {
"title": "系统设置",
"tabs": {
"appearance": "外观",
"security": "安全",
"account": "账户",
"database": "数据库连接",
"dataManagement": "数据管理",
"urlProtocol": "URL 链接",
"about": "关于"
},
"language": "语言",
"languageHint": "选择界面显示语言",
"fontFamily": "全局字体",
"fontFamilyHint": "选择应用界面的字体(需要刷新页面以完全生效)",
"theme": "主题",
"password": "设置密码",
"themeMode": "模式",
"lightMode": "浅色",
"darkMode": "深色",
"primaryColor": "主色",
"backgroundGradient": "背景渐变",
"searchKeyboard": {
"title": "搜索小键盘",
"hint": "选择搜索框下方弹出的小键盘布局",
"disableToggle": "禁用搜索小键盘",
"disableHint": "开启后,搜索框下方不再弹出小键盘",
"options": {
"qwerty26": "26 键(QWERTY",
"t9": "9 键(T9"
}
},
"interfaceZoom": "界面缩放",
"zoomOptions": {
"small70": "小 (70%)",
"default100": "默认 (100%)",
"large150": "大 (150%)"
},
"general": {
"saved": "已保存",
"saveFailed": "保存失败"
},
"zoomHint": "调节应用界面的整体大小",
"mobile": {
"navigationTitle": "页面入口",
"bottomNav": {
"label": "底部导航功能",
"hint": "可选择要出现在手机底部导航的功能。底栏最多展示 4 项,其余会自动收纳到“更多”。"
},
"dragHint": "拖动可调整顺序。前 4 项显示在底栏,其余显示在“更多”。",
"dropHere": "松手后放到这里",
"bottomSection": "底栏(最多 4 个)",
"moreSection": "更多",
"moveToMore": "移到更多",
"moveToBottom": "移到底栏"
},
"zoomUpdated": "界面缩放已更新",
"updateFailed": "更新失败",
"security": {
"title": "密码保护系统",
"adminPassword": "管理密码",
"pointsPassword": "积分密码",
"recoveryString": "找回字符串",
"set": "已设置",
"notSet": "未设置",
"generated": "已生成",
"notGenerated": "未生成",
"enterPassword": "输入6位数字(留空则不修改)",
"adminPasswordPlaceholder": "输入6位数字管理密码(留空则不修改)",
"pointsPasswordPlaceholder": "输入6位数字积分密码(留空则不修改)",
"recoveryPlaceholder": "输入找回字符串",
"savePassword": "保存密码",
"savePasswords": "保存密码",
"generateRecovery": "生成找回字符串",
"clearAllPasswords": "清空所有密码",
"recoveryReset": "找回字符串重置",
"enterRecovery": "输入找回字符串",
"resetPassword": "重置密码",
"resetHint": "重置会清空管理/积分密码,并生成新的找回字符串。",
"confirmClear": "确认清空所有密码?",
"clearHint": "清空后将关闭保护(无密码时默认视为管理权限)。",
"saved": "密码已更新",
"saveFailed": "更新失败",
"generateFailed": "生成失败",
"resetFailed": "重置失败",
"cleared": "已清空",
"clearFailed": "清空失败",
"passwordClearedNewRecovery": "密码已清空,新的找回字符串",
"newRecoveryString": "新的找回字符串(请保存)"
},
"account": {
"title": "SECTL Auth 账户",
"notLoggedIn": "尚未登录 SECTL Auth 账户",
"oauthHint": "使用 SECTL Auth 账号登录,享受统一认证和远程退登功能",
"loginButton": "使用 SECTL Auth 登录",
"loginSuccess": "登录成功",
"logout": "退出登录",
"userId": "用户ID",
"permission": "权限等级"
},
"database": {
"title": "数据库连接",
"currentStatus": "当前数据库状态",
"sqliteLocal": "SQLite 本地数据库",
"postgresqlRemote": "PostgreSQL 远程数据库",
"connected": "已连接",
"disconnected": "未连接",
"postgresqlConnection": "PostgreSQL 远程连接",
"connectionHint": "输入 PostgreSQL 连接字符串以连接远程数据库,支持多端同步操作。",
"testConnection": "测试连接",
"switchToPostgreSQL": "切换到 PostgreSQL",
"switchToSQLite": "切换到本地 SQLite",
"connectionTestSuccess": "连接测试成功",
"connectionTestFailed": "连接测试失败",
"switchedTo": "已切换到 {{type}} 数据库",
"switchedToSQLite": "已切换到 SQLite 本地数据库",
"switchFailed": "切换失败",
"syncDescription": "多端同步说明",
"syncPoint1": "使用 PostgreSQL 远程数据库可以实现多端数据同步。",
"syncPoint2": "系统内置操作队列机制,确保多端同时操作时数据一致性。",
"syncPoint3": "切换数据库后需要重启应用以生效。",
"syncPoint4": "建议使用云数据库服务(如 Neon、Supabase、AWS RDS 等)。",
"enterConnectionString": "请输入 PostgreSQL 连接字符串",
"connectionExample": "示例:postgresql://xxxxxx_xxxxx:xxxxxxxx@xx-xxx.xxx.neon.xxxx/xxxxdxx?sslmode=require",
"uploadButton": "上传本地数据到远程",
"uploadHint": "连接远程数据库后,可将本地 SQLite 历史数据上传并合并到远程。",
"uploadNeedRemote": "请先切换并连接到 PostgreSQL 远程数据库",
"noNeedUpload": "本地与远程数据已一致,无需上传",
"uploadConfirmTitle": "确认上传本地数据到远程?",
"uploadConfirmContent": "将以本地数据为优先进行同步。检测到本地新增 {{localOnly}} 条、远程新增 {{remoteOnly}} 条、冲突 {{conflicts}} 条。",
"uploadSuccess": "本地数据已上传到远程",
"uploadFailed": "上传失败"
},
"data": {
"title": "数据管理",
"settlement": "结算",
"settlementAndRestart": "结算并重新开始",
"settlementHint": "将当前未结算记录划分为一个阶段,并将所有学生积分清零。",
"importExport": "导入 / 导出",
"exportJson": "导出 JSON",
"importJson": "导入 JSON",
"importHint": "导入会覆盖现有学生/理由/积分记录/设置(安全相关设置不会导入)。",
"logs": "日志",
"logLevel": "日志级别",
"logOperation": "日志操作",
"viewLogs": "查看日志",
"exportLogs": "导出日志",
"clearLogs": "清空日志",
"logsCleared": "日志已清空",
"systemLogs": "系统日志 (最后200条)",
"noLogs": "暂无日志",
"logLevelUpdated": "日志级别已更新",
"readLogsFailed": "读取日志失败",
"logsExported": "日志已导出",
"exportFailed": "导出失败",
"exportSuccess": "导出成功",
"importSuccess": "导入成功,正在刷新",
"importFailed": "导入失败",
"clearFailed": "清空失败",
"confirmSettlement": "确认结算并重新开始?",
"settlementConfirm1": "将把当前未结算的积分记录归档为一个阶段,并将所有学生当前积分清零。",
"settlementConfirm2": "学生名单不变;结算后的历史在「结算历史」页面查看。",
"settlementSuccess": "结算成功,已重新开始积分",
"settlementFailed": "结算失败",
"settle": "结算",
"logLevels": {
"debug": "DEBUG (调试)",
"info": "INFO (信息)",
"warn": "WARN (警告)",
"error": "ERROR (错误)"
}
},
"url": {
"title": "URL 协议 (secscore://)",
"protocol": "URL 协议",
"description": "可以通过 URL 链接唤起 SecScore 并执行操作,例如:",
"register": "注册 URL 协议",
"registered": "URL 协议已注册",
"registerFailed": "注册失败",
"installerRequired": "需要安装版 SecScore,开发模式下可能无效。"
},
"mcp": {
"title": "MCP 服务",
"description": "管理内置 MCP HTTP 服务,供外部 MCP 客户端调用。",
"running": "运行中",
"stopped": "已停止",
"noUrl": "暂无地址",
"host": "主机",
"port": "端口",
"start": "启动",
"stop": "停止",
"refresh": "刷新状态",
"hint": "建议仅绑定到 127.0.0.1;启动后 MCP 入口为 http://host:port/mcp",
"hostRequired": "请输入 MCP 主机地址",
"portInvalid": "请输入有效端口(1-65535",
"startSuccess": "MCP 服务启动成功",
"startFailed": "MCP 服务启动失败",
"stopSuccess": "MCP 服务已停止",
"stopFailed": "MCP 服务停止失败",
"startTimeout": "启动 MCP 服务超时,请稍后重试",
"stopTimeout": "停止 MCP 服务超时,请稍后重试"
},
"app": {
"title": "应用控制",
"description": "快速重启或退出应用。",
"restart": "重启应用",
"quit": "退出应用",
"confirmRestartTitle": "确认重启应用?",
"confirmRestartContent": "应用将立即关闭并重新启动。",
"confirmQuitTitle": "确认退出应用?",
"confirmQuitContent": "应用将立即退出。",
"restartFailed": "重启失败",
"quitFailed": "退出失败"
},
"about": {
"title": "关于",
"appName": "教育积分管理",
"version": "版本",
"copyright": "版权",
"ipcStatus": "IPC 状态",
"ipcConnected": "已连接",
"ipcDisconnected": "未连接 (Preload 失败)",
"environment": "环境",
"toggleDevTools": "切换开发者工具",
"license": "SecScore遵循GPL3.0协议",
"copyRightText": "CopyRight © 2025-{{year}} SECTL"
}
},
"sidebar": {
"home": "首页",
"students": "学生管理",
"score": "积分操作",
"boards": "看板",
"leaderboard": "排行榜",
"settlements": "结算历史",
"reasons": "理由管理",
"autoScore": "自动化",
"rewardExchange": "奖励兑换",
"rewardSettings": "奖励设置",
"settings": "系统设置",
"remoteDb": "远程数据库",
"refreshStatus": "刷新状态",
"syncNow": "立即同步",
"syncSuccess": "同步成功",
"syncFailed": "同步失败",
"getDbStatusFailed": "获取数据库状态失败",
"notRemoteMode": "当前不是远程数据库模式,请重启应用后重试",
"dbNotConnected": "数据库未连接",
"plugins": "插件管理"
},
"auth": {
"unlock": "权限解锁",
"unlockHint": "输入 6 位数字密码:管理密码=全功能,积分密码=仅积分操作。",
"unlockButton": "解锁",
"unlocked": "权限已解锁",
"logout": "已切换为只读",
"passwordPlaceholder": "例如 123456",
"passwordError": "密码错误",
"enterPassword": "输入密码",
"lock": "锁定"
},
"languages": {
"zh-CN": "简体中文",
"en-US": "English"
},
"theme": {
"colorAndBackground": "颜色与背景",
"gradientLabels": {
"blue": "清爽蓝",
"pink": "柔和粉",
"cyan": "青蓝",
"purple": "紫韵"
},
"gradientDirections": {
"vertical": "纵向",
"horizontal": "横向",
"diagonal": "对角"
},
"generate": "生成",
"saved": "已保存",
"saveFailed": "保存失败",
"mode": "模式",
"myTheme": "我的主题"
},
"permissions": {
"admin": "管理权限",
"points": "积分权限",
"view": "只读"
},
"home": {
"title": "学生积分主页",
"subtitle": "共 {{count}} 名学生,点击卡片进行积分操作",
"searchPlaceholder": "搜索姓名/拼音...",
"sortBy": {
"alphabet": "姓名排序",
"surname": "姓氏分组",
"group": "小组排序",
"score": "积分排行"
},
"layoutBy": {
"grouped": "分组列表",
"squareGrid": "正方形网格",
"largeAvatar": "大头像"
},
"noStudents": "暂无学生数据,请前往学生管理添加",
"noMatch": "未找到匹配的学生",
"clearSearch": "清除搜索",
"points": "分",
"currentScore": "当前积分",
"quickOptions": "快捷选项",
"adjustPoints": "调整分值",
"customPoints": "自定义分值",
"customPointsHint": "可在输入框微调特输入任意分值",
"reason": "操作理由",
"reasonPlaceholder": "输入加分/扣分的原因(可选)",
"preview": "变更预览",
"noReason": "(无理由)",
"ungrouped": "未分组",
"category": {
"others": "其他"
},
"scoreAdded": "已为 {{name}} 加{{points}}分",
"scoreDeducted": "已为 {{name}} 扣{{points}}分",
"submitFailed": "提交失败",
"pleaseSelectPoints": "请选择或输入分值",
"reasonDefault": "{{action}}{{points}}分",
"studentCount": "{{count}} 人",
"operationTitle": "积分操作:{{name}}",
"submitOperation": "提交操作",
"operationTitleBatch": "积分操作:已选 {{count}} 人",
"undoLastAction": "撤销",
"undoLastHint": "撤销上一条:{{name}} {{delta}}",
"undoUnavailable": "当前没有可撤销的积分操作",
"undoLastSuccess": "已撤销上一步积分操作",
"multiSelect": "多选",
"batchMode": "多选模式",
"selectAll": "全选",
"clearSelected": "清空已选",
"batchOperate": "批量积分",
"selected": "已选",
"selectedCount": "已选 {{count}} 人",
"batchSuccess": "已为 {{count}} 名学生提交积分",
"batchPartial": "成功提交 {{success}}/{{total}} 名学生积分",
"selectStudentFirst": "请先选择学生",
"addPoints": "加分",
"deductPoints": "扣分",
"pointsChange": "积分变更",
"reasonLabel": "理由:"
},
"students": {
"title": "学生管理",
"importList": "导入名单",
"addStudent": "添加学生",
"name": "姓名",
"group": "小组",
"avatar": "头像",
"currentScore": "当前积分",
"tags": "标签",
"noTags": "无标签",
"editTags": "编辑标签",
"editAvatar": "设置头像",
"deleteConfirm": "确认删除该学生?",
"addTitle": "添加学生",
"addConfirm": "添加",
"namePlaceholder": "请输入学生姓名",
"groupPlaceholder": "请输入小组名称(可选)",
"nameRequired": "请输入姓名",
"nameExists": "学生姓名已存在",
"addSuccess": "添加成功",
"addFailed": "添加失败",
"deleteSuccess": "删除成功",
"deleteFailed": "删除失败",
"tagSaveSuccess": "标签保存成功",
"tagSaveFailed": "保存标签失败",
"importTitle": "导入名单",
"importTextHint": "支持粘贴多行文本,一行一个姓名",
"importTextPlaceholder": "例如:\n张三\n李四\n王五",
"importByText": "从文本导入",
"importByXlsx": "通过 xlsx 导入",
"importByBanyou": "从班优导入",
"xlsxPreview": "xlsx 预览与导入",
"file": "文件",
"selectNameCol": "点击表头选择姓名列",
"previewRows": "预览前 50 行",
"importConfirm": "导入",
"importComplete": "导入完成:新增 {{inserted}},跳过 {{skipped}}",
"workerNotReady": "Worker 未初始化",
"parseXlsxFailed": "解析 xlsx 失败",
"selectNameColFirst": "请先点击选择\"姓名列\"",
"noNamesFound": "所选列未解析到可导入的姓名",
"importFailed": "导入失败",
"banyouCookieHint": "请在班优网页版登录后,复制完整 Cookie 并粘贴到下方。",
"banyouCookiePlaceholder": "uid=...; accessToken=...; ...",
"banyouCookieRequired": "请先粘贴 Cookie",
"banyouFetch": "获取班级列表",
"banyouFetchSuccess": "已获取 {{count}} 个班级",
"banyouFetchFailed": "获取班优班级失败",
"banyouCreatedClasses": "我创建的班级",
"banyouJoinedClasses": "我加入的班级",
"banyouNoClasses": "暂无班级数据",
"banyouClassTeacher": "班主任:",
"banyouStudentCount": "学生:",
"banyouPraiseCount": "表扬:",
"banyouFetchDetailFailed": "获取班级详情失败",
"banyouClassDetail": "班级详情",
"banyouDetailEmpty": "暂无班级详情数据",
"banyouReasonList": "加分/扣分理由列表",
"banyouStudentList": "学生列表",
"banyouTeamList": "小组列表",
"banyouNoTeams": "暂无小组数据(可尝试填写 teamPlanId 后重新打开)",
"banyouTeamPlanSelector": "分组方案",
"banyouLoadTeamPlan": "加载该方案小组",
"banyouTeamPlanSource": "方案来源接口:",
"banyouSelectTeamPlanFirst": "请先选择分组方案",
"banyouImportSelected": "一键导入勾选项",
"banyouNothingSelected": "请至少勾选一项后再导入",
"banyouImportSummary": "班优导入完成:学生 新增{{studentsInserted}}/跳过{{studentsSkipped}};理由 新增{{reasonsInserted}}/跳过{{reasonsSkipped}};分组 更新{{groupsUpdated}}/跳过{{groupsSkipped}}",
"editTagTitle": "编辑标签 - {{name}}",
"editGroup": "设置小组",
"editGroupTitle": "设置小组 - {{name}}",
"groupSaveSuccess": "小组保存成功",
"groupSaveFailed": "小组保存失败",
"existingGroups": "已有小组(点击一键填入)",
"noExistingGroups": "暂无可用的小组",
"groupBoardEdit": "编辑分组",
"groupBoardTitle": "快速编辑分组",
"groupBoardHint": "拖动学生到不同小组卡片中,点击保存后批量生效。",
"groupBoardNewGroupPlaceholder": "输入新分组名称",
"groupBoardAddGroup": "新建分组",
"groupBoardGroupExists": "该分组已存在",
"groupBoardGroupNameRequired": "请输入分组名称",
"groupBoardGroupNameInvalid": "分组名称无效",
"groupBoardEmpty": "可将学生拖拽到这里",
"groupBoardNoChanges": "分组未发生变化",
"groupBoardSaveSuccess": "已更新 {{count}} 名学生的小组",
"groupBoardSaveFailed": "保存失败,{{failed}} 名学生未更新",
"noGroup": "未分组",
"editAvatarTitle": "设置头像 - {{name}}",
"avatarUpload": "上传图片",
"avatarClear": "清除头像",
"noAvatar": "无头像",
"avatarTip": "支持常见图片格式,文件大小不超过 2MB",
"avatarSaveSuccess": "头像保存成功",
"avatarSaveFailed": "头像保存失败",
"avatarInvalidFile": "请选择图片文件",
"avatarTooLarge": "图片不能超过 2MB",
"avatarReadFailed": "读取图片失败",
"avatarClipboardImport": "从剪贴板导入",
"avatarClipboardUnsupported": "当前环境不支持读取剪贴板图片",
"avatarClipboardNoImage": "剪贴板中没有图片",
"avatarClipboardReadFailed": "读取剪贴板图片失败"
},
"score": {
"title": "积分管理",
"student": "学生",
"change": "变动",
"reason": "理由",
"time": "时间",
"undoConfirm": "确定要撤销这条记录吗?学生积分将回滚。",
"undo": "撤销",
"undoSuccess": "已撤销操作",
"undoFailed": "撤销失败",
"recentRecords": "最近记录",
"pleaseSelectStudent": "请选择或搜索学生",
"selectAllStudents": "全班",
"clearSelectedStudents": "清空",
"selectedCount": "已选 {{selected}} / {{total}} 人",
"points": "分数",
"addPoints": "加分",
"deductPoints": "扣分",
"quickReason": "快捷理由",
"selectReason": "选择预设理由",
"reasonContent": "理由内容",
"reasonPlaceholder": "手动输入或选择快捷理由",
"submit": "确认提交",
"pleaseEnterInfo": "请填写完整信息",
"pleaseEnterPoints": "请填写分值或选择预设理由",
"batchSuccess": "已为 {{count}} 名学生提交积分",
"batchPartial": "成功提交 {{success}}/{{total}} 名学生的积分"
},
"reasons": {
"title": "理由管理",
"addReason": "添加预设理由",
"category": "分类",
"content": "理由内容",
"presetPoints": "预设分值",
"deleteConfirm": "确认删除该理由?",
"addTitle": "添加理由",
"addConfirm": "添加",
"categoryPlaceholder": "例如: 学习, 纪律",
"contentPlaceholder": "请输入理由",
"pointsPlaceholder": "例如: 2 或 -2",
"contentRequired": "请输入理由内容",
"pointsRequired": "请输入预设分值",
"reasonExists": "该分类下已存在相同理由",
"addSuccess": "添加成功",
"addFailed": "添加失败",
"deleteSuccess": "删除成功",
"deleteFailed": "删除失败",
"others": "其他"
},
"rewardExchange": {
"title": "奖励兑换",
"enterMode": "奖励兑换",
"exitMode": "退出奖励兑换模式",
"modeHint": "当前为奖励兑换模式,点击学生卡可选择可兑换奖励。",
"normalHint": "当前显示学生原始积分,点击按钮后将显示可兑换积分。",
"remainingRewardPoints": "剩余兑换积分",
"currentScore": "当前积分",
"chooseRewardTitle": "为 {{name}} 选择奖励",
"currentRewardPoints": "当前可兑换积分:{{points}}",
"costLabel": "消耗积分:{{points}}",
"redeemNow": "立即兑换",
"noAffordableRewards": "当前没有可兑换的奖励,请先积累积分。",
"redeemSuccess": "{{student}} 成功兑换「{{reward}}」,消耗 {{points}} 分",
"redeemFailed": "兑换失败",
"recordsTitle": "兑换记录",
"recordStudent": "学生",
"recordReward": "奖励",
"recordCost": "消耗积分",
"recordTime": "兑换时间",
"rewards": "选择奖励"
},
"rewardSettings": {
"title": "奖励设置",
"addReward": "添加奖励",
"addTitle": "添加奖励",
"editTitle": "编辑奖励",
"rewardName": "奖励名称",
"costPoints": "消耗积分",
"namePlaceholder": "例如:免作业券",
"costPlaceholder": "请输入消耗积分",
"nameRequired": "请输入奖励名称",
"costRequired": "请输入正整数积分",
"createSuccess": "奖励创建成功",
"createFailed": "奖励创建失败",
"updateSuccess": "奖励更新成功",
"updateFailed": "奖励更新失败",
"deleteSuccess": "奖励删除成功",
"deleteFailed": "奖励删除失败",
"deleteConfirm": "确认删除奖励「{{name}}」?"
},
"board": {
"title": "看板",
"editable": "可编辑",
"readonly": "只读",
"addBoard": "新增看板",
"removeBoard": "删除看板",
"removeBoardConfirm": "确认删除当前看板?",
"boardConfig": "看板配置",
"boardNamePlaceholder": "输入看板名称",
"renameBoard": "重命名看板",
"newBoard": "新看板",
"untitledBoard": "未命名看板",
"addList": "新增学生列表",
"removeList": "删除列表",
"removeListConfirm": "确认删除当前学生列表?",
"editList": "编辑",
"sqlEditorTitle": "编辑学生列表",
"splitHorizontal": "左右拆分",
"splitVertical": "上下拆分",
"dragHandle": "拖动调整布局",
"listNamePlaceholder": "输入列表名称",
"newList": "新列表",
"applyPreset": "套用预设",
"run": "运行 SQL",
"runAll": "运行全部",
"viewModes": {
"list": "列表视图",
"card": "卡片视图",
"grid": "网格视图",
"largeAvatar": "大头像视图"
},
"scoreDisplayModes": {
"total": "显示总分",
"split": "显示加分与扣分"
},
"metrics": {
"totalScore": "总分",
"addScore": "加分",
"deductScore": "扣分",
"rewardPoints": "奖励分",
"weekChange": "近7天",
"weekDeducted": "近7天扣分",
"todayAnswered": "今日回答"
},
"sqlPlaceholder": "输入 SQL(仅支持单条 SELECT / WITH 查询)",
"templateHint": "支持时间模板变量:{{today_start}}、{{this_week_start}}、{{last_week_start}}、{{since_7d}}、{{since_30d}}、{{now}}",
"templateDescription": "可直接在 SQL 中使用模板变量,运行时会自动替换为 ISO 时间,兼容 SQLite 与 PostgreSQL。",
"saving": "保存中...",
"saveFailed": "保存看板失败",
"runFailed": "查询执行失败",
"keepAtLeastOneBoard": "至少保留一个看板",
"keepAtLeastOneList": "至少保留一个学生列表",
"presets": {
"weekLowDeduct": {
"name": "上周低扣分排行",
"description": "上一周扣分 < 3 的学生积分榜"
},
"todayActive": {
"name": "今日活跃榜",
"description": "按今日回答次数与积分变化排序"
},
"rewardRanking": {
"name": "奖励积分榜",
"description": "按奖励积分和总积分排序"
}
}
},
"leaderboard": {
"title": "积分排行榜",
"rank": "排名",
"name": "姓名",
"totalScore": "总积分",
"todayChange": "今日变化",
"weekChange": "本周变化",
"monthChange": "本月变化",
"viewHistory": "查看",
"exportXlsx": "导出 XLSX",
"exportSuccess": "导出成功",
"queryFailed": "查询失败",
"historyTitle": "{{name}} - 操作记录",
"close": "关闭",
"today": "今天",
"week": "本周",
"month": "本月",
"operationRecord": "操作记录",
"change": "变化"
},
"settlements": {
"title": "结算历史",
"phase": "阶段 #{{id}}",
"viewLeaderboard": "查看排行榜",
"recordCount": "记录数: {{count}}",
"noRecords": "暂无结算记录",
"noSettlements": "暂无结算记录",
"back": "返回",
"leaderboardTitle": "结算排行榜",
"phaseScore": "阶段积分",
"queryFailed": "查询失败",
"rank": "排名",
"name": "姓名"
},
"autoScore": {
"title": "自动化管理",
"name": "自动化名称",
"namePlaceholder": "例如:每日签到加分",
"nameRequired": "请输入自动化名称",
"triggers": "触发器",
"actions": "行动",
"applicableStudents": "适用学生",
"allStudents": "所有学生",
"lastExecuted": "最后执行",
"notExecuted": "未执行",
"invalidTime": "无效时间",
"addTrigger": "添加规则",
"addAction": "添加行动",
"whenTriggered": "当以下规则触发时",
"triggerScheduleHint": "提示:规则是否执行仍由“间隔时间”触发器决定,标签、SQL、AND / OR / NOT 仅用于筛选本次命中的学生。",
"triggeredActions": "满足规则时触发的行动",
"addAutomation": "添加自动化",
"updateAutomation": "更新自动化",
"cancelEdit": "取消编辑",
"resetForm": "重置表单",
"deleteConfirm": "确定要删除这条自动化吗?",
"adminRequired": "需要管理员权限以查看自动加分自动化,请先登录管理员账号",
"adminCreateRequired": "需要管理员权限以创建或更新自动加分自动化",
"adminDeleteRequired": "需要管理员权限以删除自动加分自动化",
"adminToggleRequired": "需要管理员权限以启用/禁用自动加分自动化",
"fetchFailed": "获取自动化失败",
"unsupportedLogic": "当前版本保存规则时仅支持 AND 条件,OR / NOT 逻辑暂未接入后端存储",
"triggerRequired": "请至少添加一个触发器",
"intervalTriggerRequired": "请至少添加一个“间隔时间”触发器,否则规则不会自动执行",
"actionRequired": "请至少添加一个行动",
"createSuccess": "自动化创建成功",
"updateSuccess": "自动化更新成功",
"createFailed": "创建自动化失败",
"updateFailed": "更新自动化失败",
"deleteSuccess": "自动化删除成功",
"deleteFailed": "删除自动化失败",
"enabled": "自动化已启用",
"disabled": "自动化已禁用",
"enableFailed": "启用自动化失败",
"disableFailed": "禁用自动化失败",
"noTriggerAvailable": "没有可用的触发器类型,请检查配置",
"noActionAvailable": "没有可用的行动类型,请检查配置",
"sort": "排序",
"status": "状态",
"triggerCount": "{{count}} 个触发器",
"actionCount": "{{count}} 个行动",
"studentCount": "{{count}} 名学生",
"studentPlaceholder": "请选择或搜索学生(留空表示所有学生)",
"triggerCondition": "触发条件",
"executeAction": "执行操作",
"addOperation": "添加操作",
"scoreLabel": "分数",
"tagNameLabel": "标签名称",
"operationNoteLabel": "操作说明(可选)",
"triggerIntervalTime": "间隔时间",
"triggerStudentTag": "学生标签",
"triggerStudentScore": "学生分数",
"triggerStudentScoreGreater": "学生分数大于",
"triggerStudentSql": "自定义 SQL 条件",
"triggerStudentSqlPlaceholder": "输入筛选学生的 SQL 或 WHERE 条件",
"actionAddScore": "加分",
"actionAddTag": "添加标签",
"actionSettleScore": "结算分数",
"actionSettleScoreHint": "无需参数",
"rewardRequired": "请选择奖励",
"startAt": "开始时间",
"startAtPlaceholder": "请选择开始时间(留空立即开始)",
"startAtHint": "留空表示立即开始;设置后将以该时间为基准按间隔触发",
"startAtWaitHint": "距离开始还有 {{minutes}} 分钟",
"startAtElapsedHint": "自开始已过去 {{elapsed}} 分钟,距离下一次触发约 {{remain}} 分钟",
"cooldownMinutes": "冷却时间(分钟)",
"maxStudentsPerRun": "单次最多学生数",
"maxRunsPerDay": "每日最多执行次数",
"maxScoreDeltaPerDay": "每日最多积分变动",
"filterGroups": "按分组筛选",
"filterGrades": "按年级筛选",
"filterMinScore": "最低当前积分",
"filterMaxScore": "最高当前积分",
"filterRecentEventDays": "最近事件天数",
"filterMinRecentEventCount": "最近事件最少次数",
"batchLogs": "执行日志",
"batchId": "批次",
"batchRollback": "回滚",
"batchRolledBack": "已回滚",
"batchRollbackConfirm": "确认回滚这个执行批次?",
"batchRollbackSuccess": "批次回滚成功",
"batchRollbackFailed": "批次回滚失败",
"intervalAmountPlaceholder": "请输入间隔时间",
"intervalUnitMonth": "个月",
"intervalUnitDay": "天",
"intervalUnitMinute": "分钟",
"intervalPartDay": "天",
"intervalPartHour": "小时",
"intervalPartMinute": "分钟",
"minutesPlaceholder": "请输入分钟数",
"minutes": "分钟",
"tagsPlaceholder": "请输入标签名称",
"scorePlaceholder": "请输入分数",
"tagNamePlaceholder": "请输入标签名称",
"reasonPlaceholder": "请输入理由",
"relationAnd": "且",
"relationOr": "或",
"operatorContains": "包含",
"relationNot": "非",
"openFile": "打开文件",
"openFileFailed": "打开自动化文件失败",
"backfillConfirmTitle": "检测到关闭期间可补回的自动化",
"backfillConfirmSummary": "在 {{from}} 到 {{to}} 期间,预计有 {{runs}} 次自动化执行(共 {{rules}} 条规则)可补回,是否现在补回?",
"backfillPreviewLine": "{{name}}{{runs}} 次",
"backfillPreviewMore": "其余 {{count}} 条规则未展开",
"backfillPreviewTruncated": "{{count}} 条规则补回次数已截断到最多 {{max}} 次",
"backfillApplySuccess": "补回完成:执行 {{runs}} 次,新增 {{events}} 条积分记录",
"backfillApplyFailed": "补回自动加分失败"
},
"triggers": {
"studentTag": {
"label": "学生标签",
"description": "当学生匹配特定标签时触发自动化",
"placeholder": "请选择标签",
"required": "请输入标签名称"
},
"randomTime": {
"label": "随机时间触发",
"description": "在指定时间范围内随机触发自动化",
"required": "请输入有效的时间范围(分钟)"
},
"intervalTime": {
"label": "间隔时间",
"description": "当间隔时间到达时触发自动化",
"placeholder": "请输入时间间隔",
"required": "请输入有效的时间",
"monthLabel": "月",
"weekLabel": "周",
"timeLabel": "时间"
}
},
"actions": {
"sendNotification": {
"label": "发送通知",
"description": "向学生发送通知",
"placeholder": "请输入通知内容"
},
"addTag": {
"label": "添加标签",
"description": "为学生添加标签",
"placeholder": "请输入标签"
},
"addScore": {
"label": "添加分数",
"description": "为学生添加分数",
"pointsPlaceholder": "请输入分数",
"reasonPlaceholder": "请输入理由"
}
},
"wizard": {
"welcomeTitle": "欢迎使用 SecScore 积分管理",
"welcomeDesc": "感谢选择 SecScore。在开始之前,请花一分钟完成基础配置。",
"configComplete": "配置完成!",
"configFailed": "配置保存失败",
"startJourney": "开启积分之旅"
},
"tags": {
"editTitle": "编辑标签",
"inputPlaceholder": "输入标签名称,按 Enter 添加",
"selectedTags": "已选标签(点击取消)",
"noTagsSelected": "未选择标签",
"availableTags": "可选标签(点击选择)",
"noAvailableTags": "无可用标签",
"fetchFailed": "获取标签列表失败",
"nameTooLong": "标签名称不能超过 30 个字符",
"addFailed": "添加标签失败",
"deleteSuccess": "标签删除成功",
"deleteFailed": "删除标签失败"
},
"recovery": {
"title": "SecScore 找回字符串",
"saved": "我已保存",
"export": "导出文本文件",
"exportHint": "建议导出后离线保存,遗失将无法找回。",
"hint": "建议导出后离线保存,遗失将无法找回。"
},
"plugin": {
"title": "插件管理",
"name": "插件名称",
"author": "作者",
"description": "描述",
"version": "版本",
"status": "状态",
"enabled": "已启用",
"disabled": "已禁用",
"operation": "操作",
"install": "安装插件",
"uninstall": "卸载",
"uninstallConfirm": "确认卸载插件?",
"uninstallDescription": "卸载后会移除已安装到应用目录中的插件副本。",
"installSuccess": "插件安装成功",
"installFailed": "插件安装失败",
"uninstallSuccess": "插件卸载成功",
"uninstallFailed": "插件卸载失败",
"toggleFailed": "切换插件状态失败",
"invalidManifest": "无效的插件清单文件",
"pluginFolder": "插件文件夹",
"folderPlaceholder": "选择包含 manifest.json 的文件夹",
"installHint": "选择一个包含 manifest.json 的文件夹来安装插件。",
"selectFolder": "请选择插件文件夹",
"totalPlugins": "插件总数",
"enabledPlugins": "已启用",
"disabledPlugins": "已禁用",
"noPlugins": "暂无已安装的插件",
"installedAt": "安装时间"
}
}