feat(shared,tests): add error boundaries, lib utils, i18n messages, and integration tests
Some checks failed
CI / scheduled-backup (push) Has been skipped
CI / backup-verify (push) Has been skipped
CI / weekly-dr-drill (push) Failing after 0s
CI / build-deploy (push) Has been cancelled
CI / security-scan (push) Has been cancelled

shared:

- Add class-filter, error-state, route-error, section-error-boundary, widget-boundary components

- Add ui/alert component

- Add constants directory

- Add breached-password, export-utils, permission-bitmap, rate-limit, resolve-action-error, route-permissions, route-resolver, type-guards lib

- Add i18n messages (en, zh-CN) for invitation-codes, parent, questions, rbac

tests:

- Add integration tests for elective

- Add tests/setup/empty-stub

scripts:

- Add update-md.cjs, tmp_append_en.ps1, tmp_merge_en.ps1 utilities
This commit is contained in:
SpecialX
2026-07-03 10:26:38 +08:00
parent 21142f9b99
commit 0e63c24ed9
97 changed files with 9753 additions and 819 deletions

View File

@@ -17,7 +17,22 @@
"teacher": ["帮我批改这道题", "生成一个课堂活动", "创建一道测验题"],
"student": ["解释这个概念", "给我一道练习题", "帮我复习"],
"parent": ["我孩子学得怎么样?", "在家应该关注什么?"],
"admin": ["显示 AI 使用统计", "哪些老师最常使用 AI"]
"admin": ["显示 AI 使用统计", "哪些老师最常使用 AI"],
"context": {
"teacherGrading": ["这类题目常见错误有哪些?", "如何给出建设性反馈?"],
"teacherLesson": ["为这节课建议一个导入", "有哪些分层教学策略?"],
"teacherExam": ["生成一道相关题目", "分析难度分布"],
"studentHomework": ["给我提示,不要答案", "帮我理解这个概念"]
}
},
"contextMessage": {
"teacherGrading": "当前页面:作业批改视图",
"teacherLesson": "当前页面:备课编辑器",
"teacherExam": "当前页面:试卷组卷",
"studentErrorBook": "当前页面:错题本(学生视图)",
"studentHomework": "当前页面:学生作业视图",
"parent": "当前页面:家长面板",
"admin": "当前页面:管理员面板"
}
},
"provider": {
@@ -193,6 +208,7 @@
"contentFailed": "内容生成失败",
"variantFailed": "题目变体生成失败",
"analysisFailed": "薄弱点分析失败",
"statsFailed": "AI 使用统计查询失败",
"boundaryTitle": "AI 功能错误",
"boundaryDescription": "处理 AI 请求时发生错误,请重试。",
"retry": "重试",
@@ -208,6 +224,10 @@
"similarQuestion": "AI 相似题",
"weaknessAnalysis": "AI 薄弱点分析",
"childSummary": "AI 子女摘要",
"studyPath": "AI 学习路径"
"studyPath": "AI 学习路径",
"explainError": "AI 错题解释"
},
"chart": {
"parseError": "图表数据格式错误,无法渲染"
}
}

View File

@@ -9,7 +9,9 @@
"description": {
"list": "随时了解学校最新公告动态。",
"adminList": "创建并管理全校公告。",
"edit": "更新公告详情。"
"edit": "更新公告详情。",
"detail": "查看公告详情。",
"create": "创建一条新公告。"
},
"filter": {
"all": "全部",
@@ -75,7 +77,11 @@
"invalidForm": "表单数据无效",
"invalidState": "表单状态无效",
"pinToggled": "置顶状态已更新",
"markedRead": "已标记为已读"
"markedRead": "已标记为已读",
"invalidFormData": "表单数据无效,请检查后重试。",
"unexpectedError": "发生意外错误,请稍后重试。",
"permissionDenied": "您没有执行该操作的权限。",
"forbidden": "您无权操作此公告。"
},
"meta": {
"publishedAt": "发布于 {date}",
@@ -99,5 +105,11 @@
"loadFailed": "公告加载失败",
"loadFailedDesc": "抱歉,加载公告时发生了意外错误。请稍后重试。",
"retry": "重试"
},
"pagination": {
"label": "公告分页导航",
"prev": "上一页",
"next": "下一页",
"page": "第 {page} 页"
}
}

View File

