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

@@ -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": "正在加载课程计划数据..."
}
}
}