feat(shared,tests): add error boundaries, lib utils, i18n messages, and integration tests
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:
@@ -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": "选择考试模式并配置相关选项。监考模式会启用防作弊监控。",
|
||||
|
||||
Reference in New Issue
Block a user