@@ -20,7 +20,17 @@
"absent": "缺勤",
"late": "迟到",
"early_leave": "早退",
"excused": "请假"
"excused": "请假",
"school_activity": "校内活动"
},
"period": {
"label": "节次",
"morning_reading": "早读",
"morning": "上午",
"afternoon": "下午",
"evening": "晚自习",
"full_day": "全日",
"allPeriods": "全部节次"
},
"stats": {
"totalRecords": "总记录数",
@@ -29,6 +39,7 @@
"late": "迟到",
"earlyLeave": "早退",
"excused": "请假",
"schoolActivity": "校内活动",
"attendanceRate": "出勤率",
"lateRate": "迟到率",
"recentRecords": "最近记录",
@@ -63,6 +74,7 @@
"class": "班级",
"date": "日期",
"status": "状态",
"reason": "原因",
"remark": "备注",
"recorder": "记录人",
"createdAt": "创建时间"
@@ -77,15 +89,122 @@
"confirmClassSwitch": "切换班级将丢弃未保存的修改,是否继续?",
"confirmClassSwitchAction": "切换班级",
"saved": "考勤已保存",
"saving": "保存中...",
"updated": "考勤已更新",
"deleted": "考勤记录已删除"
"deleted": "考勤记录已删除",
"reasonPlaceholder": "请输入原因"
},
"rules": {
"lateThreshold": "迟到阈值(分钟)",
"earlyLeaveThreshold": "早退阈值(分钟)",
"enableAutoMark": "启用自动标记",
"attendanceRateThreshold": "出勤率阈值(%",
"attendanceRateThresholdHint": "低于此值的学生将触发预警",
"consecutiveAbsenceThreshold": "连续缺勤阈值(次)",
"consecutiveAbsenceThresholdHint": "连续缺勤达到此次数的学生将触发预警",
"saved": "考勤规则已保存"
},
"warnings": {
"title": "出勤率预警",
"noWarnings": "暂无预警",
"noWarningsDescription": "当前班级所有学生出勤情况正常。",
"thresholdSummary": "出勤率阈值 {rate}% / 连续缺勤阈值 {absence} 次",
"dates": "相关日期",
"types": {
"low_attendance_rate": "出勤率 {current}% 低于阈值 {threshold}%",
"consecutive_absence": "连续缺勤 {current} 次,达到阈值 {threshold} 次"
},
"severity": {
"high": "高",
"medium": "中",
"low": "低"
}
},
"trend": {
"title": "考勤趋势",
"description": "{start} 至 {end}",
"noData": "暂无趋势数据",
"noDataDescription": "当前班级在所选时间范围内暂无考勤记录。",
"granularity": {
"daily": "按日",
"weekly": "按周",
"monthly": "按月"
},
"series": {
"presentRate": "出勤率",
"lateRate": "迟到率",
"absentRate": "缺勤率"
}
},
"comparison": {
"title": "跨班级对比",
"description": "{grade} · {start} 至 {end} · 年级平均出勤率 {avg}%",
"noData": "暂无对比数据",
"noDataDescription": "请选择年级查看班级出勤率对比。",
"aboveAverage": "高于平均",
"average": "持平",
"belowAverage": "低于平均",
"series": {
"presentRate": "出勤率"
},
"columns": {
"class": "班级",
"total": "总记录",
"presentRate": "出勤率",
"lateRate": "迟到率",
"absentRate": "缺勤率",
"badge": "评估"
}
},
"report": {
"title": "考勤报告",
"description": "生成班级考勤周报/月报,支持打印为 PDF。",
"controls": "报告设置",
"type": "报告类型",
"types": {
"weekly": "周报",
"monthly": "月报"
},
"startDate": "开始日期",
"endDate": "结束日期",
"print": "打印 / 保存 PDF",
"printing": "准备打印...",
"period": "报告周期",
"generatedAt": "生成日期",
"summary": "统计汇总",
"studentDetails": "学生明细",
"parentSignature": "家长签字单",
"parentSignatureNotice": "请家长确认已阅子女考勤情况,签字后交回班主任。",
"parentName": "家长姓名",
"signature": "家长签字",
"relationship": "与学生关系",
"signDate": "签字日期",
"parentComment": "家长意见",
"footer": "本报告由系统自动生成,如有疑问请联系班主任。",
"noData": "暂无报告数据",
"noDataDescription": "当前班级在所选时间范围内暂无考勤记录。"
},
"correlation": {
"title": "考勤与成绩关联分析",
"description": "{className} · {start} 至 {end} · 出勤率与平均成绩的相关性",
"noData": "暂无关联分析数据",
"noDataDescription": "所选班级在时间范围内无考勤或成绩记录,无法进行关联分析。",
"noStudents": "暂无学生数据",
"noStudentsDescription": "该班级在时间范围内无考勤与成绩匹配的学生。",
"correlationCoefficient": "相关系数 r",
"notAvailable": "数据不足",
"scatterTitle": "出勤率-成绩散点图",
"scatterSeries": "学生",
"studentDetails": "学生明细",
"riskLevelLabel": "风险等级",
"attendanceRate": "出勤率",
"averageScore": "平均成绩",
"absentCount": "缺勤次数",
"gradeRecordCount": "成绩记录数",
"riskCounts": { "high": "高风险学生数", "medium": "中风险学生数", "low": "低风险学生数" },
"riskLevel": { "high": "高风险", "medium": "中风险", "low": "低风险" },
"interpretation": { "strong_negative": "强负相关:出勤率越低,成绩越低", "weak_negative": "弱负相关:出勤率与成绩有一定负相关", "negligible": "无明显线性相关", "weak_positive": "弱正相关:出勤率与成绩有一定正相关", "strong_positive": "强正相关:出勤率越高,成绩越高", "insufficient_data": "数据不足,无法计算相关性" }
},
"errors": {
"notFound": "考勤记录不存在",
"noOwnership": "您无权操作此考勤记录",
@@ -94,7 +213,10 @@
"invalidForm": "表单数据无效",
"missingRecords": "缺少考勤数据",
"invalidRecordsJson": "考勤数据格式无效",
"unexpected": "发生未知错误"
"unexpected": "发生未知错误",
"invalid_date": "日期格式无效",
"invalid_startDate": "开始日期格式无效",
"invalid_endDate": "结束日期格式无效"
},
"messages": {
"recorded": "考勤已记录",

View File

@@ -1,6 +1,86 @@
{
"title": "审计日志",
"description": "追踪系统内所有用户操作,保障安全与合规。",
"table": {
"user": "用户",
"module": "模块",
"action": "操作",
"target": "目标",
"status": "状态",
"ipAddress": "IP 地址",
"time": "时间",
"userAgent": "用户代理",
"tableName": "数据表",
"recordId": "记录 ID",
"changedBy": "操作人",
"view": "查看",
"hide": "隐藏",
"oldValue": "旧值",
"newValue": "新值"
},
"filter": {
"anyModule": "任意模块",
"anyStatus": "任意状态",
"anyAction": "任意操作",
"anyTable": "任意数据表",
"actionPlaceholder": "操作...",
"userIdPlaceholder": "用户 ID...",
"modulePlaceholder": "模块",
"statusPlaceholder": "状态",
"tablePlaceholder": "数据表",
"actionSelectPlaceholder": "操作",
"startDate": "开始日期",
"endDate": "结束日期",
"success": "成功",
"failure": "失败",
"create": "创建",
"update": "更新",
"delete": "删除",
"signIn": "登录",
"signOut": "登出",
"signUp": "注册",
"reset": "重置"
},
"empty": {
"audit": "暂无审计日志",
"login": "暂无登录日志",
"dataChange": "暂无数据变更日志"
},
"export": {
"button": "导出 Excel",
"success": "导出成功",
"failed": "导出失败"
},
"error": {
"title": "加载失败",
"description": "数据加载时发生错误,请稍后重试。",
"retry": "重试",
"boundaryTitle": "审计数据加载失败",
"boundaryDescription": "审计数据区块加载时发生错误,请重试。"
},
"detail": {
"title": "日志详情",
"description": "查看日志的完整字段信息。",
"userId": "用户 ID",
"userName": "用户名",
"action": "操作",
"module": "模块",
"targetId": "目标 ID",
"targetType": "目标类型",
"detail": "详情",
"ipAddress": "IP 地址",
"userAgent": "用户代理",
"status": "状态",
"createdAt": "时间",
"errorMessage": "错误信息",
"tableName": "数据表",
"recordId": "记录 ID",
"changedBy": "操作人",
"oldValue": "旧值",
"newValue": "新值",
"close": "关闭",
"viewDetail": "查看详情"
},
"loginLogs": {
"title": "登录日志",
"description": "监控所有认证事件,包括登录、登出与注册。"
@@ -8,5 +88,50 @@
"dataChanges": {
"title": "数据变更日志",
"description": "追踪系统所有数据变更(增删改),保障合规。"
},
"overview": {
"title": "审计概览",
"description": "实时掌握系统活动、安全事件与数据变更全貌。",
"stats": {
"auditEventsToday": "今日审计事件",
"failedLoginsToday": "今日失败登录",
"dataChangesToday": "今日数据变更",
"totalAuditLogs": "审计日志总数"
},
"trendChart": {
"title": "活动趋势(近 7 天)",
"description": "审计事件、登录事件与数据变更的每日计数。",
"auditEvents": "审计事件",
"loginEvents": "登录事件",
"dataChanges": "数据变更"
},
"distributionChart": {
"title": "数据变更按操作分布",
"description": "创建、更新、删除操作的占比统计。",
"empty": "暂无数据变更记录。"
},
"quickLinks": {
"title": "快捷入口",
"auditLogs": "查看审计日志",
"loginLogs": "查看登录日志",
"dataChanges": "查看数据变更"
}
},
"retention": {
"title": "数据保留策略",
"description": "配置审计日志的保留期限,超期日志将被自动清理。",
"retentionDays": "审计日志保留天数",
"retentionDaysDescription": "超过此天数的审计日志与数据变更日志将被删除。最小 30 天,最大 3650 天。",
"loginLogRetentionDays": "登录日志保留天数",
"loginLogRetentionDaysDescription": "登录日志(含登录成功/失败/注册/登出)的保留期限,建议长于审计日志以支持安全取证。最小 30 天,最大 3650 天。",
"autoCleanupEnabled": "启用自动清理",
"autoCleanupEnabledDescription": "启用后,将通过定时任务每日清理过期日志。",
"save": "保存配置",
"purge": "立即清理",
"purgeConfirm": "此操作将立即删除所有超过保留期限的日志。是否继续?",
"purgeSuccess": "清理完成:已删除 {auditLogsDeleted} 条审计日志、{loginLogsDeleted} 条登录日志、{dataChangeLogsDeleted} 条数据变更日志。",
"saveSuccess": "保留策略配置已保存。",
"saveFailed": "保存配置失败。",
"purgeFailed": "清理日志失败。"
}
}
}

View File

@@ -2,14 +2,31 @@
"login": {
"title": "登录",
"subtitle": "使用您的账号登录 Next_Edu",
"subtitle2fa": "请输入身份验证器中的 6 位验证码",
"email": "邮箱",
"password": "密码",
"rememberMe": "记住我",
"signIn": "登录",
"verifyAndSignIn": "验证并登录",
"signingIn": "登录中...",
"forgotPassword": "忘记密码?",
"noAccount": "还没有账号?",
"register": "注册"
"register": "注册",
"totpLabel": "2FA 验证码",
"totpHint": "请输入 6 位身份验证器验证码或 8 位备份码。",
"backToLogin": "返回登录",
"orContinueWith": "或继续使用",
"errors": {
"invalidCredentials": "邮箱或密码错误",
"invalid2fa": "2FA 验证码错误,请重试。",
"emailRequired": "请输入邮箱",
"passwordRequired": "请输入密码",
"emailFormat": "邮箱格式不正确",
"totpRequired": "请输入 2FA 验证码",
"tooManyAttempts": "尝试次数过多,账户可能已被锁定。请稍后再试或联系管理员。",
"accountLockedHint": "连续登录失败多次,账户可能已被临时锁定。可稍后重试或使用「忘记密码」重置。"
},
"attemptsRemaining": "剩余尝试次数:{count}"
},
"register": {
"title": "注册",
@@ -21,7 +38,51 @@
"signUp": "注册",
"signingUp": "注册中...",
"hasAccount": "已有账号?",
"signIn": "登录"
"signIn": "登录",
"createAccount": "创建账户",
"subtitleAlt": "填写以下信息以创建您的账户",
"birthDate": "出生日期",
"currentAge": "当前年龄:{age} 岁",
"guardianSectionTitle": "检测到您是未成年人,请填写监护人信息",
"guardianName": "监护人姓名",
"guardianNamePlaceholder": "请输入监护人姓名",
"guardianPhone": "监护人电话",
"guardianPhonePlaceholder": "请输入监护人手机号",
"guardianRelation": "监护人与您的关系",
"guardianRelationPlaceholder": "请选择关系",
"guardianRelationFather": "父亲",
"guardianRelationMother": "母亲",
"guardianRelationOther": "其他法定监护人",
"namePlaceholder": "请输入姓名",
"agreeTermsLabel": "我已阅读并同意《隐私政策》和《用户协议》",
"agreeTermsRich": "我已阅读并同意 <privacy>《隐私政策》</privacy> 和 <terms>《用户协议》</terms>",
"agreeTermsLinkPrivacy": "《隐私政策》",
"agreeTermsLinkTerms": "《用户协议》",
"agreeTermsAndLabel": "和",
"agreeGuardianLabel": "我确认已获得监护人同意使用本服务",
"loginNow": "立即登录",
"alreadyHaveAccount": "已有账户?",
"toast": {
"needAgreeTerms": "请阅读并同意《隐私政策》和《用户协议》后再注册",
"needGuardianConsent": "未成年人注册须确认已获得监护人同意",
"needGuardianRelation": "请选择监护人与您的关系",
"createSuccess": "账户创建成功",
"createFailed": "注册失败"
},
"errors": {
"RATE_LIMIT_EXCEEDED": "注册尝试过于频繁,请稍后再试",
"VALIDATION_FAILED": "请检查输入信息是否正确",
"EMAIL_TAKEN": "该邮箱已注册",
"BREACHED_PASSWORD": "该密码已在已知数据泄露中出现,请更换一个更安全的密码",
"INVITATION_CODE_INVALID": "邀请码无效或已使用",
"INVITATION_CODE_USED": "邀请码已被使用",
"DEFAULT_ROLE_MISSING": "系统初始化异常,请联系管理员",
"UNKNOWN": "创建账户失败,请稍后重试"
},
"emailFormatError": "邮箱格式不正确",
"invitationCodeLabel": "邀请码(可选)",
"invitationCodePlaceholder": "如有邀请码请输入",
"invitationCodeMax": "邀请码长度不能超过 64 个字符"
},
"errors": {
"invalidCredentials": "邮箱或密码错误",

View File

@@ -30,9 +30,9 @@
"alreadyInClass": "你已在该班级中",
"subjectConflict": "该班级此科目已有任课教师",
"generateSuccess": "邀请码生成成功",
"generateFailed": "邀请码生成失败",
"generateFailed": "生成邀请码失败",
"revokeSuccess": "邀请码已撤销",
"revokeFailed": "邀请码撤销失败",
"revokeFailed": "撤销邀请码失败",
"regenerateSuccess": "邀请码已重新生成",
"regenerateConfirm": "重新生成后旧邀请码将立即失效,确定继续吗?",
"revokeConfirm": "撤销后此邀请码将立即失效,确定继续吗?",
@@ -51,5 +51,418 @@
"homeroomTeacher": "班主任",
"studentCount": "学生人数",
"actions": "操作"
},
"list": {
"title": "班级管理",
"description": "管理班级并分配教师。",
"new": "新建班级",
"empty": {
"title": "暂无班级",
"description": "创建你的第一个班级以开始使用。",
"noMatch": "没有匹配结果",
"noMatchDescription": "尝试修改筛选条件或清空搜索。"
},
"column": {
"school": "学校",
"grade": "年级",
"name": "班级名称",
"homeroom": "班主任",
"room": "教室",
"subjectTeachers": "任课教师",
"studentCount": "学生人数",
"invitationCode": "邀请码",
"updated": "更新时间",
"actions": "操作"
},
"actions": {
"edit": "编辑",
"delete": "删除",
"viewDetail": "查看详情"
},
"failedCreate": "创建班级失败",
"failedUpdate": "更新班级失败",
"failedDelete": "删除班级失败",
"failedStatus": "更新状态失败",
"failedRegenerate": "重新生成邀请码失败",
"failedCopy": "复制失败"
},
"form": {
"createTitle": "新建班级",
"editTitle": "编辑班级",
"name": "班级名称",
"namePlaceholder": "如:一年级一班",
"school": "学校",
"schoolPlaceholder": "选择学校",
"grade": "年级",
"gradePlaceholder": "选择年级",
"homeroom": "班主任",
"homeroomPlaceholder": "选择班主任",
"homeroomLabel": "班号",
"room": "教室",
"roomPlaceholder": "可选",
"subjectTeachers": "任课教师",
"subjectTeacherPlaceholder": "选择教师",
"noSchools": "暂无学校",
"noGrades": "暂无年级",
"noTeachers": "暂无教师",
"selectSchool": "选择学校",
"selectGrade": "选择年级",
"selectTeacher": "选择教师",
"optional": "可选",
"cancel": "取消",
"create": "创建",
"save": "保存",
"saveChanges": "保存更改",
"saving": "保存中...",
"creating": "创建中...",
"deleting": "删除中...",
"adding": "添加中...",
"add": "添加"
},
"delete": {
"title": "删除班级",
"description": "确定要删除「{name}」吗?此操作不可撤销。",
"cancel": "取消",
"confirm": "删除",
"thisClass": "此班级"
},
"filters": {
"search": "搜索班级...",
"school": "学校",
"allSchools": "全部学校",
"grade": "年级",
"allGrades": "全部年级",
"class": "班级",
"allClasses": "全部班级",
"status": "状态",
"allStatuses": "全部状态",
"weekday": "星期",
"selectWeekday": "选择星期",
"allWeekdays": "全部",
"selectClass": "选择班级",
"selectSchool": "选择学校",
"selectGrade": "选择年级",
"clear": "清除筛选",
"reset": "重置",
"unknownClass": "未知班级",
"filterByClass": "按班级筛选",
"filterByStatus": "按状态筛选",
"addEvent": "添加事件",
"addStudent": "添加学生",
"email": "邮箱",
"emailPlaceholder": "student@example.com",
"subjectPlaceholderExample": "例如 数学",
"createScheduleEntryDescription": "创建一条课表项。",
"enrollStudentDescription": "通过邮箱将学生加入班级。",
"startTime": "开始",
"endTime": "结束"
},
"myClasses": {
"title": "我的班级",
"joinNew": "加入新班级",
"joinTitle": "加入班级",
"joinDescription": "输入管理员提供的 6 位邀请码。",
"invitationCode": "邀请码",
"invitationCodePlaceholder": "如123456",
"invitationCodeHint": "如果没有邀请码,请向管理员索取。",
"subject": "教学科目",
"subjectPlaceholder": "选择教学科目",
"noSubjects": "暂无可选科目",
"selectSubject": "选择教学科目",
"join": "加入班级",
"joining": "加入中...",
"cancel": "取消",
"empty": {
"title": "暂无班级",
"description": "加入一个班级或等待管理员分配。"
},
"entryPass": "入门卡",
"submissionTrends": "提交趋势",
"students": "学生",
"room": "教室",
"noRoom": "无教室",
"vsLastWeek": "较上周",
"viewDetail": "查看详情",
"copyCode": "复制邀请码",
"regenerateCode": "重新生成",
"codeCopied": "邀请码已复制"
},
"students": {
"title": "学生名单",
"searchPlaceholder": "搜索学生...",
"empty": {
"title": "暂无学生",
"description": "该班级还没有学生。",
"noMatch": "没有匹配的学生",
"noMatchDescription": "尝试清除筛选或调整关键词。"
},
"column": {
"name": "姓名",
"email": "邮箱",
"status": "状态",
"scores": "成绩",
"actions": "操作"
},
"status": {
"active": "在读",
"inactive": "停用"
},
"actions": {
"setActive": "设为在读",
"setInactive": "设为停用",
"remove": "移出班级"
},
"removeTitle": "移出班级",
"removeDescription": "确定要将「{name}」移出班级吗?"
},
"schedule": {
"title": "班级课表",
"empty": {
"title": "暂无课表",
"description": "该班级尚未设置课表。",
"noMatch": "该班级暂无课表",
"noMatchDescription": "尝试选择其他班级。"
},
"column": {
"weekday": "星期",
"period": "节次",
"subject": "科目",
"location": "地点",
"teacher": "教师",
"actions": "操作"
},
"form": {
"createTitle": "新增课表项",
"editTitle": "编辑课表项",
"createDescription": "新增一个课表项。",
"editDescription": "更新课表项信息。",
"weekday": "星期",
"period": "节次",
"subject": "科目",
"location": "地点",
"locationPlaceholder": "可选",
"subjectPlaceholder": "如:数学",
"startLabel": "开始时间",
"endLabel": "结束时间",
"cancel": "取消",
"create": "创建",
"save": "保存",
"deleteTitle": "确定删除?",
"deleteDescription": "此操作将永久删除该课表项。"
},
"weekday": {
"1": "周一",
"2": "周二",
"3": "周三",
"4": "周四",
"5": "周五",
"6": "周六",
"7": "周日"
}
},
"detail": {
"header": {
"students": "{count} 名学生",
"homeroom": "班主任 {name}",
"room": "教室 {room}",
"invite": "邀请",
"editDetails": "编辑详情",
"inviteStudents": "邀请学生",
"classSettings": "班级设置",
"moreActions": "更多操作"
},
"overview": {
"averageScore": "平均分",
"submissionRate": "提交率",
"papersToGrade": "待批改",
"overdueCount": "逾期数",
"overallPerformance": "整体表现",
"averageTurnInRate": "平均提交率",
"pendingReviews": "待审核",
"activeAssignmentsPastDue": "逾期活跃作业"
},
"trends": {
"submitted": "已提交",
"totalStudents": "总学生数",
"averageScore": "平均分",
"medianScore": "中位数",
"latest": "最新",
"submission": "提交",
"score": "成绩",
"allSubjects": "全部科目",
"scoreTrends": "成绩趋势",
"recentTurnInRates": "最近作业提交率",
"avgVsMedian": "均分与中位数对比",
"noDataForSubject": "该科目暂无数据"
},
"assignments": {
"due": "截止 {date}",
"noDueDate": "无截止日期",
"viewAll": "查看全部",
"createHomework": "创建作业",
"activeCount": "{count} 个进行中的作业",
"submittedCount": "{submitted}/{total} 已提交",
"avgLabel": "均分"
},
"widgets": {
"recentHomework": "最近作业",
"weeklySchedule": "本周课表",
"quickActions": "快捷操作",
"submissionTrends": "提交趋势",
"studentList": "学生名单"
},
"edit": {
"title": "编辑班级",
"name": "班级名称",
"homeroom": "班主任",
"room": "教室",
"cancel": "取消",
"save": "保存"
},
"empty": {
"noSchedule": "暂无课表",
"noScheduleDescription": "该班级尚未设置课表。",
"noAssignments": "暂无作业",
"noAssignmentsDescription": "该班级尚未布置任何作业。"
},
"students": {
"viewAll": "查看全部",
"activeCount": "{count} 名在读学生"
},
"schedule": {
"manage": "管理",
"showingWeekdays": "仅显示周一至周五课表"
},
"quickActions": {
"manageSchedule": "管理课表",
"messageClassComingSoon": "班级通知(即将上线)"
}
},
"grade": {
"title": "班级管理",
"description": "管理你所在年级的班级。",
"noManagedGrades": "暂无负责年级",
"noManagedGradesDescription": "你尚未管理任何年级。",
"insights": {
"title": "年级学情",
"description": "查看你负责年级的作业整体统计。",
"filters": "筛选",
"grade": "年级",
"apply": "应用",
"selectGrade": "选择年级",
"noGrades": "暂无负责年级",
"noGradesDescription": "你尚未被指派为任何年级的年级主任或教研组长。",
"selectToView": "请选择年级查看学情",
"selectToViewDescription": "选择一个年级以查看最新作业与历史成绩统计。",
"notFound": "年级不存在",
"notFoundDescription": "该年级可能不存在或暂无可访问数据。",
"noData": "该年级暂无作业数据",
"noDataDescription": "该年级学生尚未收到任何作业。",
"classes": "班级",
"students": "学生",
"overallAvg": "整体均分",
"latestAvg": "最新均分",
"homeworkTimeline": "作业时间线",
"classRanking": "班级排名",
"assignment": "作业",
"status": "状态",
"created": "创建时间",
"targeted": "目标人数",
"submitted": "已提交",
"graded": "已批改",
"avg": "均分",
"median": "中位数",
"class": "班级",
"latestAvgCol": "最新均分",
"prevAvg": "上次均分",
"delta": "变化",
"overallAvgCol": "整体均分",
"active": "活跃",
"inactive": "非活跃"
}
},
"bulk": {
"importStudents": {
"title": "批量导入学生",
"description": "每行一个邮箱格式name,email 或仅 email",
"placeholder": "张三,zhangsan@example.com\nlisi@example.com",
"submit": "导入",
"success": "成功导入 {imported} 个学生,{failed} 个失败",
"failed": "批量导入失败"
},
"assignTeachers": {
"title": "批量分配教师",
"description": "每行格式:班级名称,科目,教师邮箱",
"placeholder": "一班,语文,zhangsan@example.com\n二班,数学,lisi@example.com",
"submit": "分配",
"success": "成功更新 {updated} 个分配,{failed} 个失败",
"failed": "批量分配失败"
}
},
"errors": {
"boundary": {
"title": "加载失败",
"description": "数据加载时发生错误,请重试",
"retry": "重试"
}
},
"error": {
"title": "加载失败",
"description": "数据加载时发生错误,请重试",
"retry": "重试"
},
"actions": {
"classCreated": "班级创建成功",
"classUpdated": "班级更新成功",
"classDeleted": "班级删除成功",
"studentAdded": "学生添加成功",
"studentUpdated": "学生状态更新成功",
"invitationCodeReady": "邀请码已就绪",
"invitationCodeUpdated": "邀请码已更新",
"invitationCodeGenerated": "邀请码已生成",
"invitationCodeRevoked": "邀请码已撤销",
"scheduleItemCreated": "课表项创建成功",
"scheduleItemUpdated": "课表项更新成功",
"scheduleItemDeleted": "课表项删除成功",
"joinedClass": "加入班级成功",
"bulkImportResult": "成功导入 {imported} 个学生,{failed} 个失败",
"bulkAssignResult": "成功更新 {updated} 个分配,{failed} 个失败",
"missingClassId": "缺少班级 ID",
"missingScheduleId": "缺少课表 ID",
"missingCodeId": "缺少邀请码 ID",
"missingEnrollmentInfo": "缺少注册信息",
"invalidScheduleData": "课表项数据无效",
"invalidExpiresInHours": "有效期(小时)无效",
"invalidMaxUses": "最大使用次数无效",
"csvRequired": "CSV 数据为必填",
"noValidEntries": "未找到有效条目",
"classNameGradeTeacherRequired": "班级名称、年级和教师为必填",
"classNameGradeRequired": "班级名称和年级为必填",
"invitationCodeRequired": "邀请码为必填",
"subjectRequired": "科目为必填",
"tooManyAttempts": "尝试过于频繁,请稍后再试",
"scheduleItemNotFound": "未找到课表项",
"classNotFoundOrNotLinked": "班级不存在或未关联年级",
"notPermissionCreateGrade": "无权为该年级创建班级",
"notPermissionUpdateClass": "无权更新此班级",
"notPermissionMoveClass": "无权将班级移动到该年级",
"notPermissionDeleteClass": "无权删除此班级",
"notOwnClass": "你不是此班级的所有者",
"notPermissionManageClass": "无权管理此班级",
"notPermissionManageClassSchedule": "无权管理此班级课表",
"onlyAdminsAndGradeHeads": "仅管理员和年级主任可创建班级",
"classAndEmailRequired": "请选择班级并填写学生邮箱",
"invalidWeekday": "无效的星期值",
"invalidSubjectTeachers": "任课教师数据无效"
},
"metadata": {
"myClasses": "我的班级",
"classDetail": "班级详情",
"schedule": "班级课表",
"students": "学生名单",
"studentLearning": "学习中心",
"studentCourses": "我的课程",
"studentClassDetail": "班级主页",
"studentSchedule": "我的课表"
}
}

View File

@@ -67,5 +67,20 @@
},
"breadcrumb": {
"home": "首页"
},
"widget": {
"error": "组件加载失败",
"retry": "重试",
"loading": "加载中...",
"block": "区块",
"loadFailed": "{title}加载失败",
"defaultFallback": "请重试或刷新页面",
"retryAriaLabel": "重试加载{title}",
"loadingAriaLabel": "{title}加载中"
},
"error": {
"boundaryTitle": "区块加载失败",
"boundaryDescription": "处理请求时发生错误,请重试。",
"retry": "重试"
}
}

View File

@@ -12,5 +12,223 @@
"create": {
"title": "新建课程计划",
"description": "创建新的课程教学计划。"
},
"status": {
"planning": "规划中",
"active": "进行中",
"completed": "已完成",
"paused": "已暂停"
},
"filter": {
"all": "全部",
"placeholder": "按状态筛选"
},
"list": {
"new": "新建课程计划",
"empty": "暂无课程计划。",
"emptyFiltered": "当前筛选条件下无课程计划。",
"unknownSubject": "未知学科",
"noClass": "无班级",
"semester": "第 {semester} 学期",
"created": "创建于 {date}",
"teacher": "教师:{name}",
"unassigned": "未分配",
"emptyCta": "立即创建第一个课程计划"
},
"detail": {
"back": "返回课程计划列表",
"heading": "课程计划",
"edit": "编辑",
"delete": "删除",
"noClass": "无班级",
"unknownSubject": "未知学科",
"unknownSubjectHeading": "课程计划",
"semester": "第 {semester} 学期",
"teacher": "教师:{name}",
"unassigned": "未分配",
"created": "创建于 {date}",
"startDate": "开始 {date}",
"endDate": "结束 {date}",
"syllabus": "教学大纲",
"objectives": "教学目标",
"weekPlans": "周计划",
"addWeekPlan": "添加周计划",
"emptyWeekPlans": "暂无周计划。",
"emptyWeekPlansCta": "点击「添加周计划」创建第一条。",
"week": "周次",
"topic": "主题",
"hours": "课时",
"chapter": "章节",
"statusCol": "状态",
"completed": "已完成",
"pending": "待完成",
"notes": "备注:{notes}",
"dragHandle": "拖拽手柄(按住可调整顺序)",
"selectWeekAria": "选择第 {week} 周",
"reorderFailed": "调整顺序失败,请重试",
"reorderSaved": "顺序已保存",
"viewTextbookAria": "查看教材章节:{chapter}",
"viewHomeworkAria": "查看相关作业",
"deleteTitle": "删除课程计划",
"deleteDescription": "此操作将永久删除该课程计划及其所有周计划。"
},
"form": {
"new": "新建课程计划",
"edit": "编辑课程计划",
"class": "班级",
"selectClass": "选择班级",
"subject": "学科",
"selectSubject": "选择学科",
"teacher": "教师",
"selectTeacher": "选择教师",
"academicYear": "学年",
"optional": "可选",
"semester": "学期",
"semester1": "第一学期",
"semester2": "第二学期",
"status": "状态",
"selectStatus": "选择状态",
"totalHours": "总课时",
"weeklyHours": "周课时",
"startDate": "开始日期",
"endDate": "结束日期",
"syllabus": "教学大纲",
"syllabusPlaceholder": "教学大纲内容...",
"objectives": "教学目标",
"objectivesPlaceholder": "教学目标内容...",
"cancel": "取消",
"create": "创建",
"save": "保存",
"saving": "保存中...",
"invalidState": "表单状态无效",
"saveFailed": "保存课程计划失败"
},
"item": {
"addTitle": "添加周计划",
"editTitle": "编辑周计划",
"week": "周次",
"hours": "课时",
"topic": "主题",
"topicPlaceholder": "本周主题",
"content": "内容",
"contentPlaceholder": "教学内容...",
"chapter": "教材章节",
"chapterPlaceholder": "如:第三章",
"completedAt": "完成日期",
"notes": "备注",
"notesPlaceholder": "备注...",
"markComplete": "标记完成",
"markIncomplete": "标记未完成",
"delete": "删除",
"cancel": "取消",
"save": "保存",
"saving": "保存中...",
"invalidState": "表单状态无效",
"saveFailed": "保存周计划失败",
"deleteFailed": "删除失败",
"updateFailed": "更新失败"
},
"progress": {
"label": "进度",
"hours": "{completed} / {total} 课时({percent}%",
"weekPlansCompleted": "{completed} / {total} 个周计划已完成"
},
"toast": {
"created": "课程计划已创建",
"updated": "课程计划已更新",
"deleted": "课程计划已删除",
"weekAdded": "周计划已添加",
"weekUpdated": "周计划已更新",
"weekDeleted": "周计划已删除",
"markedComplete": "已标记为完成",
"markedIncomplete": "已标记为未完成",
"deleteFailed": "删除失败",
"saveFailed": "保存失败",
"reorderSaved": "排序已保存",
"reorderFailed": "排序保存失败",
"bulkMarked": "已批量标记 {count} 条完成",
"bulkFailed": "批量操作失败",
"copySuccess": "课程计划已复制到 {count} 个班级",
"copyFailed": "复制失败",
"exportFailed": "导出失败",
"invalidGradeId": "年级 ID 无效"
},
"teacher": {
"title": "我的课程计划",
"description": "查看您的课程教学计划与周课时安排。"
},
"parent": {
"title": "孩子课程计划",
"description": "查看孩子所在班级的课程教学计划。"
},
"student": {
"title": "课程计划",
"description": "查看本班课程教学计划与每周教学安排。"
},
"errors": {
"notFound": "课程计划不存在",
"invalidForm": "表单数据无效",
"invalidGradeId": "年级 ID 无效",
"noPermission": "无权访问该课程计划",
"loadFailed": "课程计划加载失败",
"loadFailedDesc": "加载课程计划数据时发生错误,请稍后重试。",
"retry": "重试"
},
"error": {
"boundaryTitle": "课程计划区块加载失败",
"boundaryDescription": "加载课程计划数据时发生错误,请重试。",
"retry": "重试"
},
"calendar": {
"title": "日历视图",
"list": "列表视图",
"noPlans": "该时间段暂无教学安排",
"prevMonth": "上一月",
"nextMonth": "下一月",
"today": "今天",
"monthTitle": "{year}年{month}月",
"weekShort": ["一", "二", "三", "四", "五", "六", "日"],
"weekFull": ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
"week": "第 {week} 周",
"hours": "{hours} 课时",
"completed": "已完成",
"pending": "待完成",
"noStartDate": "课程计划未设置开始日期,无法在日历中显示教学安排。"
},
"export": {
"title": "导出",
"csv": "导出 CSV",
"pdf": "导出 PDF",
"excel": "导出 Excel",
"exported": "课程计划已导出",
"exportFailed": "导出失败",
"filename": "课程计划-{subject}-{className}",
"content": "内容",
"notes": "备注"
},
"bulk": {
"markComplete": "批量标记完成",
"copy": "复制到其他班级",
"copyTitle": "选择目标班级",
"confirm": "确认复制",
"selectTargets": "选择要复制到的班级"
},
"templates": {
"title": "课程计划模板",
"empty": "暂无模板",
"createFromTemplate": "从模板创建",
"saveAsTemplate": "存为模板",
"searchPlaceholder": "搜索班级 / 学科 / 教师",
"confirm": "确认创建",
"cancel": "取消",
"cloning": "正在创建...",
"cloneSuccess": "已从模板创建课程计划",
"cloneFailed": "从模板创建失败",
"selectTemplateFirst": "请先选择一个模板",
"noTargetClass": "请先选择目标班级"
},
"loading": {
"title": "加载中...",
"description": "正在加载课程计划数据..."
}
}
}

View File

@@ -90,6 +90,8 @@
"empty": "今日无待办事项"
},
"sections": {
"quickStats": "快速统计",
"trends": "趋势图表",
"userGrowthTrend": "用户增长趋势近30天",
"homeworkSubmissionTrend": "作业提交趋势近7天",
"userRoles": "用户角色分布",
@@ -106,7 +108,9 @@
"homework": "作业",
"recentSubmissions": "最近提交",
"classPerformance": "班级表现",
"recentGrades": "最近成绩"
"recentGrades": "最近成绩",
"notifications": "通知中心",
"viewAllNotifications": "查看全部通知"
},
"table": {
"name": "姓名",
@@ -148,7 +152,9 @@
"noData": "暂无数据",
"noDataDesc": "发布作业后即可查看班级表现趋势。",
"noGradedWork": "暂无已批改作业",
"noGradedWorkDesc": "完成并提交作业后即可查看成绩趋势。"
"noGradedWorkDesc": "完成并提交作业后即可查看成绩趋势。",
"noNotifications": "暂无通知",
"noNotificationsDesc": "您没有新的通知消息。"
},
"badge": {
"activeSessions": "{count} 个活跃会话",
@@ -177,6 +183,26 @@
"latest": "最新",
"points": "得分"
},
"timeRange": {
"label": "时间范围",
"today": "今日",
"week": "本周",
"month": "本月"
},
"comparison": {
"label": "数据对比",
"vsLastPeriod": "对比上一周期",
"increase": "增长 {value}%",
"decrease": "下降 {value}%",
"noChange": "持平",
"noData": "暂无对比数据"
},
"export": {
"label": "导出",
"csv": "导出 CSV",
"success": "导出成功",
"failed": "导出失败"
},
"schedule": {
"noDueDate": "无截止日期",
"scrollForMore": "滚动查看更多",

View File

@@ -75,7 +75,7 @@
"empty": "暂无强项知识点"
},
"weaknesses": {
"title": "弱项(<60%",
"title": "弱项(<80%",
"practice": "练习",
"empty": "暂无弱项知识点"
},
@@ -92,13 +92,25 @@
"deleteFailed": "删除失败",
"loadFailed": "加载失败",
"exportFailed": "导出失败",
"retry": "重试"
"retry": "重试",
"pageTitle": "学情诊断页面加载失败",
"pageDescription": "抱歉,页面加载时发生了意外错误。请稍后重试。",
"classLoadFailed": "班级学情诊断加载失败",
"classLoadFailedDesc": "抱歉,加载班级诊断数据时发生了意外错误。请稍后重试。",
"studentLoadFailed": "学生学情诊断加载失败",
"studentLoadFailedDesc": "抱歉,加载学生诊断数据时发生了意外错误。请稍后重试。",
"parentLoadFailed": "子女学情诊断加载失败",
"parentLoadFailedDesc": "抱歉,加载子女诊断数据时发生了意外错误。请稍后重试。",
"childLoadFailed": "{studentName} 的诊断数据加载失败",
"childLoadFailedDesc": "请刷新页面,若问题持续存在请联系学校管理员。",
"reportNotFound": "报告不存在"
},
"classDiagnostic": {
"noClassDataTitle": "暂无班级数据",
"heatmapDescription": "各知识点平均掌握度绿色≥80%优秀黄色60-79%良好橙色40-59%待提升,红色<40%薄弱)。",
"noKnowledgePointData": "暂无知识点数据。",
"heatmapAriaLabel": "知识点掌握度热力图,共 {count} 个知识点颜色表示掌握度等级绿色≥80%优秀黄色60-79%良好橙色40-59%待提升,红色<40%薄弱",
"heatmapCellAriaLabel": "{name}{level}%{label}{mastered}/{total}",
"masteryLevelExcellent": "优秀",
"masteryLevelGood": "良好",
"masteryLevelNeedsImprovement": "待提升",
@@ -150,15 +162,6 @@
"deleteAriaLabel": "删除报告 {studentName}",
"exportAriaLabel": "导出报告 {studentName}",
"exportSuccess": "报告已导出",
"share": "分享",
"shareAriaLabel": "分享报告 {studentName}",
"shareTitle": "分享报告",
"shareDescription": "复制报告链接分享给学生或家长。",
"shareLinkLabel": "报告链接",
"copyLink": "复制链接",
"copyLinkSuccess": "链接已复制",
"copyLinkFailed": "复制链接失败",
"shareLinkAriaLabel": "报告分享链接",
"confidenceColumn": "置信度",
"confidenceHigh": "高",
"confidenceMedium": "中",
@@ -199,6 +202,52 @@
"weaknesses": "弱项",
"reports": "诊断报告",
"noReports": "该子女暂无诊断报告。",
"noReportsTitle": "暂无诊断报告",
"noReportsDescription": "该子女暂无诊断报告,生成后将显示在此处。",
"mastery": "掌握度"
},
"reportContent": {
"studentSummary": "学生 {studentName} 在 {period} 期间整体掌握度 {score}%,共评估 {total} 个知识点,强项 {strengths} 个,弱项 {weaknesses} 个。",
"studentRecommendation": "建议复习「{kpName}」知识点,多做相关练习以提升掌握度(当前 {level}%)。",
"studentNoWeakness": "整体掌握情况良好,建议保持当前学习节奏并挑战更高难度题目。",
"classSummary": "班级 {className} 在 {period} 期间整体掌握度 {score}%,学生 {students} 人,需重点关注 {attention} 人。",
"classRecommendation": "班级在「{kpName}」整体掌握度偏低({level}%),建议安排专项复习与巩固练习。",
"classNoWeakness": "班级整体掌握情况良好,建议保持当前教学节奏。",
"gradeSummary": "年级 {gradeName} 在 {period} 期间整体掌握度 {score}%,学生 {students} 人,需重点关注 {attention} 人。",
"gradeRecommendation": "年级在「{kpName}」整体掌握度偏低({level}%),建议协调年级教师安排专项复习。",
"gradeNoWeakness": "年级整体掌握情况良好,建议保持当前教学节奏。"
},
"exportContent": {
"sheetOverview": "报告概览",
"sheetMastery": "知识点掌握度",
"sheetClassStats": "知识点统计",
"sheetAttentionStudents": "需关注学生",
"metricStudent": "学生姓名",
"metricClass": "班级",
"metricPeriod": "报告周期",
"metricScore": "综合得分",
"metricStatus": "报告状态",
"metricGeneratedBy": "生成人",
"metricCreatedAt": "生成时间",
"metricSummary": "摘要",
"metricStrengths": "强项",
"metricWeaknesses": "弱项",
"metricRecommendations": "建议",
"metricReportType": "报告类型",
"metricStudentCount": "学生人数",
"metricAttentionCount": "需关注人数",
"colKnowledgePoint": "知识点",
"colMasteryLevel": "掌握度",
"colTotalQuestions": "总题数",
"colCorrectQuestions": "正确数",
"colLastAssessed": "最近评估",
"colMasteredCount": "已掌握(≥80%)",
"colNotMasteredCount": "未掌握(<60%)",
"colTotalStudents": "总人数",
"colStudentName": "学生姓名",
"colAverageMastery": "平均掌握度",
"colWeakCount": "弱项数",
"noAttentionStudents": "所有学生均高于关注阈值",
"filename": "诊断报告_{period}_{date}.xlsx"
}
}

View File

@@ -3,6 +3,7 @@
"adminList": "选修课程",
"create": "创建课程",
"edit": "编辑课程",
"detail": "课程详情",
"teacher": "我的选修课",
"student": "选课中心"
},
@@ -10,6 +11,7 @@
"adminList": "管理选修课程、开放/关闭选课与抽签。",
"create": "创建新的选修课程。",
"edit": "更新选修课程详情。",
"detail": "查看选修课程详细信息与学生选课情况。",
"teacher": "查看和管理您教授的选修课程。",
"student": "浏览可选课程并进行选课。"
},
@@ -48,7 +50,9 @@
"selectionStart": "选课开始",
"selectionEnd": "选课结束",
"selectionMode": "选课模式",
"credit": "学分"
"credit": "学分",
"dropDeadline": "退课截止时间",
"dropReason": "退课理由"
},
"actions": {
"create": "创建课程",
@@ -72,7 +76,49 @@
"createTitle": "创建选修课程",
"editTitle": "编辑选修课程",
"namePlaceholder": "请输入课程名称",
"descriptionPlaceholder": "请输入课程描述"
"descriptionPlaceholder": "请输入课程描述",
"nameLabel": "课程名称 *",
"subjectLabel": "科目",
"gradeLabel": "年级",
"teacherLabel": "授课教师",
"capacityLabel": "容量",
"classroomLabel": "教室",
"scheduleLabel": "上课时间",
"schedulePlaceholder": "例如:周一 14:00-15:30",
"creditLabel": "学分",
"startDateLabel": "开始日期",
"endDateLabel": "结束日期",
"selectionStartLabel": "选课开始",
"selectionEndLabel": "选课结束",
"dropDeadlineLabel": "退课截止时间",
"dropDeadlineHint": "超过此时间学生不可退课,留空表示不限制。",
"descriptionLabel": "课程描述",
"cancelButton": "取消",
"saveButton": "保存",
"createButton": "创建",
"savingButton": "保存中...",
"selectSubjectPlaceholder": "请选择科目",
"selectGradePlaceholder": "请选择年级",
"selectTeacherPlaceholder": "请选择教师",
"selectModePlaceholder": "请选择选课模式",
"invalidFormState": "表单状态无效",
"saveFailed": "保存课程失败"
},
"stats": {
"totalCourses": "课程总数",
"totalEnrolled": "总选课人数",
"avgUtilization": "平均容量使用率",
"pendingLottery": "待抽签课程",
"utilization": "{enrolled}/{capacity}",
"utilizationRate": "{rate}%"
},
"parent": {
"title": "子女选课",
"description": "查看子女的选课情况。",
"noChildrenTitle": "暂无关联子女",
"noChildrenDescription": "您尚未关联任何子女,无法查看选课信息。",
"noRecordsTitle": "暂无选课记录",
"noRecordsDescription": "子女暂未选课。"
},
"student": {
"mySelections": "我的选课",
@@ -83,7 +129,19 @@
"capacityFull": "名额已满",
"selectSuccess": "选课成功",
"dropSuccess": "退课成功",
"confirmDrop": "确定退选此课程吗?"
"confirmDrop": "确定退选此课程吗?",
"dropReasonPlaceholder": "选填:请输入退课理由(最多 255 字符)"
},
"detail": {
"studentsTitle": "选课名单",
"noStudents": "暂无学生选课",
"noStudentsDescription": "尚未有学生选此课程。",
"back": "返回列表",
"editCourse": "编辑课程",
"studentName": "学生姓名",
"priority": "优先级",
"selectedAt": "选课时间",
"enrolledAt": "录取时间"
},
"lottery": {
"result": "抽签结果:录取 {enrolled} 人,候补 {waitlist} 人",
@@ -95,11 +153,28 @@
"capacityFull": "课程名额已满",
"alreadySelected": "您已选过此课程",
"selectionClosed": "选课已关闭",
"selectionNotOpen": "选课尚未开放",
"selectionNotStarted": "选课尚未开始",
"selectionEnded": "选课已结束",
"courseNotFound": "课程不存在",
"noActiveSelection": "未找到有效的选课记录",
"gradeMismatch": "您的年级不符合课程要求",
"scheduleConflict": "时间与已选课程冲突",
"creditExceeded": "学分超限({current}/{max}",
"invalidForm": "表单数据无效",
"unexpected": "发生未知错误"
"unexpected": "发生未知错误",
"dropDeadlinePassed": "退课截止时间已过,无法退课",
"title": "加载失败",
"description": "页面数据加载异常,请稍后重试。"
},
"export": {
"courseSheetName": "课程明细",
"selectionSheetName": "选课名单",
"statusHeader": "状态",
"priorityHeader": "优先级",
"selectedAtHeader": "选课时间",
"enrolledAtHeader": "录取时间",
"indexHeader": "#"
},
"messages": {
"created": "选修课程已创建",
@@ -110,5 +185,16 @@
"lotteryCompleted": "抽签完成:录取 {enrolled} 人,候补 {waitlist} 人",
"courseDropped": "已退选课程",
"ownershipCheckFailed": "归属校验失败"
},
"settings": {
"creditLimitDefault": "默认学分上限",
"creditLimitDefaultDescription": "未配置年级专属上限时使用的全局学期学分上限。",
"capacityNotifyThreshold": "容量阈值通知比例",
"capacityNotifyThresholdDescription": "课程录取人数达到容量该比例时通知教师/管理员0-1默认 0.9)。",
"saved": "设置已保存"
},
"notifications": {
"capacityWarningTitle": "课程容量预警:{courseName}",
"capacityWarningContent": "课程 \"{courseName}\" 已选满 {enrolled}/{capacity} 人(达到 {percent}% 阈值),请考虑扩容或关闭选课。"
}
}

View File

@@ -7,7 +7,12 @@
"learning": "学习中",
"mastered": "已掌握",
"dueReview": "待复习",
"masteredRate": "掌握率"
"masteredRate": "掌握率",
"totalDesc": "累计收录的错题",
"newDesc": "尚未开始复习",
"learningDesc": "正在复习掌握",
"masteredDesc": "掌握率 {rate}%",
"dueReviewDesc": "今日到期复习"
},
"status": {
"new": "待学习",
@@ -36,7 +41,9 @@
"saveNote": "保存笔记",
"archive": "归档",
"delete": "删除",
"collect": "采集错题"
"collect": "采集错题",
"cancel": "取消",
"adding": "添加中..."
},
"fields": {
"question": "选择题目",
@@ -45,7 +52,24 @@
"masteryLevel": "掌握度",
"reviewCount": "复习次数",
"nextReview": "下次复习",
"createdAt": "添加时间"
"createdAt": "添加时间",
"student": "学生",
"className": "班级"
},
"masteryLevel": {
"0": "未学习",
"1": "入门",
"2": "了解",
"3": "熟悉",
"4": "熟练",
"5": "掌握"
},
"questionType": {
"single_choice": "单选",
"multiple_choice": "多选",
"judgment": "判断",
"text": "简答",
"composite": "复合"
},
"errorTags": {
"concept": "概念不清",
@@ -56,13 +80,59 @@
"memory": "记忆错误",
"time": "时间不足"
},
"itemCard": {
"questionDeleted": "题目已删除",
"questionContent": "题目内容",
"difficulty": "难度 {level}",
"mastery": "掌握度: {level}",
"reviewTimes": "复习 {count} 次",
"needReview": "需复习",
"nextReview": "下次 {date}",
"addedAt": "添加于 {date}",
"masteryOutOf": "掌握度: {level}/5"
},
"detailDialog": {
"question": "题目",
"myAnswer": "我的答案",
"correctAnswer": "正确答案",
"aiAnalysis": "AI 智能分析",
"reviewSelf": "复习自评",
"studyNote": "学习笔记",
"notePlaceholder": "记录你的反思、解题思路、易错点...",
"errorTagsLabel": "错误原因标签",
"reviewHistory": "复习历史",
"questionDeleted": "题目已删除",
"variantPractice": "错题变式练习",
"variantPracticeDesc": "从当前错题出发,进行针对性练习"
},
"filters": {
"searchPlaceholder": "搜索笔记内容...",
"status": "状态",
"source": "来源",
"review": "复习",
"allStatus": "全部状态",
"allSource": "全部来源",
"allErrors": "全部错题",
"dueOnly": "仅看待复习"
},
"addDialog": {
"title": "添加错题",
"description": "从题库中选择题目,添加到你的错题本。你也可以在完成作业/考试后自动采集。",
"selectQuestion": "选择题目",
"selectPlaceholder": "从题库中选择...",
"noteLabel": "学习笔记(可选)",
"notePlaceholder": "记录错误原因、解题思路...",
"errorTagsLabel": "错误原因标签",
"questionPreview": "题目"
},
"empty": {
"title": "错题本为空",
"description": "完成考试或作业后,错题会自动收录到这里。你也可以手动添加错题。"
},
"teacher": {
"title": "错题分析",
"description": "查看班级学生的错题统计与薄弱知识点,辅助精准教学",
"description": "按学科、班级查看学生的错题统计与薄弱知识点,辅助精准教学",
"descriptionShort": "按学科、班级查看学生的错题统计与薄弱知识点。",
"coverage": "覆盖学生",
"totalErrors": "错题总数",
"avgMastery": "平均掌握率",
@@ -71,7 +141,16 @@
"studentDetail": "学生错题详情",
"topWrong": "高频错题",
"noClass": "暂无可查看的班级",
"noStudent": "班级暂无学生"
"noClassDesc": "您还未被分配到任何班级,无法查看错题分析数据。",
"noStudent": "班级暂无学生",
"noStudentDesc": "班级中没有学生,无法查看错题分析数据。",
"noChapterDataTitle": "暂无章节错题数据",
"noChapterDataDesc": "尚未关联知识点到章节,无法显示章节维度统计。",
"noKpDataTitle": "暂无知识点数据",
"noKpDataDesc": "错题尚未关联知识点,无法显示薄弱知识点统计。",
"noStudentErrorsTitle": "暂无学生错题",
"noStudentErrorsDesc": "所选范围内没有学生错题数据。",
"studentsCount": "共 {total} 名学生,{withErrors} 名有错题"
},
"parent": {
"title": "子女错题本",
@@ -104,6 +183,100 @@
"noStudentErrorsTitle": "暂无学生错题",
"noStudentErrorsDescription": "所选学科下没有学生错题数据。"
},
"analyticsStats": {
"coverage": "覆盖学生",
"coverageSub": "/ {total} 人",
"totalErrors": "错题总数",
"totalErrorsSub": "人均 {avg} 题",
"avgMastery": "平均掌握率",
"avgMasteryGood": "整体良好",
"avgMasteryNeedImprove": "需加强",
"dueReview": "待复习",
"dueReviewNeedAttention": "需要关注",
"dueReviewNone": "无到期",
"knowledgePoints": "涉及知识点",
"knowledgePointsWide": "范围较广",
"knowledgePointsFocused": "集中"
},
"subjectTabs": {
"all": "全部学科",
"dueReview": "待复习 {count}"
},
"classFilter": {
"all": "全部班级",
"errorCount": "{count} 错题",
"dueReview": "{count} 待复习"
},
"topWrong": {
"title": "高频错题",
"topTitle": "高频错题 Top 10",
"emptyTitle": "暂无高频错题",
"emptyDesc": "学生完成作业或考试后,错频统计会显示在这里。",
"errorCount": "{count} 人错",
"masteredCount": "{count} 人已掌握",
"masteryRate": "掌握率 {rate}%"
},
"weaknessChart": {
"title": "薄弱知识点 Top {count}",
"errorCount": "错题数",
"chapterLabel": "所属章节:{title}",
"masteredLabel": "已掌握",
"masteryRateLabel": "掌握率",
"unclassified": "未分类"
},
"chapterChart": {
"title": "章节错题分布(哪些课在错)",
"errorCount": "错题数",
"masteredLabel": "已掌握",
"masteryRateLabel": "掌握率",
"knowledgePointCount": "知识点数",
"weakKpsLabel": "薄弱知识点:",
"knowledgePointBadge": "{count} 个知识点"
},
"classErrorBar": {
"title": "各班级错题数对比",
"errorCount": "错题总数",
"studentCount": "学生数",
"avgPerStudent": "人均错题",
"avgMastery": "平均掌握率",
"dueReview": "待复习"
},
"subjectDistChart": {
"title": "各学科错题分布",
"errorCount": "错题数",
"masteredLabel": "已掌握",
"masteryRateLabel": "掌握率"
},
"groupedTable": {
"unclassified": "未分班",
"studentCount": "{count} 人",
"studentsWithErrors": "{count} 人有错题",
"totalErrors": "错题总数",
"avgMastery": "平均掌握率",
"student": "学生",
"new": "待学习",
"learning": "学习中",
"mastered": "已掌握",
"dueReview": "待复习",
"masteryRate": "掌握率",
"unknown": "未知"
},
"classOverview": {
"coverage": "覆盖学生",
"coverageDesc": "有错题记录的学生数",
"totalErrors": "错题总数",
"totalErrorsDesc": "班级累计错题",
"avgMastery": "平均掌握率",
"avgMasteryDesc": "已掌握错题占比",
"weakPoints": "薄弱知识点",
"weakPointsDesc": "需重点讲解",
"weakPointsTitle": "薄弱知识点 Top 10",
"subjectDist": "学科错题分布",
"noData": "暂无数据",
"errorsAndMastery": "{count} 错 · {rate}% 掌握",
"noStudentData": "暂无学生错题数据",
"noStudentDataDesc": "学生完成作业或考试后,错题数据会自动汇总到这里。"
},
"messages": {
"added": "错题已添加",
"noteSaved": "笔记已保存",
@@ -118,6 +291,8 @@
"archiveFailed": "归档失败",
"collectFailed": "采集错题失败",
"notFound": "错题不存在或无权访问",
"selectQuestion": "请选择题目"
"selectQuestion": "请选择题目",
"recordFailed": "记录失败",
"addedShort": "已添加"
}
}

View File

@@ -120,7 +120,10 @@
},
"error": {
"notFound": "考试不存在",
"loadFailed": "加载考试失败"
"loadFailed": "加载考试失败",
"boundaryTitle": "考试数据加载失败",
"boundaryDescription": "该区块数据加载时发生错误,请重试。",
"retry": "重试"
},
"analytics": {
"title": "考试分析",
@@ -149,6 +152,59 @@
"noData": "暂无分析数据,需等待学生提交并批改后生成",
"viewAnalytics": "查看分析"
},
"build": {
"title": "组卷",
"description": "为考试组装题目。",
"examStructure": "试卷结构",
"questionBank": "题库",
"preview": "预览",
"totalScore": "总分",
"saveDraft": "保存草稿",
"publish": "发布",
"richEditor": "富文本编辑器",
"richEditorHint": "切换到富文本编辑器",
"loaded": "已加载",
"startHint": "从右侧面板添加题目开始",
"itemsInStructure": "结构中有 {{count}} 项",
"saveSuccess": "考试草稿已保存",
"saveFailed": "保存失败",
"publishSuccess": "考试已发布",
"publishFailed": "发布失败",
"loadQuestionsFailed": "加载题目失败",
"newGroup": "新分组",
"newSection": "新分卷",
"score": "分值",
"sectionTitlePlaceholder": "分卷标题(如:第Ⅰ卷)",
"groupTitlePlaceholder": "分组标题",
"pts": "分",
"dragItemsHere": "拖拽题目到此处",
"addGroup": "+ 添加分组",
"addSection": "+ 添加分卷",
"section": "分卷",
"group": "分组",
"question": "题目",
"questionContent": "题目内容",
"noQuestionsFound": "未找到匹配筛选条件的题目。",
"noContentPreview": "无内容预览",
"loading": "加载中...",
"loadMore": "加载更多",
"aiVariant": "AI 变体",
"noQuestionsSelected": "尚未选择题目。从题库添加题目或创建分组。",
"createGroup": "创建分组",
"createSection": "创建分卷",
"dragGroupsHere": "拖拽分组或题目到此处",
"dragQuestionsHere": "拖拽题目到此处或从题库添加",
"untitledGroup": "未命名分组",
"previewSubject": "科目",
"previewGrade": "年级",
"previewTime": "时间",
"previewTotal": "总分",
"previewClass": "班级",
"previewName": "姓名",
"previewNo": "学号",
"emptyExamPaper": "空试卷",
"minutes": "分钟"
},
"richEditor": {
"title": "富文本组卷",
"description": "粘贴试卷文本,使用工具栏标记题目/分组/填空/加点字,右侧实时预览",
@@ -201,6 +257,167 @@
"essay": "作文题",
"text": "文本题"
}
},
"preview": {
"selectQuestionHint": "请选择左侧题目后进行编辑",
"editorTitle": "题目编辑",
"editorDescription": "直接修改或通过 AI 指令重写当前题目",
"stem": "题干",
"aiRewriteInstruction": "AI 重写指令",
"aiRewritePlaceholder": "例如:把这题改成更难、增加一个干扰项、保持总分不变。",
"aiRewriteButton": "AI 重写当前题目",
"rawModelOutput": "模型原始输出"
},
"subQuestions": {
"title": "子题",
"add": "新增子题",
"contentPlaceholder": "子题内容",
"answerPlaceholder": "参考答案",
"scorePlaceholder": "分值",
"empty": "当前题目没有子题"
},
"richForm": {
"sectionLabel": "分卷",
"partLabel": "部分",
"groupLabel": "大题",
"questionCountSummary": "(共 {{count}} 题,{{score}} 分)",
"typeSingleChoice": "单选",
"typeMultipleChoice": "多选",
"typeJudgment": "判断",
"typeComposite": "复合",
"typeShortAnswer": "简答",
"scoreUnit": "分",
"emptyPreview": "暂无题目,请在左侧编辑器中添加",
"missingExamId": "缺少试卷 ID",
"backToBuild": "返回组卷"
},
"editor": {
"loading": "编辑器加载中...",
"contentPlaceholder": "在此粘贴或输入试卷内容,选中文本可标记为题目/分组/加点字/填空..."
},
"selectionToolbar": {
"ariaLabel": "选区标记工具栏",
"sectionLabel": "分卷",
"groupLabel": "大题",
"singleChoice": "单选",
"blankShortAnswer": "填空/简答",
"composite": "复合",
"image": "图片",
"defaultGroupTitle": "一、选择题",
"defaultSectionTitle": "第Ⅰ卷 选择题"
},
"previewHook": {
"taskInterrupted": "页面刷新后任务已中断,请重新生成",
"untitledExam": "未命名试卷",
"queuedSuccess": "已加入后台队列,可继续编辑页面",
"backgroundComplete": "后台生成完成:{{title}}",
"backgroundFailed": "后台生成失败:{{title}}",
"selectQuestionFirst": "请先选择一个题目",
"questionNotFound": "未找到选中的题目",
"enterRewriteInstruction": "请输入重写指令",
"aiRewriteFailed": "AI 重写失败",
"aiRewriteSuccess": "题目已按指令重写",
"generatePreviewFailed": "生成预览失败",
"pasteSourceFirst": "请先粘贴试卷文本"
},
"paperPreview": {
"scoreWithUnit": "({{score}}分)"
},
"actionMessages": {
"enterRewriteInstruction": "请输入重写指令",
"noSelectedQuestion": "未选择题目数据",
"questionFormatInvalid": "选中题目格式无效",
"questionsDataInvalid": "题目数据格式无效",
"structureDataInvalid": "试卷结构数据格式无效",
"dbCreateFailed": "数据库错误:创建考试失败",
"createdSuccess": "考试创建成功",
"analyzeFirst": "请先分析预览后再创建",
"pasteSourceFirst": "请先粘贴完整试卷文本",
"aiQuestionFormatInvalid": "AI 题目格式无效",
"invalidUpdateData": "更新数据无效",
"onlyOwnUpdate": "只能更新自己创建的考试",
"dbUpdateFailed": "数据库错误:更新考试失败",
"updated": "考试已更新",
"invalidDeleteData": "删除数据无效",
"onlyOwnDelete": "只能删除自己创建的考试",
"dbDeleteFailed": "数据库错误:删除考试失败",
"deleted": "考试已删除",
"invalidDuplicateData": "复制数据无效",
"notFound": "考试不存在",
"dbDuplicateFailed": "数据库错误:复制考试失败",
"duplicated": "考试已复制",
"loadPreviewFailed": "加载考试预览失败",
"loadSubjectsFailed": "加载科目失败",
"loadGradesFailed": "加载年级失败",
"invalidGradeId": "年级 ID 无效",
"titleRequired": "请填写试卷标题",
"contentRequired": "试卷内容不能为空",
"contentInvalid": "试卷内容格式无效",
"contentParseFailed": "试卷内容解析失败",
"draftCreated": "试卷草稿已创建",
"examUpdated": "试卷已更新",
"sourceTextRequired": "试卷文本不能为空",
"autoMarkCompleted": "AI 自动标记完成",
"noQuestionText": "(无题目文本)"
},
"card": {
"level": "难度 {{level}}",
"minutes": "{{count}} 分钟",
"points": "{{count}} 分",
"questions": "{{count}} 题"
},
"viewer": {
"section": "分卷",
"group": "大题",
"score": "分值",
"scoreLabel": "分值:{{score}}",
"noQuestions": "暂无题目",
"unknown": "未知"
},
"previewDialog": {
"section": "分卷",
"title": "试卷预览",
"generating": "生成预览中...",
"fullPreview": "完整试卷预览",
"summary": "{{count}} 题 · {{subject}} · {{grade}} · {{minutes}} 分钟 · {{total}} 分",
"noPreview": "暂无预览内容",
"confirmCreate": "确认并创建",
"untitledQuestion": "未命名题目",
"untitledSubQuestion": "未命名子题",
"scoreUnit": "分"
},
"questionOptions": {
"label": "选项",
"addOption": "新增选项",
"correct": "正确",
"markCorrectAria": "标记选项 {{id}} 为正确答案",
"deleteOptionAria": "删除选项"
},
"editorExtensions": {
"blank": {
"ariaLabel": "填空"
},
"group": {
"titlePlaceholder": "大题标题(如:一、选择题)",
"instructionPlaceholder": "说明(如:每小题3分,共24分)—— 可留空,总分自动统计",
"statsSummary": "共 {{count}} 题 · {{score}} 分"
},
"question": {
"typeSingleChoice": "单选",
"typeMultipleChoice": "多选",
"typeJudgment": "判断",
"typeText": "填空/简答",
"typeComposite": "复合",
"scoreUnit": "分"
},
"section": {
"titlePlaceholder": "分卷标题(如:第Ⅰ卷 选择题)",
"levelTitle": "层级",
"levelVolume": "卷",
"levelPart": "部分",
"levelSubVolume": "分卷",
"statsSummary": "共 {{count}} 题 · {{score}} 分"
}
}
},
"homework": {
@@ -255,7 +472,19 @@
"titleRequired": "请输入标题",
"selectClassRequired": "请选择班级",
"createSuccess": "作业已创建",
"createFailed": "创建失败"
"createFailed": "创建失败",
"createDescription": "快速发布文本作业或从考试派生。",
"noClassesAvailable": "暂无可用班级",
"noClassesDescription": "请先创建班级,然后向该班级发布作业。",
"goToClasses": "前往班级",
"error": {
"invalidDate": "日期格式无效",
"titleRequired": "请输入标题",
"dueAfterAvailable": "截止时间必须晚于可用时间",
"lateDueAfterDue": "迟交截止时间必须晚于正常截止时间",
"lateDueRequired": "允许迟交时必须设置迟交截止时间",
"invalidForm": "表单数据无效"
}
},
"take": {
"questions": "题目",
@@ -454,10 +683,101 @@
"notAvailableYet": "作业尚未开放",
"noAttemptsLeft": "尝试次数已用完",
"assignmentNotFound": "作业不存在",
"assignmentNotAvailable": "作业不可用"
"assignmentNotAvailable": "作业不可用",
"loadFailed": "加载失败,请稍后重试",
"scanNotFound": "扫描图不存在或无权访问"
},
"filters": {
"searchPlaceholder": "搜索作业...",
"status": "状态",
"allStatus": "全部状态",
"statusPending": "待提交",
"statusSubmitted": "已提交",
"statusGraded": "已批改"
},
"analytics": {
"examContent": "考试内容",
"questionPreview": "题目预览",
"errorAnalysis": "错误分析",
"errorRateOverview": "错误率概览",
"errorRateAriaLabel": "错误率 {{rate}}%",
"question": "题目",
"errors": "错误数",
"errorRateLabel": "错误率",
"wrongAnswersWithCount": "错答 ({{count}})",
"wrongAnswers": "错答",
"noWrongAnswers": "暂无错答记录。",
"studentAnswer": "学生答案",
"studentCount": "{{count}} 名学生",
"notAnswered": "未作答",
"selectQuestionHint": "请从左侧选择题目",
"selectQuestionHintDesc": "查看错误分析",
"noGradedSubmissions": "暂无已批改的提交。"
},
"scanViewer": {
"noImages": "该学生未上传答题图片",
"noImagesHint": "学生可在答题页拍摄上传纸质答案",
"zoomOut": "缩小",
"zoomIn": "放大",
"rotate": "旋转",
"fullscreen": "全屏",
"pageIndicator": "第 {{current}} / {{total}} 页",
"answerImageAlt": "答题图 第{{page}}页",
"thumbnailAlt": "缩略图 {{page}}"
},
"submissions": {
"title": "作业提交",
"description": "按作业查看提交与批改进度。",
"emptyDescription": "还没有可批改的作业。",
"quickAssignment": "快速作业",
"columns": {
"assignment": "作业"
}
},
"detail": {
"viewSubmissions": "查看提交",
"dueLabel": "截止时间",
"noDueDate": "无截止时间",
"submissionsLabel": "提交数",
"performanceAnalytics": "成绩分析",
"assignmentContent": "作业内容"
},
"excellent": {
"title": "优秀作业展示",
"description": "本作业中得分率达到 {{minPercentage}}% 及以上的优秀样例。",
"empty": "暂无符合条件的优秀作业。",
"emptyHint": "完成批改后将自动汇总展示。",
"loading": "加载优秀作业...",
"loadFailed": "加载失败",
"retry": "重试",
"rank": "第 {{rank}} 名",
"scoreLabel": "得分",
"scoreValue": "{{score}} / {{max}}",
"percentage": "{{value}}%",
"lateTag": "迟交",
"viewDetail": "查看详情",
"submittedAt": "提交于 {{date}}",
"studentAnon": "同学"
},
"parentExam": {
"examsTaken": "已参加考试",
"averageScore": "平均分",
"bestScore": "最高分",
"examResults": "{{name}} 的考试成绩",
"examResultsDescription": "近期考试分数与表现趋势",
"noResults": "暂无考试成绩",
"noResultsHint": "考试成绩将在批改完成后显示。",
"pass": "及格",
"belowPass": "不及格",
"viewGrades": "查看成绩详情"
}
},
"proctoring": {
"page": {
"noPermission": "您没有监考权限。",
"title": "考试监考",
"description": "监控考试期间的学生活动。"
},
"mode": {
"title": "考试模式",
"description": "选择考试模式并配置相关选项。监考模式会启用防作弊监控。",

View File

@@ -1,4 +1,88 @@
{
"title": "文件管理",
"description": "查看与管理系统中所有上传文件。"
}
"description": "查看与管理系统中所有上传文件。",
"upload": {
"title": "点击上传或拖拽到此处",
"hint": "支持图片、PDF、Word、Excel、PPT、文本、ZIP / RAR · 单文件最大 {size}",
"success": "{name} 上传成功",
"error": "{name}{message}",
"empty": "文件为空",
"tooLarge": "文件大小超过 {limit} 限制",
"invalidType": "不允许的文件类型 {type}",
"uploaded": "已上传",
"remove": "移除",
"networkError": "网络错误",
"invalidResponse": "响应格式错误"
},
"list": {
"empty": "暂无文件",
"emptyDescription": "当前没有可显示的文件。",
"download": "下载",
"delete": "删除",
"deleted": "文件已删除",
"deleteFailed": "删除文件失败"
},
"preview": {
"trigger": "预览",
"title": "文件预览",
"download": "下载",
"zoomIn": "放大",
"zoomOut": "缩小",
"office": {
"title": "Office 文件暂不支持在线预览",
"hint": "请下载文件后使用 Office 应用查看。"
},
"other": {
"title": "暂不支持预览",
"hint": "请下载文件查看内容。"
},
"text": {
"title": "文本文件",
"hint": "点击下方按钮加载内容预览。",
"load": "加载预览",
"loading": "加载中...",
"error": "加载文本失败:{message}"
}
},
"admin": {
"title": "文件管理",
"subtitle": "上传并管理系统中所有文件。",
"stats": {
"totalFiles": "文件总数",
"totalSize": "总大小"
},
"filter": {
"byType": "按类型筛选",
"search": "按文件名搜索...",
"allTypes": "全部类型",
"images": "图片",
"pdf": "PDF",
"word": "Word",
"wordDocx": "Word (docx)",
"excel": "Excel",
"excelXlsx": "Excel (xlsx)",
"powerpoint": "PowerPoint",
"powerpointPptx": "PowerPoint (pptx)",
"text": "文本",
"zip": "ZIP"
},
"selection": {
"selected": "已选 {count} 项",
"deleteSelected": "删除所选",
"deleting": "删除中...",
"deleted": "已删除 {count} 个文件",
"deleteFailed": "批量删除文件失败"
},
"empty": {
"title": "未找到文件",
"description": "请调整筛选条件或上传新文件。"
},
"columns": {
"file": "文件",
"size": "大小",
"type": "类型",
"uploaded": "上传时间",
"actions": "操作"
}
}
}

View File

@@ -256,6 +256,9 @@
"pasteHint": "提示:可从 Excel 复制多行多列分数,粘贴到表格中批量填充。按 Enter 跳到下一行Tab 跳到下一格。",
"confirmSwitchExam": "切换试卷将清空已录入的分数,确认切换?",
"confirmSwitchClass": "切换班级将清空已录入的分数,确认切换?",
"confirmTitle": "确认切换",
"confirmAction": "确认切换",
"cancelAction": "取消",
"saveAll": "保存全部成绩",
"saving": "保存中...",
"clear": "清空",
@@ -331,7 +334,9 @@
"ariaLabelEmpty": "分数分布柱状图:暂无数据",
"ariaLabelNonEmpty": "分数分布柱状图:共 {count} 条成绩记录分布在 5 个分数区间",
"tooltipStudents": "{count} 名学生",
"tooltipOfTotal": "占总数的 {percentage}%"
"tooltipOfTotal": "占总数的 {percentage}%",
"yourPosition": "你的位置:{score} 分({bucket} 区间)",
"yourPositionAriaLabel": "你的位置:最近成绩 {score} 分,对应高亮区间"
},
"subjectComparison": {
"descriptionEmpty": "对比所选班级各科目的表现。",
@@ -359,7 +364,17 @@
"significanceAriaLabel": "显著性分析:{level}",
"significanceDetails": "查看详细分析",
"significanceTopClass": "最高分班级:{name}{score} 分)",
"significanceBottomClass": "最低分班级:{name}{score} 分)"
"significanceBottomClass": "最低分班级:{name}{score} 分)",
"significanceStats": "p = {pValue} · Cohen's d = {cohensD}{effectSize}",
"significanceMethod": "Welch's t-test{significant}",
"significantYes": "差异具有统计显著性p < 0.05",
"significantNo": "差异不具统计显著性p ≥ 0.05",
"effectSize": {
"negligible": "可忽略",
"small": "小效应",
"medium": "中等效应",
"large": "大效应"
}
},
"trendChart": {
"descriptionEmpty": "随时间变化的分数趋势(标准化为 0-100。",
@@ -412,5 +427,317 @@
"recentGrades": "最近成绩",
"viewAll": "查看全部",
"noRecentGrades": "暂无最近成绩"
},
"page": {
"list": {
"description": "管理学生成绩记录。",
"stats": "统计",
"batchEntry": "批量录入",
"enterGrades": "录入成绩",
"emptyTitle": "暂无成绩记录",
"emptyDescription": "开始为您的班级录入成绩。",
"emptyActionLabel": "录入成绩",
"recordUnit": "条记录"
},
"analytics": {
"description": "趋势分析、班级对比与分数分布。",
"backToGrades": "返回成绩列表",
"noClassesTitle": "暂无班级",
"noClassesDescription": "您还没有任何班级。",
"trendTitle": "成绩趋势",
"trendEmptyTitle": "暂无趋势数据",
"trendEmptyDescription": "当前筛选条件下没有可显示的成绩趋势。",
"distributionTitle": "分数分布",
"distributionEmptyTitle": "暂无分布数据",
"distributionEmptyDescription": "当前筛选条件下没有可显示的分数分布。",
"subjectComparisonTitle": "科目对比",
"subjectComparisonEmptyTitle": "暂无科目对比数据",
"subjectComparisonEmptyDescription": "当前筛选条件下没有可显示的科目对比。",
"classComparisonTitle": "班级对比",
"classComparisonEmptyTitle": "暂无班级对比数据",
"classComparisonEmptyDescription": "当前筛选条件下没有可显示的班级对比。"
},
"entry": {
"title": "批量录入成绩",
"description": "从试卷库选择试卷,按每题得分录入,像填 Excel 表格一样。",
"noExamsTitle": "没有可用的试卷",
"noExamsDescription": "请先在试卷管理中创建试卷并添加题目,才能录入成绩。"
},
"stats": {
"description": "查看班级成绩统计和排名。",
"noClassesTitle": "暂无班级",
"noClassesDescription": "您还没有任何班级。",
"noAccessTitle": "暂无可访问的班级",
"noAccessDescription": "您没有权限查看任何班级。",
"exportLabel": "导出成绩"
},
"error": {
"title": "成绩页面加载失败",
"description": "抱歉,页面加载时发生了意外错误。请稍后重试。",
"retry": "重试"
}
},
"schoolWide": {
"gradeCount": "年级数",
"classStudentInfo": "{classCount} 个班级 · {studentCount} 名学生",
"averageScore": "总体均分",
"recordCount": "基于 {count} 条成绩记录",
"passRate": "及格率",
"passLine": "及格线 60%",
"excellentRate": "优秀率",
"excellentLine": "优秀线 85%",
"comparisonTitle": "各年级成绩对比",
"comparisonDescription": "按年级聚合的平均分、及格率与优秀率对比。",
"empty": "暂无年级成绩数据",
"columns": {
"schoolGrade": "学校 / 年级",
"classCount": "班级数",
"studentCount": "学生数",
"recordCount": "记录数",
"average": "平均分",
"passRate": "及格率",
"excellentRate": "优秀率"
}
},
"action": {
"unknownSubject": "未知科目",
"scoreEntered": "已录入",
"notificationTitle": "成绩已录入:{title}",
"studentNotification": "您的{subject}成绩{score},请查看详情。",
"parentNotification": "您的孩子的{subject}成绩{score},请查看详情。",
"missingExamId": "缺少试卷 ID",
"missingClassId": "缺少班级 ID",
"missingRecords": "缺少成绩数据",
"missingRecordsData": "缺少成绩数据",
"examNotFound": "试卷不存在或无权访问",
"examNoQuestions": "试卷没有题目,无法录入",
"examNoSubject": "试卷未关联科目",
"invalidFormData": "表单数据无效",
"invalidId": "ID 无效",
"invalidQuery": "查询参数无效",
"recordCreated": "成绩记录已创建",
"recordUpdated": "成绩记录已更新",
"recordDeleted": "成绩记录已删除",
"recordsCreated": "录入 {count} 条成绩记录",
"recordsDeletedCount": "已删除 {count} 条成绩记录",
"recordsUndoneCount": "已撤销 {count} 条成绩记录",
"noRecordsToUndo": "无可撤销的记录",
"noRecordsToDelete": "无可删除的记录",
"cannotUndoMoreThan": "单次最多撤销 500 条记录",
"cannotDeleteMoreThan": "单次最多删除 500 条记录",
"ownGradesOnly": "只能查看自己的成绩",
"childrenGradesOnly": "只能查看子女的成绩",
"ownRecordsOnly": "只能查看自己的成绩记录",
"childrenRecordsOnly": "只能查看子女的成绩记录",
"ownRankingTrendOnly": "只能查看自己的排名趋势",
"childrenRankingTrendOnly": "只能查看子女的排名趋势",
"taughtClassesOnly": "只能查看所教班级的成绩记录",
"studentOnly": "此操作仅限学生本人调用",
"invalidJson": "成绩数据格式无效",
"exportOwnChildrenOnly": "只能导出自己子女的成绩",
"classIdRequired": "导出班级成绩需要班级 ID",
"filenameDetail": "成绩单_{date}.xlsx",
"filenameClassReport": "班级成绩总表_{date}.xlsx",
"errorExamNoQuestions": "试卷没有题目,无法录入成绩",
"errorQuestionNotInExam": "题目 {questionId} 不属于试卷 {examId}",
"scopeError": {
"class_taught": "只能访问您所教的班级",
"class_members": "只能访问您所在的班级",
"denied": "您的权限范围不允许访问"
}
},
"anomaly": {
"severityWarning": "警告",
"severityCritical": "严重",
"notificationTitle": "{subject}成绩异常预警",
"notificationContent": "{subject}成绩出现{severity}程度下降:最近成绩 {latestScore} 分,历史均分 {historicalAverage} 分,下降 {drop} 分。建议关注学生学习状态。"
},
"growthArchive": {
"title": "成长档案",
"description": "跨越 {years} 个学年、{records} 条成绩记录、{subjects} 个科目",
"descriptionEmpty": "跨学年/学期的纵向成长趋势",
"emptyTitle": "暂无成长档案数据",
"emptyDescription": "需先在成绩记录中关联学年信息后才能生成成长档案。",
"ariaLabelEmpty": "成长档案图表:暂无数据",
"ariaLabelNonEmpty": "成长档案图表:共 {count} 个学年/学期数据点",
"averageScore": "归一化平均分",
"overallAverage": "总均分 {score}",
"deltaUp": "整体提升 {delta} 分",
"deltaDown": "整体下降 {delta} 分",
"deltaStable": "成绩保持稳定",
"statsAverage": "均分:{score}",
"statsPassRate": "及格率:{rate}%",
"statsRecords": "{records} 条记录 · {subjects} 个科目"
},
"knowledgePointMastery": {
"title": "知识点掌握度",
"description": "共 {count} 个知识点 · 平均掌握度 {avg}%",
"descriptionEmpty": "基于诊断模块的知识点掌握度分析",
"emptyTitle": "暂无知识点掌握度数据",
"emptyDescription": "需先在诊断模块生成诊断报告后才能查看知识点掌握度。",
"ariaLabel": "知识点掌握度图表:共 {count} 个知识点",
"averageMastery": "平均掌握度",
"viewDetail": "查看诊断详情",
"tooltipMastery": "掌握度:{score}%",
"tooltipStudents": "已掌握 {mastered} / {total} 人",
"weakPointsTitle": "薄弱知识点(前 3 项)",
"weakPointsAriaLabel": "薄弱知识点列表"
},
"reportCard": {
"title": "学期成绩报告卡",
"schoolName": "智慧校园",
"periodLabel": "学年:{year} · 学期:{semester}",
"allSemesters": "全部学期",
"studentName": "学生姓名",
"className": "班级",
"classTeacher": "班主任",
"generatedAt": "生成日期",
"gradesSectionTitle": "各科成绩明细",
"summarySectionTitle": "综合统计",
"commentsTitle": "教师评语",
"commentsPlaceholder": "(此处由班主任填写评语)",
"commentsAriaLabel": "教师评语填写区",
"columnSubject": "科目",
"columnAssessment": "评估名称",
"columnType": "类型",
"columnScore": "得分",
"columnRank": "排名",
"columnRemark": "备注",
"subjectAvg": "均分 {score}",
"overallAverage": "总平均分",
"overallRank": "班级排名",
"passRate": "及格率",
"excellentRate": "优秀率",
"noRecords": "暂无记录",
"emptyGrades": "本周期内暂无成绩记录。",
"signatureClassTeacher": "班主任签名",
"signatureParent": "家长签名",
"signaturePrincipal": "校长签名",
"footerNote": "本报告卡由系统自动生成 · 生成日期 {date}",
"ariaLabel": "{name} 的学期成绩报告卡",
"backToGrades": "返回成绩查询",
"print": "打印 / 另存为 PDF",
"preparing": "准备打印中…",
"errorPrint": "打印失败,请重试",
"errorNavigate": "跳转报告卡页面失败",
"openReportCard": "打开成绩报告卡",
"filterAcademicYear": "学年",
"filterSemester": "学期",
"filterAllAcademicYears": "全部学年",
"filterAllSemesters": "全部学期",
"missingStudentTitle": "缺少学生信息",
"missingStudentDescription": "请通过成绩列表进入报告卡页面。",
"emptyTitle": "暂无成绩报告卡数据",
"emptyDescription": "当前筛选条件下无成绩数据,请调整筛选条件后重试。",
"loading": "正在生成成绩报告卡…",
"errorTitle": "加载失败",
"errorDescription": "成绩报告卡加载失败,请稍后重试。",
"retry": "重试",
"academicYearsCount": "可选学年共 {count} 个"
},
"excelImport": {
"triggerButton": "Excel 导入",
"dialogTitle": "批量导入成绩",
"dialogDescription": "通过 Excel 文件批量导入班级成绩。请先下载模板,填写后再上传。",
"step1Title": "第 1 步:下载导入模板",
"step1Description": "模板包含班级学生姓名示例,便于准确填写。",
"downloadTemplate": "下载模板",
"templateFilename": "成绩导入模板_{date}.xlsx",
"templateDownloaded": "模板已下载",
"step2Title": "第 2 步:填写录入参数",
"step3Title": "第 3 步:上传 Excel 文件",
"assessmentTitle": "评估标题",
"assessmentTitlePlaceholder": "如2026 春季期中考试",
"fullScore": "满分",
"examId": "关联试卷 ID选填",
"examIdPlaceholder": "如exam_xxx",
"fileLabel": "Excel 文件",
"fileHint": "支持 .xlsx / .xls 格式,单次最多 500 行",
"startImport": "开始导入",
"importing": "导入中…",
"cancel": "取消",
"resultTitle": "导入结果",
"resultSuccess": "成功导入",
"resultFailed": "失败",
"unmatchedStudents": "未匹配学生:",
"columnRow": "行",
"columnStudentName": "学生姓名",
"columnScore": "得分",
"columnErrors": "错误",
"moreErrors": "还有 {count} 行错误未显示",
"successMessage": "成功导入 {success} 条,失败 {failed} 条",
"successAllImported": "全部 {count} 条记录已成功导入",
"successPartial": "成功导入 {success} 条,失败 {failed} 条,请查看明细",
"errorNoFile": "请选择 Excel 文件",
"errorInvalidFormat": "仅支持 .xlsx 和 .xls 文件",
"errorEmptyFile": "文件中无数据",
"errorTooManyRows": "文件包含 {count} 行数据,超过单次最多 500 行的限制",
"errorInvalidParams": "参数校验失败",
"errorMissingFields": "请填写班级、科目和评估标题",
"errorSelectClass": "请先选择班级",
"errorTemplateDownload": "模板下载失败,请重试",
"errorImport": "导入失败,请重试",
"errorAllInvalid": "全部 {count} 行数据均无效"
},
"collabLock": {
"lockConflictTitle": "该班级+科目+类型正被其他教师编辑",
"lockConflictDescription": "{teacherName} 正在录入成绩,请稍后再试或联系对方让出编辑权。",
"lockConflictByYou": "您已持有该锁,可继续编辑。",
"lockConflictUnknownTeacher": "未知教师",
"acquired": "已获取编辑锁",
"acquireFailed": "获取编辑锁失败",
"renewed": "编辑锁已续期",
"renewFailed": "编辑锁续期失败,可能已被他人抢占",
"released": "编辑锁已释放",
"releaseFailed": "释放编辑锁失败",
"expiredTitle": "编辑锁已过期",
"expiredDescription": "您长时间未操作,编辑锁已过期并被自动释放,请重新进入页面以避免覆盖他人编辑。",
"retryAcquire": "重新获取锁",
"lockInfoTooltip": "当前编辑会话受锁保护5 分钟无操作自动释放,其他教师将无法同时编辑。",
"heartbeatError": "心跳续期失败,请检查网络后重新进入页面",
"noLockHolder": "无锁持有者"
},
"appeal": {
"title": "成绩申诉",
"description": "对成绩有异议可提交申诉,教师复核后会反馈结果。",
"submitAppeal": "提交申诉",
"reasonLabel": "申诉理由",
"reasonPlaceholder": "请详细说明申诉理由(至少 10 字)…",
"expectedScoreLabel": "期望分数(选填)",
"expectedScorePlaceholder": "如85",
"originalScoreLabel": "原分数",
"status": {
"pending": "待复核",
"approved": "已通过",
"rejected": "已驳回",
"withdrawn": "已撤回"
},
"reviewCommentLabel": "复核意见",
"adjustedScoreLabel": "调整后分数",
"reviewerLabel": "复核教师",
"reviewedAtLabel": "复核时间",
"createdAtLabel": "申诉时间",
"withdraw": "撤回申诉",
"withdrawConfirm": "确定要撤回此申诉吗?撤回后不可恢复。",
"reviewAppeal": "复核申诉",
"approve": "通过",
"reject": "驳回",
"reviewCommentPlaceholder": "请填写复核意见…",
"adjustScoreHint": "如需调整分数请填写,否则留空维持原分数",
"empty": "暂无申诉记录",
"pendingEmpty": "暂无待复核的申诉",
"gradeNotFound": "成绩记录不存在",
"notYourGrade": "只能对自己的成绩提出申诉",
"pendingExists": "该成绩已有待复核的申诉,请等待处理",
"notFound": "申诉记录不存在",
"outOfScope": "无权复核此班级的申诉",
"created": "申诉已提交,请等待教师复核",
"approved": "申诉已通过,成绩已更新",
"rejected": "申诉已驳回",
"withdrawn": "申诉已撤回",
"viewAppeals": "查看申诉",
"appealFor": "{title} 申诉",
"originalScoreSnapshot": "申诉时分数",
"currentScore": "当前分数"
}
}

View File

@@ -0,0 +1,80 @@
{
"title": "邀请码管理",
"description": "批量生成邀请码替代开放注册,支持预分配角色与班级。",
"roles": {
"student": "学生",
"teacher": "教师",
"parent": "家长",
"admin": "管理员"
},
"stats": {
"total": "邀请码总数",
"unused": "未使用",
"used": "已使用",
"expired": "已过期"
},
"generate": {
"title": "生成邀请码",
"description": "批量生成邀请码,可指定角色、限定邮箱、绑定班级或设置过期时间。",
"count": "生成数量",
"countDescription": "1-100 张/批",
"role": "角色",
"email": "限定邮箱(选填)",
"emailDescription": "留空则任意邮箱可用;填写后仅该邮箱可使用",
"classId": "班级 ID选填",
"classIdDescription": "填写后学生注册时自动加入此班级",
"expiresAt": "过期时间(选填)",
"expiresAtDescription": "留空则永久有效;支持 ISO 字符串(如 2026-12-31T23:59:59Z",
"notes": "备注(选填)",
"notesDescription": "仅管理员可见,用于记录批次用途",
"submit": "生成邀请码",
"generating": "生成中...",
"success": "成功生成 {count} 张邀请码",
"failed": "生成失败"
},
"columns": {
"code": "邀请码",
"role": "角色",
"email": "限定邮箱",
"classId": "班级",
"expiresAt": "过期时间",
"status": "状态",
"createdAt": "创建时间",
"usedBy": "使用者",
"usedAt": "使用时间",
"actions": "操作"
},
"status": {
"unused": "未使用",
"used": "已使用",
"expired": "已过期"
},
"actions": {
"copy": "复制",
"copied": "已复制",
"copyFailed": "复制失败",
"delete": "删除",
"deleteConfirmTitle": "确认删除邀请码?",
"deleteConfirmDescription": "已使用的邀请码不可删除(保留作为审计记录)。仅未使用或已过期的邀请码可被删除。",
"cancel": "取消",
"deleting": "删除中...",
"confirmDelete": "确认删除",
"deleted": "邀请码已删除",
"deleteFailedUsed": "已使用的邀请码不可删除"
},
"empty": {
"title": "暂无邀请码",
"description": "点击「生成邀请码」批量创建,或在用户注册时引导填写邀请码。"
},
"generatedList": {
"title": "本批次生成的邀请码",
"description": "请妥善保存以下邀请码明文,关闭此对话框后将不再显示完整明文。",
"copyAll": "复制全部",
"close": "关闭",
"batchId": "批次 ID"
},
"errors": {
"loadFailed": "加载邀请码列表失败",
"permissionDenied": "无权限访问此页面"
}
}

View File

@@ -1,6 +1,12 @@
{
"title": "请假申请",
"title.parent": "在线请假",
"title.teacher": "请假审批",
"title.student": "我的请假",
"description": "为您的孩子提交请假申请。",
"description.parent": "为子女提交请假申请,班主任审批后自动同步考勤。",
"description.teacher": "查看并审批本班学生提交的请假申请,审批通过后自动将请假期间考勤标记为「请假」。",
"description.student": "提交本人请假申请,班主任审批后生效。",
"backToDashboard": "返回仪表盘",
"onlineLeave": "在线请假申请",
"comingSoon": "即将上线",
@@ -8,5 +14,68 @@
"contactOptions": "联系方式",
"callOffice": "在工作时间致电学校办公室",
"sendMessage": "通过消息页面向班主任发送消息",
"goToMessages": "前往消息"
}
"goToMessages": "前往消息",
"types": {
"sick": "病假",
"personal": "事假",
"family": "家庭事务",
"other": "其他"
},
"status": {
"pending": "待审批",
"approved": "已批准",
"rejected": "已拒绝",
"cancelled": "已撤销"
},
"form": {
"student": "请假学生",
"studentPlaceholder": "请选择子女",
"leaveType": "请假类型",
"dateRange": "请假日期",
"reason": "请假事由",
"reasonPlaceholder": "请简要说明请假原因(最多 500 字)",
"submit": "提交申请",
"submitting": "提交中…"
},
"list": {
"reason": "事由",
"reviewedBy": "审批人 {name}{date}",
"reviewComment": "审批意见",
"attendanceSynced": "考勤已同步"
},
"review": {
"title": "审批请假申请",
"description": "{name} · {className} · {dateRange}",
"approve": "批准",
"reject": "拒绝",
"cancel": "取消",
"commentLabel": "审批意见",
"commentPlaceholder": "请输入审批意见(拒绝时必填,批准时可选)",
"openButton": "审批"
},
"errors": {
"invalidForm": "表单填写有误,请检查后重试",
"noRelation": "您与该学生无家长-子女关系,无法代为请假",
"classMismatch": "所选班级与该学生当前所在班级不一致",
"overlappingLeave": "该日期范围内已存在未结束的请假申请",
"reviewCommentRequired": "拒绝请假时必须填写审批意见",
"notFound": "请假申请不存在或无权访问",
"alreadyReviewed": "该请假申请已被审批,无法重复操作",
"notOwner": "只能撤销本人提交的请假申请",
"cannotCancel": "当前状态不允许撤销(仅待审批状态可撤销)"
},
"messages": {
"created": "请假申请已提交,等待班主任审批",
"approved": "请假申请已批准,考勤记录已同步",
"rejected": "请假申请已拒绝",
"cancelled": "请假申请已撤销"
},
"empty": {
"parentTitle": "暂无请假记录",
"parentDesc": "您尚未为子女提交任何请假申请",
"teacherTitle": "暂无请假申请",
"teacherDesc": "本班学生暂无待审批或已审批的请假申请",
"studentTitle": "暂无请假记录",
"studentDesc": "您尚未提交任何请假申请"
}
}

View File

@@ -34,7 +34,10 @@
"unsaved": "未保存",
"saved": "已保存",
"draft": "草稿",
"submitted": "待审核",
"approved": "审核通过",
"published": "已发布",
"rejected": "已驳回",
"archived": "已归档",
"publishedAsHomework": "已发布为作业"
},
@@ -235,6 +238,7 @@
"typeLabel": "题型",
"stemLabel": "题干",
"optionsLabel": "选项(勾选正确答案)",
"optionLabel": "选项 {index}",
"addOption": "+ 添加选项",
"correctAnswer": "正确答案",
"correct": "正确",
@@ -395,5 +399,198 @@
"confirm": {
"archive": "确认归档此课案?",
"archiveTitle": "确认归档"
},
"calendar": {
"title": "备课日历",
"description": "按日期查看备课活动",
"weekView": "周视图",
"monthView": "月视图",
"today": "今天",
"prev": "上一页",
"next": "下一页",
"noEvents": "当日无备课活动",
"loading": "加载中...",
"loadFailed": "加载日历失败",
"eventType": {
"created": "创建",
"updated": "更新",
"version_saved": "保存版本",
"submitted": "提交审核",
"published": "发布",
"reviewed": "审核"
},
"eventMeta": "v{versionNo}",
"weekDays": {
"sun": "周日",
"mon": "周一",
"tue": "周二",
"wed": "周三",
"thu": "周四",
"fri": "周五",
"sat": "周六"
}
},
"review": {
"title": "审核工作流",
"submit": "提交审核",
"withdraw": "撤回提交",
"approve": "通过",
"reject": "驳回",
"submitConfirm": "确认提交审核?提交后不可编辑,等待教研组长审核。",
"withdrawConfirm": "确认撤回提交?撤回后将回到草稿状态。",
"approveConfirm": "确认通过此课案审核?",
"rejectConfirm": "确认驳回此课案?教师可修改后重新提交。",
"commentLabel": "审核意见",
"commentPlaceholder": "请输入审核意见(可选)",
"submitted": "已提交审核",
"approved": "审核通过",
"rejected": "审核驳回",
"withdrawn": "已撤回",
"reviewerLabel": "审核人:{name}",
"reviewAt": "审核时间:{time}",
"records": "审核记录",
"noRecords": "暂无审核记录",
"pendingTitle": "待审核课案",
"pendingEmpty": "暂无待审核课案",
"invalidTransition": "状态变更不合法",
"notSubmitted": "当前状态不可提交审核",
"notReviewable": "当前状态不可审核",
"submitSuccess": "已提交审核",
"withdrawSuccess": "已撤回提交",
"approveSuccess": "审核已通过",
"rejectSuccess": "已驳回"
},
"comment": {
"title": "协同评论",
"add": "发表评论",
"reply": "回复",
"placeholder": "输入评论内容...",
"empty": "暂无评论",
"resolve": "标记已解决",
"reopen": "重新打开",
"resolved": "已解决",
"unresolved": "未解决",
"delete": "删除",
"deleteConfirm": "确认删除此评论?子回复将一并删除。",
"edit": "编辑",
"unresolvedCount": "{count} 条未解决",
"blockLabel": "节点:{title}",
"createSuccess": "评论已发表",
"deleteSuccess": "已删除",
"resolveSuccess": "已标记为解决",
"createFailed": "发表评论失败",
"deleteFailed": "删除评论失败"
},
"formative": {
"title": "形成性评价",
"add": "添加互动组件",
"empty": "暂无互动组件",
"interactionType": {
"poll": "投票",
"quiz": "随堂测",
"exit_ticket": "出口票"
},
"promptLabel": "题目",
"promptPlaceholder": "输入互动题目...",
"optionsLabel": "选项",
"addOption": "+ 添加选项",
"correctAnswer": "正确答案",
"durationLabel": "时长(秒)",
"responses": "学生作答",
"noResponses": "暂无作答",
"stats": "统计",
"totalResponses": "{count} 人作答",
"correctRate": "正确率 {rate}%",
"avgDuration": "平均用时 {sec} 秒",
"createSuccess": "已添加",
"updateSuccess": "已更新",
"deleteSuccess": "已删除"
},
"attachment": {
"title": "资源附件",
"add": "添加附件",
"empty": "暂无附件",
"type": {
"reference": "参考资料",
"material": "教学素材",
"supplementary": "补充材料"
},
"nameLabel": "名称",
"urlLabel": "链接",
"typeLabel": "类型",
"createSuccess": "附件已添加",
"deleteSuccess": "附件已删除",
"updateSuccess": "附件已更新"
},
"substitute": {
"title": "代课教师",
"add": "添加代课",
"empty": "暂无代课记录",
"originalTeacher": "原任教师",
"substituteTeacher": "代课教师",
"startDate": "开始日期",
"endDate": "结束日期",
"status": {
"active": "生效中",
"expired": "已过期",
"cancelled": "已取消"
},
"createSuccess": "代课已安排",
"updateSuccess": "代课状态已更新",
"deleteSuccess": "代课已删除",
"cancelConfirm": "确认取消此代课安排?"
},
"evaluation": {
"title": "AI 课案评估",
"run": "开始评估",
"running": "评估中...",
"empty": "暂无评估记录",
"overallScore": "综合评分",
"dimensions": {
"clarity": "目标清晰度",
"alignment": "课标对齐",
"engagement": "学生参与",
"differentiation": "分层设计",
"assessment": "评估设计"
},
"suggestions": "改进建议",
"noSuggestions": "暂无改进建议",
"createSuccess": "评估完成",
"suggestion": {
"addMoreNodeDetails": "建议在教学节点中补充更多细节",
"linkMoreStandards": "建议关联更多课标条目",
"addFormativeItems": "建议增加课堂互动组件",
"addPracticeBlock": "建议增加课堂练习环节",
"addHomeworkBlock": "建议明确课后作业要求"
}
},
"analytics": {
"title": "备课分析",
"teacherInvestment": "教师投入",
"templateUsage": "模板使用",
"standardsCoverage": "课标覆盖",
"globalStats": "概览",
"totalTeachers": "参与教师",
"totalPlans": "课案总数",
"totalPublished": "已发布",
"totalSubmitted": "待审核",
"totalStandardsLinked": "已关联课标",
"noData": "暂无数据",
"loadFailed": "加载分析数据失败"
},
"standards": {
"title": "课标对标",
"link": "关联课标",
"unlink": "取消关联",
"linked": "已关联 {count} 条",
"empty": "暂无关联课标",
"searchPlaceholder": "搜索课标...",
"level": {
"national": "国家标准",
"curriculum": "课程标准",
"custom": "校本标准"
},
"linkSuccess": "已关联课标",
"unlinkSuccess": "已取消关联"
}
}

View File

@@ -4,11 +4,13 @@
"detail": "消息详情",
"compose": "撰写消息",
"reply": "回复",
"newMessage": "新消息"
"newMessage": "新消息",
"groupCompose": "群发消息"
},
"description": {
"list": "管理收件箱并随时掌握通知动态。",
"compose": "向其他用户发送消息。"
"compose": "向其他用户发送消息。",
"groupCompose": "向班级所有家长发送消息。"
},
"tabs": {
"inbox": "收件箱",
@@ -25,7 +27,11 @@
"star": "星标",
"unstar": "取消星标",
"saveDraft": "保存草稿",
"deleteDraft": "删除草稿"
"deleteDraft": "删除草稿",
"recall": "撤回",
"report": "举报",
"block": "屏蔽",
"unblock": "取消屏蔽"
},
"form": {
"to": "收件人",
@@ -34,7 +40,10 @@
"subjectPlaceholder": "消息主题",
"content": "内容",
"contentPlaceholder": "请输入消息内容...",
"selectRecipient": "请选择收件人"
"selectRecipient": "请选择收件人",
"class": "班级",
"classPlaceholder": "选择班级",
"selectClass": "请选择班级"
},
"status": {
"new": "新",
@@ -53,6 +62,71 @@
"placeholder": "按主题或内容搜索消息...",
"noResults": "未找到匹配的消息"
},
"pagination": {
"nav": "消息分页",
"previous": "上一页",
"next": "下一页",
"page": "第 {current} / {total} 页"
},
"drafts": {
"title": "草稿",
"resume": "继续编辑",
"delete": "删除草稿",
"noContent": "(无内容)",
"updatedAt": "更新于 {date}",
"versionConflict": "草稿已在其他设备更新,已为您同步最新版本",
"syncedFromOtherDevice": "已从其他设备同步草稿"
},
"templates": {
"title": "快捷回复模板",
"insert": "插入模板",
"manage": "管理模板",
"create": "新建模板",
"edit": "编辑",
"delete": "删除",
"empty": "暂无模板",
"emptyDesc": "创建常用回复模板以提升沟通效率。",
"titleField": "模板标题",
"titlePlaceholder": "如:已收到",
"contentField": "模板内容",
"contentPlaceholder": "如:已收到,感谢您的反馈。",
"sortOrder": "排序(越小越靠前)",
"saved": "模板已保存",
"deleted": "模板已删除",
"deleteConfirm": "确定删除此模板吗?"
},
"report": {
"title": "举报消息",
"description": "举报不当内容,管理员将进行审核处理。",
"reason": "举报理由",
"reasonSpam": "垃圾信息",
"reasonHarassment": "骚扰",
"reasonInappropriate": "不当内容",
"reasonOther": "其他",
"descriptionField": "详细描述(可选)",
"descriptionPlaceholder": "请补充举报理由...",
"confirm": "确定举报",
"cancel": "取消"
},
"block": {
"title": "屏蔽用户",
"confirm": "确定屏蔽此用户吗?屏蔽后双方将无法互发消息。",
"list": "屏蔽列表",
"empty": "暂无屏蔽用户"
},
"attachments": {
"add": "添加附件",
"remove": "移除附件",
"title": "附件({count}",
"download": "下载附件",
"empty": "无附件"
},
"thread": {
"title": "对话",
"replyCount": "{count} 条回复",
"noReplies": "暂无回复",
"you": "你"
},
"empty": {
"inboxEmpty": "收件箱为空",
"inboxEmptyDesc": "您还没有收到任何消息。",
@@ -75,7 +149,26 @@
"selectRecipient": "请选择收件人",
"draftSaved": "草稿已保存",
"draftDeleted": "草稿已删除",
"starToggled": "星标状态已更新"
"starToggled": "星标状态已更新",
"recalled": "消息已撤回",
"recallFailed": "撤回失败",
"recallExpired": "已超过 2 分钟撤回时限",
"recallConfirm": "确定撤回这条消息吗?",
"groupSent": "群发消息已发送给 {count} 位家长",
"groupNoRecipients": "该班级没有可接收消息的家长",
"groupNotAuthorized": "您无权向该班级群发消息",
"groupSendFailed": "群发消息失败",
"reported": "消息已举报",
"alreadyReported": "您已举报过此消息",
"reportFailed": "举报失败",
"reportSelf": "不能举报自己的消息",
"blocked": "用户已屏蔽",
"alreadyBlocked": "该用户已被屏蔽",
"blockSelf": "不能屏蔽自己",
"blockFailed": "屏蔽失败",
"unblocked": "已取消屏蔽",
"unblockFailed": "取消屏蔽失败",
"blockedSendHint": "对方已屏蔽您,无法发送消息"
},
"notification": {
"messageTitle": "新消息:{subject}",
@@ -84,6 +177,8 @@
"error": {
"loadFailed": "消息加载失败",
"loadFailedDesc": "抱歉,加载消息时发生了意外错误。请稍后重试。",
"retry": "重试"
"retry": "重试",
"boundaryTitle": "消息区块加载失败",
"boundaryDescription": "加载消息数据时发生错误,请重试。"
}
}

View File

@@ -16,6 +16,8 @@
"users": "用户",
"userList": "用户列表",
"importUsers": "导入用户",
"roles": "角色管理",
"permissions": "权限目录",
"teaching": "教学管理",
"coursePlans": "课程计划",
"electives": "选修课",

View File

@@ -18,7 +18,8 @@
"message": "消息",
"announcement": "公告",
"homework": "作业",
"grade": "成绩"
"grade": "成绩",
"diagnostic": "学情诊断"
},
"filter": {
"all": "全部"

View File

@@ -0,0 +1,22 @@
{
"childDetail": {
"defaultName": "子女",
"tabs": {
"overview": "概览",
"homework": "作业",
"grades": "成绩",
"exams": "考试",
"schedule": "课表",
"attendance": "考勤",
"diagnostic": "诊断"
},
"tabAriaLabel": "{label} 标签",
"subjectAnalysis": "科目分析",
"attendanceHint": "考勤详情可在<link>考勤页面</link>查看。",
"diagnosticHint": "学校发布的诊断报告将在此处显示。",
"contactTeacher": "联系老师",
"contactTeacherAria": "联系老师了解 {name} 的情况",
"switchChild": "切换子女",
"viewDetailsAria": "查看 {name} 的详情"
}
}

View File

@@ -38,7 +38,9 @@
"true": "正确",
"false": "错误",
"textPlaceholder": "请输入你的答案...",
"empty": "本次练习没有题目"
"empty": "本次练习没有题目",
"retry": "重试",
"submitFailedDescription": "提交失败,请检查网络后重试"
},
"result": {
"title": "练习完成",
@@ -56,7 +58,6 @@
"createFailed": "创建失败",
"selectKnowledgePoint": "请至少选择一个知识点",
"selectWeakKnowledgePoint": "请至少选择一个薄弱知识点",
"aiRecommendedReason": "学生自主发起 AI 推荐练习",
"submitted": "已提交",
"submitFailed": "提交失败",
"completed": "练习已完成",
@@ -71,7 +72,7 @@
"accuracy": "正确率"
},
"types": {
"error_variant": "错题变式",
"error_variant": "错题重做",
"knowledge_point": "知识点专项",
"weak_chapter": "薄弱章节",
"ai_recommended": "AI 推荐"
@@ -159,5 +160,69 @@
"title": "各班级练习对比",
"description": "按参与率降序排列,识别活跃班级与待提升班级"
}
},
"parent": {
"title": "子女专项练习",
"description": "查看子女的练习记录与统计,了解学习进度",
"childSelector": "选择子女",
"noChild": "暂无关联子女",
"noChildDescription": "您还未关联子女,请联系学校管理员",
"stats": "练习统计",
"history": "练习记录",
"noChildSelected": "请选择子女查看练习数据"
},
"errors": {
"sessionNotFound": "练习会话不存在或无权访问",
"sessionEnded": "练习会话已结束",
"answerNotFound": "答题记录不存在",
"answerAlreadySubmitted": "此题已作答",
"questionNotFound": "题目不存在",
"sessionNotComplete": "仍有未作答的题目,无法完成练习",
"invalidFormat": "提交格式错误,需要 JSON 字段",
"validationFailed": "输入验证失败",
"noQuestionsFound": "未找到符合条件的题目,请尝试其他筛选条件",
"fetchSessionsFailed": "获取练习列表失败",
"fetchDetailFailed": "获取练习详情失败",
"fetchStatsFailed": "获取练习统计失败",
"forbidden": "无权访问该学生的练习数据",
"loadFailed": "加载失败",
"loadFailedDescription": "请刷新页面重试,或联系管理员检查数据访问权限。",
"retry": "重试",
"pageErrorPractice": "加载练习分析数据时发生错误",
"pageErrorGrade": "加载年级练习数据时发生错误",
"pageErrorParent": "加载子女练习数据时发生错误",
"pageErrorTitlePractice": "专项练习分析",
"pageErrorTitleGrade": "年级专项练习总览",
"pageErrorTitleParent": "子女专项练习",
"session_not_found": "练习会话不存在或无权访问",
"session_ended": "练习会话已结束",
"answer_not_found": "答题记录不存在",
"answer_already_submitted": "此题已作答",
"question_not_found": "题目不存在",
"session_not_complete": "仍有未作答的题目,无法完成练习",
"no_questions_found": "未找到符合条件的题目,请尝试其他筛选条件",
"forbidden_scope": "无权访问该学生的练习数据",
"invalid_input": "提交格式错误,需要 JSON 字段",
"validation_error": "输入验证失败",
"invalid_source_meta": "来源元数据结构与练习类型不匹配"
},
"messages": {
"sessionCreated": "已创建练习会话,共 {count} 道题目",
"answerSubmitted": "答案已提交",
"answerCorrect": "回答正确",
"answerIncorrect": "回答错误",
"answerSkipped": "已跳过此题",
"sessionCompleted": "练习已完成",
"sessionAbandoned": "练习已放弃"
},
"reasons": {
"student_initiated": "学生自主发起 AI 推荐练习",
"teacher_assigned": "教师布置",
"parent_suggested": "家长建议"
},
"classFilter": {
"all": "全部班级",
"selectClass": "选择班级",
"sessionCount": "{count, plural, =0 {无练习} =1 {# 次练习} other {# 次练习}}"
}
}

View File

@@ -0,0 +1,156 @@
{
"title": "题库",
"subtitle": "管理考试与作业的题目仓库。",
"addQuestion": "添加题目",
"search": {
"placeholder": "搜索题目内容..."
},
"filters": {
"type": "题型",
"typeAll": "全部题型",
"difficulty": "难度",
"difficultyAll": "任意难度",
"difficulty1": "简单 (1)",
"difficulty2": "偏易 (2)",
"difficulty3": "中等 (3)",
"difficulty4": "偏难 (4)",
"difficulty5": "困难 (5)",
"knowledgePoint": "知识点",
"knowledgePointAll": "全部知识点",
"textbook": "教材",
"textbookAll": "全部教材",
"chapter": "章节",
"chapterAll": "全部章节",
"clear": "清除筛选"
},
"table": {
"type": "题型",
"content": "内容",
"difficulty": "难度",
"knowledgePoints": "知识点",
"created": "创建时间",
"actions": "操作",
"noResults": "暂无数据",
"selected": "已选 {count} 项,共 {total} 项",
"previous": "上一页",
"next": "下一页"
},
"type": {
"single_choice": "单选题",
"multiple_choice": "多选题",
"judgment": "判断题",
"text": "简答题",
"composite": "复合题"
},
"difficulty": {
"1": "简单",
"2": "偏易",
"3": "中等",
"4": "偏难",
"5": "困难"
},
"empty": {
"withFilters": "没有匹配的题目",
"withoutFilters": "暂无题目",
"withFiltersDesc": "请尝试清除筛选或调整关键词。",
"withoutFiltersDesc": "创建你的第一道题目以开始构建试卷和作业。"
},
"dialog": {
"createTitle": "创建新题目",
"editTitle": "编辑题目",
"createDesc": "向题库添加新题目,填写以下信息。",
"editDesc": "更新题目信息。",
"questionType": "题目类型",
"selectType": "选择题型",
"difficulty": "难度 (1-5)",
"selectDifficulty": "选择难度",
"questionContent": "题目内容",
"contentPlaceholder": "在此输入题目内容...",
"contentDescription": "支持基本文本,富文本编辑器即将上线。",
"knowledgePoints": "知识点",
"knowledgePointsOptional": "可选",
"knowledgePointsSelected": "已选 {count} 个",
"searchKnowledgePoints": "搜索知识点...",
"noKnowledgePoints": "未找到知识点。",
"loading": "加载中...",
"options": "选项",
"addOption": "添加选项",
"optionPlaceholder": "选项 {index}",
"markCorrect": "标记为正确答案",
"cancel": "取消",
"create": "创建题目",
"update": "更新题目",
"creating": "创建中...",
"updating": "更新中..."
},
"actions": {
"menuLabel": "打开菜单",
"actions": "操作",
"copyId": "复制 ID",
"viewDetails": "查看详情",
"edit": "编辑",
"delete": "删除",
"copyIdSuccess": "题目 ID 已复制到剪贴板",
"copyIdFailed": "复制题目 ID 失败",
"deleteSuccess": "题目删除成功",
"deleteFailed": "删除题目失败",
"deleteConfirmTitle": "确定要删除吗?",
"deleteConfirmDesc": "此操作不可撤销,将永久删除该题目并从服务器移除。",
"deleteConfirmCancel": "取消",
"deleteConfirmAction": "删除",
"deleting": "删除中...",
"detailsTitle": "题目详情",
"detailsId": "ID: {id}",
"detailsType": "题型",
"detailsDifficulty": "难度",
"detailsContent": "内容",
"detailsAuthor": "作者",
"detailsTags": "标签",
"detailsUnknown": "未知"
},
"error": {
"loadFailed": "题库加载失败",
"loadFailedDesc": "请稍后重试,或联系管理员。",
"retry": "重试",
"invalidFormat": "题目内容格式无效",
"invalidSubmission": "提交格式无效,应为 JSON。",
"validationFailed": "校验失败",
"missingId": "缺少题目 ID",
"operationFailed": "操作失败",
"unexpected": "发生意外错误",
"createdSuccess": "题目创建成功",
"updatedSuccess": "题目更新成功"
},
"noPermission": {
"title": "无权限",
"description": "您没有权限执行此操作。"
},
"batch": {
"selected": "已选 {count} 项",
"delete": "批量删除",
"clear": "清除选择",
"cancel": "取消",
"deleteConfirmTitle": "确认批量删除?",
"deleteConfirmDesc": "将删除 {count} 道题目及其子题,此操作不可撤销。",
"deleteConfirmAction": "确认删除",
"deleting": "删除中...",
"deleteSuccess": "成功删除 {count} 道题目",
"deleteFailed": "批量删除失败"
},
"importExport": {
"export": "导出",
"import": "导入",
"exporting": "导出中...",
"importing": "导入中...",
"exportSuccess": "成功导出 {count} 道题目",
"exportFailed": "导出失败",
"importSuccess": "成功导入 {count} 道题目",
"importFailed": "导入失败",
"invalidFile": "无效的文件格式",
"readFailed": "文件读取失败",
"confirmTitle": "确认导入",
"confirmDesc": "请确认以下内容是要导入的题目数据:",
"confirmImport": "确认导入",
"cancel": "取消"
}
}

View File

@@ -0,0 +1,318 @@
{
"roles": {
"title": "角色管理",
"description": "创建自定义角色并管理权限分配。",
"detail": "角色详情",
"create": "创建角色",
"edit": "编辑角色",
"delete": "删除角色",
"name": "角色名称",
"description": "描述",
"type": "类型",
"status": "状态",
"system": "系统",
"custom": "自定义",
"enabled": "已启用",
"disabled": "已禁用",
"permissions": "权限",
"users": "用户",
"updated": "更新时间",
"locked": "已锁定",
"adminLocked": "admin 角色已完全锁定,无法修改。",
"listTitle": "角色 ({count})",
"emptyTitle": "暂无角色",
"emptyDescription": "创建你的第一个自定义角色以开始。",
"editButton": "编辑角色",
"createTitle": "创建新角色",
"editRoleTitle": "编辑角色:{name}",
"createDescription": "创建自定义角色。创建后可为其分配权限。角色名称只能包含小写字母、数字和下划线。",
"editDescription": "更新角色名称或描述。权限分配在角色详情页管理。",
"namePlaceholder": "例如 teaching_assistant",
"namePatternTitle": "仅允许小写字母、数字和下划线",
"adminNameLocked": "admin 角色名称无法修改。",
"descriptionLabel": "描述(可选)",
"descriptionPlaceholder": "这个角色的用途是什么?",
"deleteConfirmTitle": "删除角色 \"{name}\"",
"deleteConfirmDescription": "将移除该角色并从 {count} 个用户身上撤销。仅分配了该角色的用户将失去所有访问权限。此操作无法撤销。",
"assignTitle": "分配角色",
"assignDescription": "为 <strong>{name}</strong> 选择角色。用户可能需要重新登录才能生效。",
"noEnabledRoles": "没有可用的已启用角色。请先创建或启用一个角色。",
"disabledAssignedLabel": "当前已分配但已禁用(保存时将被移除):",
"disabledLabel": "已禁用",
"saveRoles": "保存角色",
"openMenu": "打开菜单",
"tableAriaLabel": "角色列表",
"tableCaption": "共 {count} 个角色",
"assignListAriaLabel": "为 {name} 分配角色"
},
"permissions": {
"title": "权限目录",
"description": "系统中定义的所有权限点,按模块分组。",
"countLabel": "{count} 个权限",
"roleCount": "{count} 个角色",
"matrixTitle": "权限 — {roleName}",
"selectedCount": "已选 {count} 个",
"impactNotice": "此角色的权限变更将影响 {count} 个用户。",
"searchPlaceholder": "搜索权限名称或标识...",
"searchAriaLabel": "搜索权限",
"searchNoResults": "没有匹配的权限",
"expandGroup": "展开 {name} 分组",
"collapseGroup": "折叠 {name} 分组",
"catalogAriaLabel": "权限目录",
"group": {
"exam": "考试",
"homework": "作业",
"question": "题目",
"textbook": "教材",
"class": "班级",
"school": "学校",
"user": "用户",
"ai": "AI",
"settings": "设置",
"audit": "审计",
"announcement": "公告",
"grade_record": "成绩",
"file": "文件",
"course_plan": "课程计划",
"attendance": "考勤",
"message": "消息",
"scheduling": "排课",
"elective": "选课",
"diagnostic": "诊断",
"lesson_plan": "教案",
"dashboard": "仪表盘",
"error_book": "错题本",
"adaptive_practice": "专项练习",
"rbac": "角色与权限管理"
},
"exam": {
"create": "创建考试",
"create.desc": "允许创建新考试",
"read": "查看考试",
"read.desc": "允许查看考试列表和详情",
"update": "更新考试",
"update.desc": "允许修改考试信息",
"delete": "删除考试",
"delete.desc": "允许删除考试",
"duplicate": "复制考试",
"duplicate.desc": "允许复制现有考试",
"publish": "发布考试",
"publish.desc": "允许发布考试供学生作答",
"ai_generate": "AI 生成考试",
"ai_generate.desc": "允许使用 AI 生成考试内容",
"submit": "提交考试",
"submit.desc": "允许提交考试答卷",
"proctor": "监考",
"proctor.desc": "允许执行监考操作",
"proctor_read": "查看监考",
"proctor_read.desc": "允许查看监考信息"
},
"homework": {
"create": "创建作业",
"create.desc": "允许创建新作业",
"grade": "批改作业",
"grade.desc": "允许批改学生作业",
"submit": "提交作业",
"submit.desc": "允许提交作业"
},
"question": {
"create": "创建题目",
"create.desc": "允许创建新题目",
"read": "查看题目",
"read.desc": "允许查看题目列表和详情",
"update": "更新题目",
"update.desc": "允许修改题目信息",
"delete": "删除题目",
"delete.desc": "允许删除题目"
},
"textbook": {
"create": "创建教材",
"create.desc": "允许创建新教材",
"read": "查看教材",
"read.desc": "允许查看教材列表和详情",
"update": "更新教材",
"update.desc": "允许修改教材信息",
"delete": "删除教材",
"delete.desc": "允许删除教材"
},
"class": {
"create": "创建班级",
"create.desc": "允许创建新班级",
"read": "查看班级",
"read.desc": "允许查看班级列表和详情",
"update": "更新班级",
"update.desc": "允许修改班级信息",
"delete": "删除班级",
"delete.desc": "允许删除班级",
"enroll": "学生入班",
"enroll.desc": "允许管理班级学生入班",
"schedule": "班级排课",
"schedule.desc": "允许管理班级课程表"
},
"school": {
"manage": "学校管理",
"manage.desc": "允许管理学校信息",
"grade_manage": "年级管理",
"grade_manage.desc": "允许管理年级信息",
"user_manage": "用户管理",
"user_manage.desc": "允许管理系统用户"
},
"user": {
"profile_update": "更新个人资料",
"profile_update.desc": "允许更新用户个人资料"
},
"ai": {
"chat": "AI 对话",
"chat.desc": "允许使用 AI 对话功能",
"configure": "AI 配置",
"configure.desc": "允许配置 AI 参数"
},
"settings": {
"admin": "系统设置",
"admin.desc": "允许管理系统设置"
},
"audit": {
"read": "查看审计日志",
"read.desc": "允许查看系统审计日志"
},
"announcement": {
"manage": "管理公告",
"manage.desc": "允许创建、修改和删除公告",
"read": "查看公告",
"read.desc": "允许查看公告内容"
},
"grade_record": {
"manage": "管理成绩",
"manage.desc": "允许录入和修改成绩",
"read": "查看成绩",
"read.desc": "允许查看成绩记录"
},
"file": {
"upload": "上传文件",
"upload.desc": "允许上传文件",
"read": "查看文件",
"read.desc": "允许查看文件",
"delete": "删除文件",
"delete.desc": "允许删除文件"
},
"course_plan": {
"manage": "管理课程计划",
"manage.desc": "允许创建、修改和删除课程计划",
"read": "查看课程计划",
"read.desc": "允许查看课程计划"
},
"attendance": {
"manage": "管理考勤",
"manage.desc": "允许录入和修改考勤记录",
"read": "查看考勤",
"read.desc": "允许查看考勤记录"
},
"leave_request": {
"create": "提交请假申请",
"create.desc": "允许家长/学生提交在线请假申请",
"read": "查看请假申请",
"read.desc": "允许查看本人/子女/所辖班级的请假申请",
"review": "审批请假申请",
"review.desc": "允许班主任/管理员审批请假申请并自动同步考勤"
},
"message": {
"send": "发送消息",
"send.desc": "允许发送消息",
"read": "查看消息",
"read.desc": "允许查看消息",
"delete": "删除消息",
"delete.desc": "允许删除消息"
},
"scheduling": {
"auto": "自动排课",
"auto.desc": "允许执行自动排课",
"adjust": "调整排课",
"adjust.desc": "允许手动调整课程表"
},
"elective": {
"manage": "管理选课",
"manage.desc": "允许管理选课设置",
"read": "查看选课",
"read.desc": "允许查看选课信息",
"select": "选课",
"select.desc": "允许学生进行选课"
},
"diagnostic": {
"manage": "管理诊断",
"manage.desc": "允许管理诊断测试",
"read": "查看诊断",
"read.desc": "允许查看诊断结果"
},
"lesson_plan": {
"create": "创建教案",
"create.desc": "允许创建新教案",
"read": "查看教案",
"read.desc": "允许查看教案列表和详情",
"update": "更新教案",
"update.desc": "允许修改教案信息",
"delete": "删除教案",
"delete.desc": "允许删除教案",
"publish": "发布教案",
"publish.desc": "允许发布教案"
},
"dashboard": {
"admin_read": "查看管理员仪表盘",
"admin_read.desc": "允许查看管理员仪表盘",
"teacher_read": "查看教师仪表盘",
"teacher_read.desc": "允许查看教师仪表盘",
"student_read": "查看学生仪表盘",
"student_read.desc": "允许查看学生仪表盘",
"parent_read": "查看家长仪表盘",
"parent_read.desc": "允许查看家长仪表盘"
},
"error_book": {
"read": "查看错题本",
"read.desc": "允许查看错题本",
"manage": "管理错题本",
"manage.desc": "允许管理错题记录",
"analytics_read": "查看错题分析",
"analytics_read.desc": "允许查看错题本分析数据"
},
"adaptive_practice": {
"read": "查看专项练习",
"read.desc": "允许查看专项练习",
"manage": "管理专项练习",
"manage.desc": "允许管理专项练习"
},
"rbac": {
"role_create": "创建角色",
"role_create.desc": "允许创建新角色",
"role_read": "查看角色",
"role_read.desc": "允许查看角色列表和详情",
"role_update": "更新角色",
"role_update.desc": "允许修改角色信息",
"role_delete": "删除角色",
"role_delete.desc": "允许删除角色",
"role_assign": "分配角色",
"role_assign.desc": "允许为用户分配角色",
"permission_read": "查看权限",
"permission_read.desc": "允许查看权限目录"
}
},
"actions": {
"save": "保存更改",
"cancel": "取消",
"delete": "删除",
"enable": "启用",
"disable": "禁用",
"edit": "编辑",
"assignRoles": "分配角色",
"saving": "保存中...",
"deleting": "删除中..."
},
"messages": {
"created": "角色已创建",
"updated": "角色已更新",
"deleted": "角色已删除",
"permissionsUpdated": "权限已更新",
"rolesAssigned": "角色已分配。用户可能需要重新登录才能生效。",
"roleEnabled": "角色已启用",
"roleDisabled": "角色已禁用",
"roleStatusUpdated": "角色状态已更新"
}
}

View File

@@ -40,7 +40,44 @@
"save": "保存修改",
"saving": "保存中...",
"success": "个人资料更新成功",
"failure": "个人资料更新失败"
"failure": "个人资料更新失败",
"page": {
"title": "个人资料",
"description": "管理您的个人和账户信息。",
"editProfile": "编辑资料",
"personalInfo": {
"title": "个人信息",
"description": "基本个人资料。",
"fullName": "姓名",
"gender": "性别",
"age": "年龄",
"phone": "电话",
"address": "地址"
},
"accountInfo": {
"title": "账户信息",
"description": "系统账户详情。",
"email": "邮箱",
"role": "角色",
"memberSince": "注册时间",
"onboardedAt": "入职时间"
}
},
"studentOverview": {
"title": "学生概览",
"description": "您的学业表现和课表。"
},
"teacherOverview": {
"title": "教师概览",
"description": "您任教的科目和班级。",
"teachingSubjects": "任教科目",
"teachingSubjectsDesc": "您当前被分配教授的科目。",
"noSubjects": "暂无分配科目。",
"teachingClasses": "任教班级",
"teachingClassesDesc": "您当前管理的班级。",
"noClasses": "暂无分配班级。",
"view": "查看"
}
},
"notifications": {
"title": "通知偏好",
@@ -211,11 +248,14 @@
"baseUrl": "API 地址",
"baseUrlPlaceholder": "https://open.bigmodel.cn/api/paas/v4",
"baseUrlDesc": "输入基础地址,无需 /chat/completions 后缀。",
"baseUrlDescOllama": "Ollama 本地地址,默认 http://localhost:11434/v1留空使用默认值。",
"model": "模型",
"modelPlaceholder": "gpt-4o-mini",
"apiKey": "API 密钥",
"apiKeyPlaceholder": "粘贴新密钥以替换",
"apiKeyDesc": "已有密钥不会显示。留空则保留当前密钥。",
"apiKeyPlaceholderOllama": "本地部署无需密钥,留空即可",
"apiKeyDescOllama": "Ollama 本地部署无需 API 密钥。如已配置 OLLAMA_API_KEY 可填入。",
"setDefault": "设为默认",
"visibility": "可见性",
"visibilityDesc": "公开 Provider 由管理员发布,全员可用;私有 Provider 仅创建者可见。",
@@ -275,6 +315,19 @@
"sectionLoadFailed": "该区块加载失败",
"sectionLoadFailedDesc": "请稍后重试。"
},
"brand": {
"title": "品牌配置",
"description": "学校品牌信息,将显示在登录/注册页面。",
"schoolName": "品牌名称",
"logoUrl": "Logo URL",
"logoUrlDescription": "可选,留空将使用默认图标。建议使用方形 PNG/SVG。",
"testimonialQuote": "宣传标语",
"testimonialAuthor": "标语作者",
"save": "保存品牌配置",
"saveSuccess": "品牌配置已保存",
"saveFailed": "保存品牌配置失败",
"loadFailed": "加载品牌配置失败"
},
"admin": {
"title": "系统设置",
"description": "管理系统基础信息与运行参数。",
@@ -329,42 +382,5 @@
"saveSuccess": "设置已保存",
"saveFailure": "设置保存失败",
"loadFailure": "加载系统设置失败"
},
"profilePage": {
"title": "个人资料",
"description": "管理您的个人和账户信息。",
"editProfile": "编辑资料",
"personalInfo": {
"title": "个人信息",
"description": "基本个人资料。",
"fullName": "姓名",
"gender": "性别",
"age": "年龄",
"phone": "电话",
"address": "地址"
},
"accountInfo": {
"title": "账户信息",
"description": "系统账户详情。",
"email": "邮箱",
"role": "角色",
"memberSince": "注册时间",
"onboardedAt": "入职时间"
},
"studentOverview": {
"title": "学生概览",
"description": "您的学业表现和课表。"
},
"teacherOverview": {
"title": "教师概览",
"description": "您任教的科目和班级。",
"teachingSubjects": "任教科目",
"teachingSubjectsDesc": "您当前被分配教授的科目。",
"noSubjects": "暂无分配科目。",
"teachingClasses": "任教班级",
"teachingClassesDesc": "您当前管理的班级。",
"noClasses": "暂无分配班级。",
"view": "查看"
}
}
}

View File

@@ -66,6 +66,12 @@
"title": "我的学情诊断",
"description": "查看你的知识点掌握度分析与诊断报告。"
},
"studyPath": {
"title": "AI 学习路径",
"description": "基于你的学情数据AI 为你生成个性化学习路径,按步骤攻克薄弱知识点。",
"noUser": "未找到用户",
"noUserDesc": "请先登录学生账号以生成学习路径。"
},
"error": {
"title": "出错了",
"description": "发生了意外错误,请稍后重试。",

View File

@@ -164,6 +164,10 @@
"grade": {
"grade1": "一年级",
"grade2": "二年级",
"grade3": "三年级",
"grade4": "四年级",
"grade5": "五年级",
"grade6": "六年级",
"grade7": "七年级",
"grade8": "八年级",
"grade9": "九年级",
@@ -215,7 +219,9 @@
"prerequisiteCreated": "前置依赖已添加",
"prerequisiteCreateFailed": "添加前置依赖失败",
"prerequisiteDeleted": "前置依赖已删除",
"prerequisiteDeleteFailed": "删除前置依赖失败"
"prerequisiteDeleteFailed": "删除前置依赖失败",
"notFound": "教材不存在或无权访问",
"noClassMasteryPermission": "无权查看班级掌握度数据"
},
"graph": {
"viewMode": {
@@ -231,6 +237,7 @@
},
"detail": {
"title": "知识点详情",
"close": "关闭",
"noDescription": "暂无描述",
"viewAllQuestions": "查看全部题目",
"editPrerequisite": "编辑前置依赖",
@@ -246,6 +253,8 @@
"totalQuestions": "总题数",
"prerequisiteAdded": "前置依赖已添加",
"prerequisiteRemoved": "前置依赖已移除",
"prerequisiteAddFailed": "添加前置依赖失败",
"prerequisiteRemoveFailed": "删除前置依赖失败",
"cancel": "取消",
"confirm": "确认",
"saving": "保存中..."

View File

@@ -1,6 +1,43 @@
{
"title": "用户管理",
"description": "管理系统所有用户。",
"adminDescription": "管理所有系统用户,包括查看、搜索、删除。",
"importButton": "批量导入",
"searchPlaceholder": "搜索姓名或邮箱...",
"allRoles": "所有角色",
"search": "搜索",
"reset": "重置",
"emptyTitle": "暂无用户",
"emptyFilteredDescription": "没有匹配的用户,请调整搜索条件。",
"emptyDescription": "系统中还没有用户,点击批量导入创建。",
"unassigned": "未分配",
"deleteConfirmTitle": "确认删除用户?",
"deleteConfirmDescription": "此操作将永久删除该用户及其关联数据,且不可恢复。如果该用户关联了班级或学生,请先解除关联。",
"columns": {
"name": "姓名",
"email": "邮箱",
"role": "角色",
"phone": "手机",
"createdAt": "注册时间",
"actions": "操作"
},
"actions": {
"edit": "编辑",
"assignRoles": "分配角色",
"delete": "删除",
"cancel": "取消",
"deleting": "删除中...",
"confirmDelete": "确认删除"
},
"pagination": {
"info": "显示第 {start}-{end} 条,共 {total} 条",
"prev": "上一页",
"pageInfo": "第 {page} / {totalPages} 页",
"next": "下一页"
},
"messages": {
"deleted": "用户已删除"
},
"import": {
"title": "批量导入用户",
"description": "通过 Excel 文件批量创建用户账号,支持学生自动加入班级。",
@@ -41,4 +78,4 @@
"fieldInviteCodeRequired": "选填",
"fieldInviteCodeDescription": "仅 student 角色有效6 位邀请码"
}
}
}