feat(i18n): add new i18n message files and update request config
- Add new i18n message files: audit, course-plans, files, leave, nav, practice, scheduling, student, users - Update existing i18n messages: ai, attendance, common, diagnostic, elective, error-book, exam-homework, grades, lesson-preparation, school, settings - Update i18n request config for new locale handling
This commit is contained in:
@@ -40,6 +40,16 @@ export default getRequestConfig(async () => {
|
|||||||
elective,
|
elective,
|
||||||
school,
|
school,
|
||||||
ai,
|
ai,
|
||||||
|
practice,
|
||||||
|
student,
|
||||||
|
errorBook,
|
||||||
|
audit,
|
||||||
|
scheduling,
|
||||||
|
coursePlans,
|
||||||
|
files,
|
||||||
|
users,
|
||||||
|
leave,
|
||||||
|
nav,
|
||||||
] = await Promise.all([
|
] = await Promise.all([
|
||||||
import(`@/shared/i18n/messages/${locale}/common.json`),
|
import(`@/shared/i18n/messages/${locale}/common.json`),
|
||||||
import(`@/shared/i18n/messages/${locale}/auth.json`),
|
import(`@/shared/i18n/messages/${locale}/auth.json`),
|
||||||
@@ -61,6 +71,16 @@ export default getRequestConfig(async () => {
|
|||||||
import(`@/shared/i18n/messages/${locale}/elective.json`),
|
import(`@/shared/i18n/messages/${locale}/elective.json`),
|
||||||
import(`@/shared/i18n/messages/${locale}/school.json`),
|
import(`@/shared/i18n/messages/${locale}/school.json`),
|
||||||
import(`@/shared/i18n/messages/${locale}/ai.json`),
|
import(`@/shared/i18n/messages/${locale}/ai.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/practice.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/student.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/error-book.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/audit.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/scheduling.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/course-plans.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/files.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/users.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/leave.json`),
|
||||||
|
import(`@/shared/i18n/messages/${locale}/nav.json`),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -86,6 +106,16 @@ export default getRequestConfig(async () => {
|
|||||||
elective: elective.default,
|
elective: elective.default,
|
||||||
school: school.default,
|
school: school.default,
|
||||||
ai: ai.default,
|
ai: ai.default,
|
||||||
|
practice: practice.default,
|
||||||
|
student: student.default,
|
||||||
|
errorBook: errorBook.default,
|
||||||
|
audit: audit.default,
|
||||||
|
scheduling: scheduling.default,
|
||||||
|
coursePlans: coursePlans.default,
|
||||||
|
files: files.default,
|
||||||
|
users: users.default,
|
||||||
|
leave: leave.default,
|
||||||
|
nav: nav.default,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -142,7 +142,13 @@
|
|||||||
"callsToday": "Calls today",
|
"callsToday": "Calls today",
|
||||||
"callsThisWeek": "Calls this week",
|
"callsThisWeek": "Calls this week",
|
||||||
"errorRate": "Error rate",
|
"errorRate": "Error rate",
|
||||||
"avgDuration": "Avg duration"
|
"avgDuration": "Avg duration",
|
||||||
|
"settings": {
|
||||||
|
"title": "AI Settings",
|
||||||
|
"description": "Manage AI providers, API keys, and usage statistics.",
|
||||||
|
"descriptionAdmin": "Manage AI providers, API keys, and usage statistics (Admin view).",
|
||||||
|
"descriptionUser": "Manage your AI providers and API keys."
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"studyPath": {
|
"studyPath": {
|
||||||
"title": "Your Learning Path",
|
"title": "Your Learning Path",
|
||||||
@@ -160,7 +166,18 @@
|
|||||||
"title": "AI Assistant",
|
"title": "AI Assistant",
|
||||||
"open": "Open AI Assistant",
|
"open": "Open AI Assistant",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
"contextAware": "Context-aware"
|
"contextAware": "Context-aware",
|
||||||
|
"dragHint": "Drag to move · Long press edge to hide",
|
||||||
|
"hidden": "Hidden",
|
||||||
|
"show": "Show",
|
||||||
|
"hide": "Hide",
|
||||||
|
"resetPosition": "Reset position",
|
||||||
|
"welcome": "Hi, I'm your AI Assistant",
|
||||||
|
"welcomeDesc": "How can I help you today?",
|
||||||
|
"newChat": "New chat",
|
||||||
|
"history": "History",
|
||||||
|
"online": "Online",
|
||||||
|
"tokens": "{count} chars"
|
||||||
},
|
},
|
||||||
"safety": {
|
"safety": {
|
||||||
"blocked": "Your message was blocked by the safety filter. Please keep the conversation educational.",
|
"blocked": "Your message was blocked by the safety filter. Please keep the conversation educational.",
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
"record": "Record Attendance",
|
"record": "Record Attendance",
|
||||||
"stats": "Statistics",
|
"stats": "Statistics",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
|
"retry": "Retry",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"markAllPresent": "Mark All Present"
|
"markAllPresent": "Mark All Present"
|
||||||
|
|||||||
12
src/shared/i18n/messages/en/audit.json
Normal file
12
src/shared/i18n/messages/en/audit.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"title": "Audit Logs",
|
||||||
|
"description": "Track all user operations system-wide for security and compliance.",
|
||||||
|
"loginLogs": {
|
||||||
|
"title": "Login Logs",
|
||||||
|
"description": "Monitor all authentication events including sign-in, sign-out, and sign-up."
|
||||||
|
},
|
||||||
|
"dataChanges": {
|
||||||
|
"title": "Data Change Logs",
|
||||||
|
"description": "Track all data changes (create, update, delete) for compliance."
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -49,5 +49,23 @@
|
|||||||
"next": "Next",
|
"next": "Next",
|
||||||
"page": "Page {page}",
|
"page": "Page {page}",
|
||||||
"total": "{total} items"
|
"total": "{total} items"
|
||||||
|
},
|
||||||
|
"accessDenied": "Access denied",
|
||||||
|
"accessDeniedDesc": "This resource is not available to your account.",
|
||||||
|
"somethingWentWrong": "Something went wrong",
|
||||||
|
"tryAgain": "Try again",
|
||||||
|
"user": {
|
||||||
|
"loading": "Loading...",
|
||||||
|
"notLoggedIn": "Not logged in",
|
||||||
|
"profile": "Profile",
|
||||||
|
"settings": "Settings",
|
||||||
|
"logout": "Log out"
|
||||||
|
},
|
||||||
|
"sidebar": {
|
||||||
|
"collapse": "Collapse",
|
||||||
|
"toggleSidebar": "Toggle Sidebar"
|
||||||
|
},
|
||||||
|
"breadcrumb": {
|
||||||
|
"home": "Home"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
src/shared/i18n/messages/en/course-plans.json
Normal file
16
src/shared/i18n/messages/en/course-plans.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"title": "Course Plans",
|
||||||
|
"description": "Manage course teaching plans and weekly lesson arrangements.",
|
||||||
|
"detail": {
|
||||||
|
"title": "Course Plan Details",
|
||||||
|
"description": "View course plan details."
|
||||||
|
},
|
||||||
|
"edit": {
|
||||||
|
"title": "Edit Course Plan",
|
||||||
|
"description": "Update course plan details."
|
||||||
|
},
|
||||||
|
"create": {
|
||||||
|
"title": "Create Course Plan",
|
||||||
|
"description": "Create a new course teaching plan."
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -185,5 +185,20 @@
|
|||||||
"noWeaknesses": "No weaknesses identified.",
|
"noWeaknesses": "No weaknesses identified.",
|
||||||
"reportMeta": "Period: {period} · Overall: {score}%",
|
"reportMeta": "Period: {period} · Overall: {score}%",
|
||||||
"historyReportMeta": "{date} · Overall: {score}%"
|
"historyReportMeta": "{date} · Overall: {score}%"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"title": "Children Diagnostic",
|
||||||
|
"description": "View your children's knowledge point mastery and diagnostic reports.",
|
||||||
|
"noChildren": "No children linked",
|
||||||
|
"noChildrenDesc": "Your account is not linked to any children. Please contact the school administrator.",
|
||||||
|
"selectChild": "Select a child",
|
||||||
|
"selectChildPlaceholder": "Choose a child to view their diagnostic data",
|
||||||
|
"overallMastery": "Overall Mastery",
|
||||||
|
"knowledgePoints": "Knowledge Points",
|
||||||
|
"strengths": "Strengths",
|
||||||
|
"weaknesses": "Weaknesses",
|
||||||
|
"reports": "Diagnostic Reports",
|
||||||
|
"noReports": "No diagnostic reports for this child yet.",
|
||||||
|
"mastery": "Mastery"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,8 @@
|
|||||||
"select": "Select",
|
"select": "Select",
|
||||||
"drop": "Drop",
|
"drop": "Drop",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"save": "Save"
|
"save": "Save",
|
||||||
|
"retry": "Retry"
|
||||||
},
|
},
|
||||||
"list": {
|
"list": {
|
||||||
"empty": "No elective courses",
|
"empty": "No elective courses",
|
||||||
|
|||||||
@@ -76,11 +76,33 @@
|
|||||||
"parent": {
|
"parent": {
|
||||||
"title": "Child Error Book",
|
"title": "Child Error Book",
|
||||||
"description": "View your child's error statistics and learning progress",
|
"description": "View your child's error statistics and learning progress",
|
||||||
"noChild": "No children linked"
|
"noChild": "No children linked",
|
||||||
|
"noChildDesc": "Your account is not linked to any children yet. Please contact the school administrator.",
|
||||||
|
"unknown": "Unknown",
|
||||||
|
"totalErrors": "Total Errors",
|
||||||
|
"dueReview": "Due Review",
|
||||||
|
"newItems": "New",
|
||||||
|
"mastered": "Mastered",
|
||||||
|
"mastery": "{rate}% Mastery",
|
||||||
|
"weakPoints": "Weak Knowledge Points",
|
||||||
|
"errorsAndMastery": "{count} errors \u00b7 {rate}% mastery"
|
||||||
},
|
},
|
||||||
"admin": {
|
"admin": {
|
||||||
"title": "School-wide Error Analysis",
|
"title": "School-wide Error Analysis",
|
||||||
"description": "School-wide error statistics and weak point analysis"
|
"description": "School-wide error statistics and weak point analysis",
|
||||||
|
"description2": "View school-wide error statistics and weak knowledge points by subject.",
|
||||||
|
"noPermissionTitle": "Insufficient Permissions",
|
||||||
|
"noPermissionDescription": "You do not have permission to view school-wide error analysis data.",
|
||||||
|
"noStudentsTitle": "No Student Data",
|
||||||
|
"noStudentsDescription": "No student users in the system. Unable to display error analysis.",
|
||||||
|
"topStudents": "Top 50 Students with Most Errors",
|
||||||
|
"studentsWithErrors": "{count} students with errors",
|
||||||
|
"noChapterDataTitle": "No Chapter Error Data",
|
||||||
|
"noChapterDataDescription": "Knowledge points have not been linked to chapters. Unable to display chapter-level statistics.",
|
||||||
|
"noKnowledgePointDataTitle": "No Knowledge Point Data",
|
||||||
|
"noKnowledgePointDataDescription": "Errors have not been linked to knowledge points. Unable to display weak point statistics.",
|
||||||
|
"noStudentErrorsTitle": "No Student Errors",
|
||||||
|
"noStudentErrorsDescription": "No student error data for the selected subject."
|
||||||
},
|
},
|
||||||
"messages": {
|
"messages": {
|
||||||
"added": "Error added",
|
"added": "Error added",
|
||||||
|
|||||||
@@ -131,8 +131,9 @@
|
|||||||
"description": "Manage assignments, view submission rates and grading progress.",
|
"description": "Manage assignments, view submission rates and grading progress.",
|
||||||
"create": "Create Assignment",
|
"create": "Create Assignment",
|
||||||
"empty": "No assignments yet",
|
"empty": "No assignments yet",
|
||||||
"emptyFiltered": "No assignments in this class.",
|
"emptyFiltered": "No assignments match your filters",
|
||||||
"emptyDescription": "You haven't created any assignments yet.",
|
"emptyDescription": "You haven't created any assignments yet.",
|
||||||
|
"emptyFilteredDescription": "Try clearing filters or adjusting keywords.",
|
||||||
"clearFilters": "Clear filters",
|
"clearFilters": "Clear filters",
|
||||||
"filterByClass": "Filter by class: {{className}}",
|
"filterByClass": "Filter by class: {{className}}",
|
||||||
"columns": {
|
"columns": {
|
||||||
|
|||||||
4
src/shared/i18n/messages/en/files.json
Normal file
4
src/shared/i18n/messages/en/files.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"title": "File Management",
|
||||||
|
"description": "View and manage all uploaded files in the system."
|
||||||
|
}
|
||||||
@@ -229,6 +229,41 @@
|
|||||||
"dismissAriaLabel": "Close entry guide"
|
"dismissAriaLabel": "Close entry guide"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"batchByExam": {
|
||||||
|
"title": "Grade Entry by Exam Paper",
|
||||||
|
"selectExam": "Select Exam Paper",
|
||||||
|
"selectExamPlaceholder": "Please select an exam paper",
|
||||||
|
"selectClass": "Select Class",
|
||||||
|
"selectClassPlaceholder": "Please select a class",
|
||||||
|
"selectClassFirst": "Please select a class to start entry",
|
||||||
|
"guideSelectExam": "Select an exam paper from the library. The system will load the question list and full score automatically. Enter per-question scores and the total will be calculated automatically.",
|
||||||
|
"questionCount": "{count} questions",
|
||||||
|
"fullScore": "Full score: {score}",
|
||||||
|
"question": "Q{n}",
|
||||||
|
"points": "pts",
|
||||||
|
"totalScore": "Total",
|
||||||
|
"studentName": "Student",
|
||||||
|
"entered": "Entered",
|
||||||
|
"average": "Avg",
|
||||||
|
"max": "Max",
|
||||||
|
"min": "Min",
|
||||||
|
"searchStudent": "Search students...",
|
||||||
|
"noStudents": "No students in this class",
|
||||||
|
"invalidScoresBadge": "Invalid scores",
|
||||||
|
"invalidScoresError": "Invalid scores (exceed full score or wrong format), please check and retry",
|
||||||
|
"enterAtLeastOne": "Please enter at least one score",
|
||||||
|
"pasteApplied": "Pasted {count} rows",
|
||||||
|
"pasteHint": "Tip: Copy multiple rows/columns from Excel and paste to fill in bulk. Press Enter to go to next row, Tab to go to next cell.",
|
||||||
|
"confirmSwitchExam": "Switching exam will clear entered scores. Continue?",
|
||||||
|
"confirmSwitchClass": "Switching class will clear entered scores. Continue?",
|
||||||
|
"saveAll": "Save All Grades",
|
||||||
|
"saving": "Saving...",
|
||||||
|
"clear": "Clear",
|
||||||
|
"undo": "Undo",
|
||||||
|
"undoNoRecord": "No records to undo",
|
||||||
|
"undoExpired": "Undo expired (over 5 minutes)",
|
||||||
|
"undoFailed": "Undo failed, please retry"
|
||||||
|
},
|
||||||
"trend": {
|
"trend": {
|
||||||
"title": "Grade Trend",
|
"title": "Grade Trend",
|
||||||
"empty": "No grade records yet",
|
"empty": "No grade records yet",
|
||||||
@@ -249,7 +284,8 @@
|
|||||||
"noGradesTitle": "No grades yet",
|
"noGradesTitle": "No grades yet",
|
||||||
"noGradesDescription": "There are no grade records for this student.",
|
"noGradesDescription": "There are no grade records for this student.",
|
||||||
"noDataTitle": "No data",
|
"noDataTitle": "No data",
|
||||||
"noDataDescription": "Student grade summary is not available."
|
"noDataDescription": "Student grade summary is not available.",
|
||||||
|
"recordCount": "{count} grade records"
|
||||||
},
|
},
|
||||||
"empty": {
|
"empty": {
|
||||||
"noRecords": "No grade records found.",
|
"noRecords": "No grade records found.",
|
||||||
@@ -344,11 +380,37 @@
|
|||||||
"ariaLabelNonEmpty": "Ranking trend chart: {count} ranking records"
|
"ariaLabelNonEmpty": "Ranking trend chart: {count} ranking records"
|
||||||
},
|
},
|
||||||
"classReport": {
|
"classReport": {
|
||||||
|
"caption": "Class ranking table",
|
||||||
"noDataTitle": "No data",
|
"noDataTitle": "No data",
|
||||||
"noDataDescription": "No grade records found for this class.",
|
"noDataDescription": "No grade records found for this class.",
|
||||||
"classRanking": "Class Ranking",
|
"classRanking": "Class Ranking",
|
||||||
"rankColumn": "Rank",
|
"rankColumn": "Rank",
|
||||||
"recordsColumn": "Records",
|
"recordsColumn": "Records",
|
||||||
"studentCountInfo": "{studentCount} students · {recordCount} grade records"
|
"studentCountInfo": "{studentCount} students · {recordCount} grade records"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"title": "Children Grades",
|
||||||
|
"description": "View your children's grade records.",
|
||||||
|
"noChildren": "No children linked",
|
||||||
|
"noChildrenDesc": "Your account is not linked to any children. Please contact the school administrator.",
|
||||||
|
"selectChild": "Select a child",
|
||||||
|
"selectChildPlaceholder": "Choose a child to view their grades",
|
||||||
|
"noGrades": "No grade records",
|
||||||
|
"noGradesDesc": "This child has no grade records yet.",
|
||||||
|
"subject": "Subject",
|
||||||
|
"score": "Score",
|
||||||
|
"exam": "Exam",
|
||||||
|
"semester": "Semester",
|
||||||
|
"teacher": "Teacher",
|
||||||
|
"date": "Date",
|
||||||
|
"average": "Average",
|
||||||
|
"highest": "Highest",
|
||||||
|
"lowest": "Lowest",
|
||||||
|
"totalRecords": "Total Records",
|
||||||
|
"gradeHistory": "Grade History",
|
||||||
|
"gradeSummary": "Grade Summary",
|
||||||
|
"recentGrades": "Recent Grades",
|
||||||
|
"viewAll": "View All",
|
||||||
|
"noRecentGrades": "No recent grades"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
src/shared/i18n/messages/en/leave.json
Normal file
12
src/shared/i18n/messages/en/leave.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"title": "Leave Request",
|
||||||
|
"description": "Submit a leave request for your child.",
|
||||||
|
"backToDashboard": "Back to Dashboard",
|
||||||
|
"onlineLeave": "Online Leave Request",
|
||||||
|
"comingSoon": "Coming soon",
|
||||||
|
"comingSoonDesc": "The online leave request feature is being developed and will be available soon. For now, please contact the homeroom teacher or school office directly.",
|
||||||
|
"contactOptions": "Contact options",
|
||||||
|
"callOffice": "Call the school office during working hours",
|
||||||
|
"sendMessage": "Send a message to the homeroom teacher via the Messages page",
|
||||||
|
"goToMessages": "Go to Messages"
|
||||||
|
}
|
||||||
@@ -21,6 +21,12 @@
|
|||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
"create": "Create Lesson Plan",
|
"create": "Create Lesson Plan",
|
||||||
"publish": "Publish as Homework",
|
"publish": "Publish as Homework",
|
||||||
|
"publishPlan": "Publish Lesson Plan",
|
||||||
|
"unpublishPlan": "Unpublish",
|
||||||
|
"publishPlanConfirm": "Students and parents will be able to view this lesson plan after publishing. Confirm?",
|
||||||
|
"unpublishPlanConfirm": "Students and parents will no longer be able to view this lesson plan after unpublishing. Confirm?",
|
||||||
|
"publishPlanSuccess": "Lesson plan published",
|
||||||
|
"unpublishPlanSuccess": "Lesson plan unpublished",
|
||||||
"viewHomework": "View"
|
"viewHomework": "View"
|
||||||
},
|
},
|
||||||
"status": {
|
"status": {
|
||||||
@@ -57,6 +63,10 @@
|
|||||||
"titlePlaceholder": "e.g., Autumn - Lesson 1",
|
"titlePlaceholder": "e.g., Autumn - Lesson 1",
|
||||||
"blockCount": "{count} sections",
|
"blockCount": "{count} sections",
|
||||||
"blankHint": "Start from scratch",
|
"blankHint": "Start from scratch",
|
||||||
|
"systemSection": "System Templates",
|
||||||
|
"personalSection": "Personal Templates",
|
||||||
|
"personalBadge": "Personal",
|
||||||
|
"noPersonalTemplates": "No personal templates yet. Save one from the editor via \"Save as Template\".",
|
||||||
"names": {
|
"names": {
|
||||||
"tpl_regular": "Regular Lesson",
|
"tpl_regular": "Regular Lesson",
|
||||||
"tpl_review": "Review Lesson",
|
"tpl_review": "Review Lesson",
|
||||||
@@ -101,12 +111,51 @@
|
|||||||
"textbookContent": "Textbook Content",
|
"textbookContent": "Textbook Content",
|
||||||
"textbookContentMissing": "Content node missing",
|
"textbookContentMissing": "Content node missing",
|
||||||
"textbookContentEmpty": "(No content loaded)",
|
"textbookContentEmpty": "(No content loaded)",
|
||||||
|
"textbookOperateHint": "Operate directly on the canvas: select text to create a range anchor, or click a position to create a point anchor.",
|
||||||
|
"rightClickHint": "Right-click for anchor menu",
|
||||||
|
"dragToResize": "Drag to resize",
|
||||||
|
"anchorListTitle": "Anchor List",
|
||||||
|
"anchorListEmpty": "No anchors yet. Select text in the content to create one.",
|
||||||
|
"anchorRangeLabel": "Range",
|
||||||
|
"anchorPointLabel": "Point",
|
||||||
"zoomIn": "Zoom In",
|
"zoomIn": "Zoom In",
|
||||||
"zoomOut": "Zoom Out",
|
"zoomOut": "Zoom Out",
|
||||||
"rangeAnchorTitle": "Link selection to a node",
|
"rangeAnchorTitle": "Link selection to a node",
|
||||||
"pointAnchorTitle": "Insert placeholder {number} here",
|
"pointAnchorTitle": "Insert placeholder at this position {number}",
|
||||||
"anchorToSelectedNode": "Link to selected node",
|
"anchorToSelectedNode": "Link to selected node",
|
||||||
"anchorToNewNode": "Link to a new node"
|
"anchorToNewNode": "Link to a new node",
|
||||||
|
"textbookLabel": "Textbook",
|
||||||
|
"chapterLabel": "Chapter",
|
||||||
|
"selectNodeForAnchor": "Select a node to link",
|
||||||
|
"createNewNode": "Create and link a new node"
|
||||||
|
},
|
||||||
|
"readonly": {
|
||||||
|
"title": "View Lesson Plan",
|
||||||
|
"hint": "This is a read-only view. You cannot edit this lesson plan.",
|
||||||
|
"notFound": "Lesson plan not found or not published",
|
||||||
|
"notPublished": "Lesson plan is not published yet"
|
||||||
|
},
|
||||||
|
"student": {
|
||||||
|
"title": "My Lesson Plans",
|
||||||
|
"description": "View lesson plans published by your teachers"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"title": "Child's Lesson Plans",
|
||||||
|
"description": "View lesson plans published by your child's teachers"
|
||||||
|
},
|
||||||
|
"admin": {
|
||||||
|
"title": "Lesson Plan Management",
|
||||||
|
"description": "View lesson plans across the school",
|
||||||
|
"stats": {
|
||||||
|
"total": "Total Plans",
|
||||||
|
"published": "Published",
|
||||||
|
"draft": "Draft",
|
||||||
|
"archived": "Archived"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gradeHead": {
|
||||||
|
"title": "Grade Lesson Plans",
|
||||||
|
"description": "View lesson plans from teachers in your grade"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"textbookLabel": "Select Textbook",
|
"textbookLabel": "Select Textbook",
|
||||||
@@ -133,7 +182,10 @@
|
|||||||
"noChapter": "No chapter",
|
"noChapter": "No chapter",
|
||||||
"noTemplate": "No template",
|
"noTemplate": "No template",
|
||||||
"lastSaved": "Last saved: ",
|
"lastSaved": "Last saved: ",
|
||||||
"neverSaved": "Never saved"
|
"neverSaved": "Never saved",
|
||||||
|
"versionCount": "{count} versions",
|
||||||
|
"versionSelectorLabel": "Version",
|
||||||
|
"versionCurrent": "Latest"
|
||||||
},
|
},
|
||||||
"version": {
|
"version": {
|
||||||
"title": "Version History",
|
"title": "Version History",
|
||||||
@@ -145,7 +197,8 @@
|
|||||||
"revertTitle": "Confirm Revert",
|
"revertTitle": "Confirm Revert",
|
||||||
"revertConfirm": "Revert to v{versionNo}? A new version will be created.",
|
"revertConfirm": "Revert to v{versionNo}? A new version will be created.",
|
||||||
"revertSuccess": "Reverted to v{versionNo}",
|
"revertSuccess": "Reverted to v{versionNo}",
|
||||||
"autoLabel": "Auto version"
|
"autoLabel": "Auto version",
|
||||||
|
"revertLabel": "Revert to v{versionNo}"
|
||||||
},
|
},
|
||||||
"knowledgePoint": {
|
"knowledgePoint": {
|
||||||
"title": "Select Knowledge Points",
|
"title": "Select Knowledge Points",
|
||||||
@@ -212,7 +265,9 @@
|
|||||||
"noExerciseBlock": "Exercise block not found",
|
"noExerciseBlock": "Exercise block not found",
|
||||||
"noQuestions": "No questions in exercise block",
|
"noQuestions": "No questions in exercise block",
|
||||||
"planNotFound": "Lesson plan not found",
|
"planNotFound": "Lesson plan not found",
|
||||||
"noPermission": "No permission to publish"
|
"noPermission": "No permission to publish",
|
||||||
|
"homeworkTitle": "{title} - Homework",
|
||||||
|
"homeworkDescription": "From lesson plan"
|
||||||
},
|
},
|
||||||
"textStudy": {
|
"textStudy": {
|
||||||
"sourceTextLabel": "Source Text",
|
"sourceTextLabel": "Source Text",
|
||||||
@@ -222,8 +277,86 @@
|
|||||||
"annotationTitle": "Teaching Node",
|
"annotationTitle": "Teaching Node",
|
||||||
"annotationNotePlaceholder": "Teaching notes..."
|
"annotationNotePlaceholder": "Teaching notes..."
|
||||||
},
|
},
|
||||||
|
"objective": {
|
||||||
|
"hint": "Add learning objectives across knowledge, process, and emotional dimensions",
|
||||||
|
"dimension": {
|
||||||
|
"knowledge": "Knowledge & Skills",
|
||||||
|
"process": "Process & Methods",
|
||||||
|
"emotion": "Emotional Attitudes"
|
||||||
|
},
|
||||||
|
"textPlaceholder": "Enter learning objective...",
|
||||||
|
"addItem": "+ Add Objective"
|
||||||
|
},
|
||||||
|
"keyPoint": {
|
||||||
|
"hint": "Mark key and difficult points of this lesson",
|
||||||
|
"type": {
|
||||||
|
"key": "Key Point",
|
||||||
|
"difficult": "Difficult Point"
|
||||||
|
},
|
||||||
|
"textPlaceholder": "Enter key/difficult point...",
|
||||||
|
"addItem": "+ Add Point"
|
||||||
|
},
|
||||||
|
"newTeaching": {
|
||||||
|
"hint": "Design teaching steps for the new lesson",
|
||||||
|
"pointIndex": "Step {index}",
|
||||||
|
"outlineLabel": "Teaching Outline",
|
||||||
|
"outlinePlaceholder": "Enter teaching outline...",
|
||||||
|
"boardNotesLabel": "Board Notes",
|
||||||
|
"boardNotesPlaceholder": "Enter board notes...",
|
||||||
|
"addPoint": "+ Add Step"
|
||||||
|
},
|
||||||
|
"summary": {
|
||||||
|
"hint": "Summarize key points to help students review",
|
||||||
|
"pointPlaceholder": "Enter summary point...",
|
||||||
|
"addPoint": "+ Add Point",
|
||||||
|
"homeworkPreviewLabel": "Homework Preview",
|
||||||
|
"homeworkPreviewPlaceholder": "Briefly describe homework..."
|
||||||
|
},
|
||||||
|
"homework": {
|
||||||
|
"hint": "Assign homework",
|
||||||
|
"type": {
|
||||||
|
"exercise": "Exercise",
|
||||||
|
"reading": "Reading",
|
||||||
|
"writing": "Writing"
|
||||||
|
},
|
||||||
|
"refIdPlaceholder": "Homework ref ID (optional)",
|
||||||
|
"descriptionPlaceholder": "Enter homework requirements...",
|
||||||
|
"addItem": "+ Add Homework"
|
||||||
|
},
|
||||||
|
"blackboard": {
|
||||||
|
"hint": "Design board layout",
|
||||||
|
"layoutLabel": "Board Layout",
|
||||||
|
"layout": {
|
||||||
|
"structure": "Structured",
|
||||||
|
"mindmap": "Mind Map",
|
||||||
|
"text": "Text-based"
|
||||||
|
},
|
||||||
|
"contentLabel": "Board Content",
|
||||||
|
"contentPlaceholder": "Enter board content..."
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"hint": "Design lesson introduction",
|
||||||
|
"methodLabel": "Introduction Method",
|
||||||
|
"method": {
|
||||||
|
"question": "Question-based",
|
||||||
|
"situation": "Scenario-based",
|
||||||
|
"review": "Review-based",
|
||||||
|
"other": "Other"
|
||||||
|
},
|
||||||
|
"promptLabel": "Introduction Script",
|
||||||
|
"promptPlaceholder": "Enter introduction script...",
|
||||||
|
"durationLabel": "Estimated Duration",
|
||||||
|
"durationUnit": "min"
|
||||||
|
},
|
||||||
"reflection": {
|
"reflection": {
|
||||||
"hint": "Write teaching reflection after class..."
|
"hint": "Write teaching reflection after class...",
|
||||||
|
"aspect": {
|
||||||
|
"effectiveness": "Effectiveness",
|
||||||
|
"problems": "Problems",
|
||||||
|
"improvements": "Improvements"
|
||||||
|
},
|
||||||
|
"textPlaceholder": "Enter reflection...",
|
||||||
|
"addItem": "+ Add Reflection"
|
||||||
},
|
},
|
||||||
"richText": {
|
"richText": {
|
||||||
"placeholder": "Enter content..."
|
"placeholder": "Enter content..."
|
||||||
@@ -250,7 +383,14 @@
|
|||||||
"createFailed": "Creation failed",
|
"createFailed": "Creation failed",
|
||||||
"loadFailed": "Page load failed",
|
"loadFailed": "Page load failed",
|
||||||
"loadFailedDesc": "Sorry, an unexpected error occurred. Please try again later.",
|
"loadFailedDesc": "Sorry, an unexpected error occurred. Please try again later.",
|
||||||
"retry": "Retry"
|
"retry": "Retry",
|
||||||
|
"invalidQuestionType": "Invalid question type",
|
||||||
|
"duplicateSuffix": " - Copy",
|
||||||
|
"titleRequired": "Title is required",
|
||||||
|
"titleTooLong": "Title cannot exceed 255 characters",
|
||||||
|
"templateRequired": "Please select a template",
|
||||||
|
"invalidDate": "Invalid date format",
|
||||||
|
"classRequired": "At least one class is required"
|
||||||
},
|
},
|
||||||
"confirm": {
|
"confirm": {
|
||||||
"archive": "Archive this lesson plan?",
|
"archive": "Archive this lesson plan?",
|
||||||
|
|||||||
93
src/shared/i18n/messages/en/nav.json
Normal file
93
src/shared/i18n/messages/en/nav.json
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"common": {
|
||||||
|
"announcements": "Announcements",
|
||||||
|
"messages": "Messages",
|
||||||
|
"aiSettings": "AI Settings"
|
||||||
|
},
|
||||||
|
"admin": {
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"schoolManagement": "School Management",
|
||||||
|
"schools": "Schools",
|
||||||
|
"grades": "Grades",
|
||||||
|
"gradeInsights": "Grade Insights",
|
||||||
|
"departments": "Departments",
|
||||||
|
"classes": "Classes",
|
||||||
|
"academicYear": "Academic Year",
|
||||||
|
"users": "Users",
|
||||||
|
"userList": "User List",
|
||||||
|
"importUsers": "Import Users",
|
||||||
|
"teaching": "Teaching",
|
||||||
|
"coursePlans": "Course Plans",
|
||||||
|
"electives": "Electives",
|
||||||
|
"scheduling": "Scheduling",
|
||||||
|
"rules": "Rules",
|
||||||
|
"autoSchedule": "Auto Schedule",
|
||||||
|
"changeRequests": "Change Requests",
|
||||||
|
"attendance": "Attendance",
|
||||||
|
"announcements": "Announcements",
|
||||||
|
"files": "File Management",
|
||||||
|
"errorBook": "Error Book Analytics",
|
||||||
|
"lessonPlans": "Lesson Plans",
|
||||||
|
"auditLogs": "Audit Logs",
|
||||||
|
"operationLogs": "Operation Logs",
|
||||||
|
"loginLogs": "Login Logs",
|
||||||
|
"dataChanges": "Data Changes",
|
||||||
|
"settings": "Settings"
|
||||||
|
},
|
||||||
|
"teacher": {
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"textbooks": "Textbooks",
|
||||||
|
"exams": "Exams",
|
||||||
|
"allExams": "All Exams",
|
||||||
|
"createExam": "Create Exam",
|
||||||
|
"homework": "Homework",
|
||||||
|
"homeworkList": "Homework List",
|
||||||
|
"submissions": "Submissions",
|
||||||
|
"grades": "Grades",
|
||||||
|
"allGrades": "All Grades",
|
||||||
|
"batchEntry": "Batch Entry",
|
||||||
|
"gradeStats": "Grade Statistics",
|
||||||
|
"gradeAnalytics": "Grade Analytics",
|
||||||
|
"questions": "Question Bank",
|
||||||
|
"classManagement": "Class Management",
|
||||||
|
"myClasses": "My Classes",
|
||||||
|
"students": "Students",
|
||||||
|
"schedule": "Schedule",
|
||||||
|
"coursePlans": "Course Plans",
|
||||||
|
"lessonPlans": "My Lesson Plans",
|
||||||
|
"attendance": "Attendance",
|
||||||
|
"attendanceRecords": "Attendance Records",
|
||||||
|
"attendanceEntry": "Record Attendance",
|
||||||
|
"attendanceStats": "Attendance Statistics",
|
||||||
|
"scheduleChanges": "Schedule Changes",
|
||||||
|
"diagnostic": "Diagnostic",
|
||||||
|
"errorBook": "Error Book Analytics",
|
||||||
|
"electives": "Electives",
|
||||||
|
"gradeManagement": "Grade Management",
|
||||||
|
"gradeClasses": "Grade Classes",
|
||||||
|
"gradeDashboard": "Grade Dashboard",
|
||||||
|
"gradeInsights": "Grade Insights"
|
||||||
|
},
|
||||||
|
"student": {
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"myLearning": "My Learning",
|
||||||
|
"courses": "Courses",
|
||||||
|
"assignments": "Assignments",
|
||||||
|
"textbooks": "Textbooks",
|
||||||
|
"schedule": "Schedule",
|
||||||
|
"myGrades": "My Grades",
|
||||||
|
"lessonPlans": "My Lesson Plans",
|
||||||
|
"attendance": "Attendance",
|
||||||
|
"diagnostic": "Diagnostic",
|
||||||
|
"errorBook": "Error Book",
|
||||||
|
"electives": "Electives"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"grades": "Grades",
|
||||||
|
"lessonPlans": "Child's Lesson Plans",
|
||||||
|
"attendance": "Attendance",
|
||||||
|
"errorBook": "Error Book",
|
||||||
|
"leaveRequest": "Leave Request"
|
||||||
|
}
|
||||||
|
}
|
||||||
163
src/shared/i18n/messages/en/practice.json
Normal file
163
src/shared/i18n/messages/en/practice.json
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
{
|
||||||
|
"page": {
|
||||||
|
"title": "Targeted Practice",
|
||||||
|
"description": "Smart question generation based on errors, knowledge points, and weak chapters for targeted improvement."
|
||||||
|
},
|
||||||
|
"starter": {
|
||||||
|
"title": "Start Targeted Practice",
|
||||||
|
"description": "Choose a practice mode based on your learning progress",
|
||||||
|
"type": "Practice Type",
|
||||||
|
"knowledgePoints": "Select Knowledge Points",
|
||||||
|
"difficulty": "Difficulty",
|
||||||
|
"anyDifficulty": "Any",
|
||||||
|
"questionCount": "Question Count",
|
||||||
|
"start": "Start Practice",
|
||||||
|
"creating": "Creating..."
|
||||||
|
},
|
||||||
|
"session": {
|
||||||
|
"progress": "Progress",
|
||||||
|
"previous": "Previous",
|
||||||
|
"next": "Next",
|
||||||
|
"submit": "Submit",
|
||||||
|
"submitting": "Submitting...",
|
||||||
|
"skip": "Skip",
|
||||||
|
"complete": "Complete",
|
||||||
|
"abandon": "Abandon",
|
||||||
|
"abandonConfirm": "Are you sure you want to abandon this practice?",
|
||||||
|
"abandonDescription": "Answered questions will be saved, but this session won't count as completed.",
|
||||||
|
"cancel": "Cancel",
|
||||||
|
"confirmAbandon": "Confirm Abandon",
|
||||||
|
"question": "Question",
|
||||||
|
"difficulty": "Difficulty",
|
||||||
|
"variant": "Variant",
|
||||||
|
"correct": "Correct",
|
||||||
|
"incorrect": "Incorrect",
|
||||||
|
"pendingReview": "Pending Review",
|
||||||
|
"skipped": "Skipped",
|
||||||
|
"yourAnswer": "Your Answer",
|
||||||
|
"true": "True",
|
||||||
|
"false": "False",
|
||||||
|
"textPlaceholder": "Enter your answer...",
|
||||||
|
"empty": "No questions in this session"
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"title": "Practice Complete",
|
||||||
|
"answered": "Answered",
|
||||||
|
"correct": "Correct",
|
||||||
|
"accuracy": "Accuracy",
|
||||||
|
"review": "Question Review"
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"title": "Practice History",
|
||||||
|
"empty": "No practice records yet. Start your first targeted practice!"
|
||||||
|
},
|
||||||
|
"toasts": {
|
||||||
|
"created": "Practice created",
|
||||||
|
"createFailed": "Failed to create",
|
||||||
|
"selectKnowledgePoint": "Please select at least one knowledge point",
|
||||||
|
"selectWeakKnowledgePoint": "Please select at least one weak knowledge point",
|
||||||
|
"aiRecommendedReason": "Student-initiated AI recommended practice",
|
||||||
|
"submitted": "Submitted",
|
||||||
|
"submitFailed": "Submit failed",
|
||||||
|
"completed": "Practice completed",
|
||||||
|
"completeFailed": "Failed to complete",
|
||||||
|
"abandoned": "Practice abandoned",
|
||||||
|
"abandonFailed": "Operation failed"
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"totalSessions": "Total Sessions",
|
||||||
|
"completed": "Completed",
|
||||||
|
"totalAnswered": "Total Answered",
|
||||||
|
"accuracy": "Accuracy"
|
||||||
|
},
|
||||||
|
"types": {
|
||||||
|
"error_variant": "Error Variant",
|
||||||
|
"knowledge_point": "Knowledge Point",
|
||||||
|
"weak_chapter": "Weak Chapter",
|
||||||
|
"ai_recommended": "AI Recommended"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"in_progress": "In Progress",
|
||||||
|
"completed": "Completed",
|
||||||
|
"abandoned": "Abandoned"
|
||||||
|
},
|
||||||
|
"teacher": {
|
||||||
|
"title": "Practice Analytics",
|
||||||
|
"description": "View class practice stats, identify weak knowledge points, and support targeted teaching",
|
||||||
|
"noClass": "No classes available",
|
||||||
|
"noClassDescription": "You haven't been assigned to any class, so practice analytics are unavailable.",
|
||||||
|
"noStudent": "No students in class",
|
||||||
|
"noStudentDescription": "There are no students in the class, so practice analytics are unavailable.",
|
||||||
|
"noData": "No practice data",
|
||||||
|
"noDataDescription": "Students in the selected scope haven't started targeted practice yet.",
|
||||||
|
"overview": {
|
||||||
|
"totalClasses": "Classes",
|
||||||
|
"totalSessions": "Total Sessions",
|
||||||
|
"totalAnswered": "Total Answered",
|
||||||
|
"averageAccuracy": "Avg Accuracy",
|
||||||
|
"participationRate": "Participation"
|
||||||
|
},
|
||||||
|
"classComparison": {
|
||||||
|
"title": "Class Practice Comparison",
|
||||||
|
"className": "Class",
|
||||||
|
"totalStudents": "Students",
|
||||||
|
"activeStudents": "Active",
|
||||||
|
"participationRate": "Participation",
|
||||||
|
"totalSessions": "Sessions",
|
||||||
|
"completedSessions": "Completed",
|
||||||
|
"totalAnswered": "Answered",
|
||||||
|
"averageAccuracy": "Accuracy"
|
||||||
|
},
|
||||||
|
"typeBreakdown": {
|
||||||
|
"title": "Practice Type Breakdown",
|
||||||
|
"description": "Session count and accuracy grouped by practice type"
|
||||||
|
},
|
||||||
|
"knowledgePointWeakness": {
|
||||||
|
"title": "Knowledge Point Weakness",
|
||||||
|
"description": "Weak knowledge points identified from practice answers",
|
||||||
|
"knowledgePoint": "Knowledge Point",
|
||||||
|
"totalAnswers": "Answers",
|
||||||
|
"wrongAnswers": "Wrong",
|
||||||
|
"errorRate": "Error Rate",
|
||||||
|
"noData": "No knowledge point data",
|
||||||
|
"noDataDescription": "Practice questions aren't linked to knowledge points, so weakness stats are unavailable."
|
||||||
|
},
|
||||||
|
"studentRanking": {
|
||||||
|
"title": "Student Practice Ranking",
|
||||||
|
"description": "Sorted by session count to identify active and at-risk students",
|
||||||
|
"rank": "Rank",
|
||||||
|
"student": "Student",
|
||||||
|
"totalSessions": "Sessions",
|
||||||
|
"completedSessions": "Completed",
|
||||||
|
"totalAnswered": "Answered",
|
||||||
|
"accuracy": "Accuracy",
|
||||||
|
"lastPractice": "Last Practice"
|
||||||
|
},
|
||||||
|
"inactiveStudents": {
|
||||||
|
"title": "Inactive Students",
|
||||||
|
"description": "These students haven't started any practice. Consider reaching out.",
|
||||||
|
"empty": "All students have participated in practice",
|
||||||
|
"studentCount": "Inactive Count"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"grade": {
|
||||||
|
"title": "Grade Practice Overview",
|
||||||
|
"description": "Compare practice participation and quality across classes to support grade-level decisions",
|
||||||
|
"noGrade": "No grades managed",
|
||||||
|
"noGradeDescription": "You haven't been assigned to manage any grade, so grade practice data is unavailable.",
|
||||||
|
"overview": {
|
||||||
|
"totalClasses": "Classes",
|
||||||
|
"totalStudents": "Students",
|
||||||
|
"activeStudents": "Active",
|
||||||
|
"participationRate": "Participation",
|
||||||
|
"totalSessions": "Total Sessions",
|
||||||
|
"completedSessions": "Completed",
|
||||||
|
"totalAnswered": "Total Answered",
|
||||||
|
"averageAccuracy": "Avg Accuracy"
|
||||||
|
},
|
||||||
|
"classComparison": {
|
||||||
|
"title": "Class Practice Comparison",
|
||||||
|
"description": "Sorted by participation rate to identify active and underperforming classes"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
30
src/shared/i18n/messages/en/scheduling.json
Normal file
30
src/shared/i18n/messages/en/scheduling.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"title": "Scheduling Rules",
|
||||||
|
"description": "Configure daily lesson limits, break windows, and balance preferences.",
|
||||||
|
"noClassesTitle": "No available classes",
|
||||||
|
"noClassesDescription": "Please create classes before configuring scheduling rules.",
|
||||||
|
"hint": "Rules saved without selecting a specific class will be used as global defaults."
|
||||||
|
},
|
||||||
|
"auto": {
|
||||||
|
"title": "Auto Scheduling",
|
||||||
|
"description": "Auto-generate weekly schedules based on rules and subject allocation.",
|
||||||
|
"configureRules": "Configure Rules",
|
||||||
|
"noClassesTitle": "No available classes",
|
||||||
|
"noClassesDescription": "Please create classes before running auto scheduling.",
|
||||||
|
"hint": "Applying a new schedule will replace the current schedule for the selected classes."
|
||||||
|
},
|
||||||
|
"changes": {
|
||||||
|
"title": "Schedule Change Requests",
|
||||||
|
"description": "Review, approve, or reject schedule changes and substitute requests.",
|
||||||
|
"newRequest": "New Request",
|
||||||
|
"noChangesTitle": "No schedule change requests",
|
||||||
|
"noChangesDescription": "No schedule change requests have been submitted yet.",
|
||||||
|
"conflictDetection": "Conflict Detection",
|
||||||
|
"conflictDetectionDescription": "Detect time overlaps in existing class schedules.",
|
||||||
|
"noClassesTitle": "No available classes",
|
||||||
|
"noClassesDescription": "Please create classes before running conflict detection.",
|
||||||
|
"scheduleGrid": "Schedule Grid",
|
||||||
|
"scheduleGridDescription": "View current schedule distribution by class."
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -130,6 +130,129 @@
|
|||||||
"selectSchool": "Select a school",
|
"selectSchool": "Select a school",
|
||||||
"success": "Successfully promoted {count} grades",
|
"success": "Successfully promoted {count} grades",
|
||||||
"failed": "Promotion failed"
|
"failed": "Promotion failed"
|
||||||
|
},
|
||||||
|
"gradeInsights": {
|
||||||
|
"title": "Grade Insights",
|
||||||
|
"description": "Grade-level homework statistics and class rankings.",
|
||||||
|
"manageGrades": "Manage Grades",
|
||||||
|
"selectGrade": "All Grades",
|
||||||
|
"selectToView": "Select a grade to view insights",
|
||||||
|
"selectToViewDescription": "Pick a grade to see latest homework and historical score statistics.",
|
||||||
|
"notFound": "Grade not found",
|
||||||
|
"notFoundDescription": "This grade may not exist or has no accessible data.",
|
||||||
|
"noData": "No homework data for this grade",
|
||||||
|
"noDataDescription": "No homework assignments were targeted to students in this grade yet.",
|
||||||
|
"classes": "Classes",
|
||||||
|
"students": "Students",
|
||||||
|
"overallAvg": "Overall Avg",
|
||||||
|
"latestAvg": "Latest Avg",
|
||||||
|
"homeworkTimeline": "Homework timeline",
|
||||||
|
"classRanking": "Class ranking",
|
||||||
|
"assignment": "Assignment",
|
||||||
|
"status": "Status",
|
||||||
|
"created": "Created",
|
||||||
|
"targeted": "Targeted",
|
||||||
|
"submitted": "Submitted",
|
||||||
|
"graded": "Graded",
|
||||||
|
"avg": "Avg",
|
||||||
|
"median": "Median",
|
||||||
|
"class": "Class",
|
||||||
|
"latestAvgCol": "Latest Avg",
|
||||||
|
"prevAvg": "Prev Avg",
|
||||||
|
"delta": "Δ",
|
||||||
|
"overallAvgCol": "Overall Avg",
|
||||||
|
"active": "Active",
|
||||||
|
"inactive": "Inactive"
|
||||||
|
},
|
||||||
|
"gradeOverview": {
|
||||||
|
"title": "Grade Overview",
|
||||||
|
"classCount": "Classes",
|
||||||
|
"studentCount": "Students",
|
||||||
|
"teacherCount": "Teachers",
|
||||||
|
"avgScore": "Avg Score",
|
||||||
|
"passRate": "Pass Rate",
|
||||||
|
"noGrades": "No grades",
|
||||||
|
"noGradesDescription": "Create a grade to manage heads and classes.",
|
||||||
|
"viewInsights": "View Insights",
|
||||||
|
"manageClasses": "Manage Classes",
|
||||||
|
"gradeHead": "Grade Head",
|
||||||
|
"teachingHead": "Teaching Head",
|
||||||
|
"notSet": "Not set"
|
||||||
|
},
|
||||||
|
"gradeDashboard": {
|
||||||
|
"title": "Grade Dashboard",
|
||||||
|
"description": "Comprehensive view of grade score distribution, homework completion, exams, and textbook progress.",
|
||||||
|
"selectGrade": "Select grade",
|
||||||
|
"selectToView": "Select a grade to view dashboard",
|
||||||
|
"selectToViewDescription": "Choose a grade to view score distribution, homework, exams, and textbook progress.",
|
||||||
|
"noData": "No data",
|
||||||
|
"noDataDescription": "No relevant data for this grade yet.",
|
||||||
|
"tabs": {
|
||||||
|
"distribution": "Score Distribution",
|
||||||
|
"homework": "Homework",
|
||||||
|
"exams": "Exams",
|
||||||
|
"progress": "Textbook Progress"
|
||||||
|
},
|
||||||
|
"distribution": {
|
||||||
|
"overallStats": "Overall Stats",
|
||||||
|
"byClass": "By Class",
|
||||||
|
"totalRecords": "Total Records",
|
||||||
|
"averageScore": "Average",
|
||||||
|
"passRate": "Pass Rate",
|
||||||
|
"excellentRate": "Excellent Rate",
|
||||||
|
"scoreBuckets": "Score Buckets",
|
||||||
|
"students": "Students",
|
||||||
|
"class": "Class",
|
||||||
|
"count": "Count",
|
||||||
|
"bucket90": "90-100",
|
||||||
|
"bucket80": "80-89",
|
||||||
|
"bucket70": "70-79",
|
||||||
|
"bucket60": "60-69",
|
||||||
|
"bucketBelow60": "0-59"
|
||||||
|
},
|
||||||
|
"homework": {
|
||||||
|
"totalAssignments": "Total Assignments",
|
||||||
|
"totalSubmissions": "Total Submissions",
|
||||||
|
"avgSubmissionRate": "Avg Submission Rate",
|
||||||
|
"gradedRate": "Graded Rate",
|
||||||
|
"assignmentList": "Assignment List",
|
||||||
|
"classComparison": "Class Comparison",
|
||||||
|
"completionRate": "Completion Rate",
|
||||||
|
"submitted": "Submitted",
|
||||||
|
"graded": "Graded",
|
||||||
|
"targeted": "Targeted"
|
||||||
|
},
|
||||||
|
"exams": {
|
||||||
|
"totalExams": "Total Exams",
|
||||||
|
"published": "Published",
|
||||||
|
"draft": "Draft",
|
||||||
|
"totalSubmissions": "Total Submissions",
|
||||||
|
"gradedRate": "Graded Rate",
|
||||||
|
"examList": "Exam List",
|
||||||
|
"subject": "Subject",
|
||||||
|
"status": "Status",
|
||||||
|
"scheduledAt": "Scheduled At",
|
||||||
|
"submissions": "Submissions",
|
||||||
|
"graded": "Graded",
|
||||||
|
"avgScore": "Avg Score",
|
||||||
|
"createdAt": "Created At"
|
||||||
|
},
|
||||||
|
"progress": {
|
||||||
|
"overallProgress": "Overall Progress",
|
||||||
|
"totalPlans": "Total Plans",
|
||||||
|
"totalHours": "Total Hours",
|
||||||
|
"completedHours": "Completed Hours",
|
||||||
|
"activePlans": "Active",
|
||||||
|
"completedPlans": "Completed",
|
||||||
|
"progressMatrix": "Progress Matrix",
|
||||||
|
"class": "Class",
|
||||||
|
"subject": "Subject",
|
||||||
|
"teacher": "Teacher",
|
||||||
|
"progress": "Progress",
|
||||||
|
"completedHoursCol": "Completed/Total Hours",
|
||||||
|
"items": "Items",
|
||||||
|
"status": "Status"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"departments": {
|
"departments": {
|
||||||
|
|||||||
@@ -217,6 +217,16 @@
|
|||||||
"apiKeyPlaceholder": "Paste new key to replace",
|
"apiKeyPlaceholder": "Paste new key to replace",
|
||||||
"apiKeyDesc": "Existing key won't be displayed. Leave blank to keep current.",
|
"apiKeyDesc": "Existing key won't be displayed. Leave blank to keep current.",
|
||||||
"setDefault": "Set as default",
|
"setDefault": "Set as default",
|
||||||
|
"visibility": "Visibility",
|
||||||
|
"visibilityDesc": "Public providers are published by admins and available to everyone; private providers are only visible to the creator.",
|
||||||
|
"visibilityPublic": "Public",
|
||||||
|
"visibilityPrivate": "Private",
|
||||||
|
"visibilityPublicLabel": "Public (available to everyone)",
|
||||||
|
"visibilityPrivateLabel": "Private (only visible to you)",
|
||||||
|
"visibilityReadOnly": "Only admins can change visibility",
|
||||||
|
"badgePublic": "Public",
|
||||||
|
"badgePrivate": "Private",
|
||||||
|
"badgeOwner": "Mine",
|
||||||
"test": "Test",
|
"test": "Test",
|
||||||
"testing": "Testing...",
|
"testing": "Testing...",
|
||||||
"save": "Save Changes",
|
"save": "Save Changes",
|
||||||
|
|||||||
105
src/shared/i18n/messages/en/student.json
Normal file
105
src/shared/i18n/messages/en/student.json
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"schedule": {
|
||||||
|
"title": "My Schedule",
|
||||||
|
"description": "View your weekly timetable.",
|
||||||
|
"noUser": "No user found",
|
||||||
|
"noUserDesc": "Create a student user to see schedule."
|
||||||
|
},
|
||||||
|
"courses": {
|
||||||
|
"title": "My Courses",
|
||||||
|
"description": "View your enrolled classes.",
|
||||||
|
"noUser": "No user found",
|
||||||
|
"noUserDesc": "Create a student user to see courses."
|
||||||
|
},
|
||||||
|
"scheduleView": {
|
||||||
|
"noSchedule": "No schedule",
|
||||||
|
"noScheduleDesc": "No timetable entries found for your enrolled classes.",
|
||||||
|
"today": "Today",
|
||||||
|
"noClasses": "No classes."
|
||||||
|
},
|
||||||
|
"scheduleFilters": {
|
||||||
|
"allClasses": "All classes",
|
||||||
|
"selectClass": "Select class"
|
||||||
|
},
|
||||||
|
"coursesView": {
|
||||||
|
"active": "Active",
|
||||||
|
"details": "Details",
|
||||||
|
"schedule": "Schedule",
|
||||||
|
"assignments": "Assignments",
|
||||||
|
"noCourses": "No courses yet",
|
||||||
|
"noCoursesDesc": "You are not enrolled in any classes. Join a class below to get started.",
|
||||||
|
"joinClass": "Join a Class",
|
||||||
|
"joinClassDesc": "Enter the invitation code provided by your teacher to enroll.",
|
||||||
|
"invitationCode": "Invitation Code",
|
||||||
|
"invitationCodePlaceholder": "Enter 6-digit code",
|
||||||
|
"joining": "Joining...",
|
||||||
|
"joinButton": "Join Class",
|
||||||
|
"joinedSuccess": "Joined class",
|
||||||
|
"joinFailed": "Failed to join class",
|
||||||
|
"grade": "Grade {grade}",
|
||||||
|
"room": "Room {room}"
|
||||||
|
},
|
||||||
|
"courseFilters": {
|
||||||
|
"searchPlaceholder": "Search by class name, teacher, school..."
|
||||||
|
},
|
||||||
|
"learning": {
|
||||||
|
"title": "My Learning",
|
||||||
|
"description": "Your learning hub: courses, assignments, and textbooks.",
|
||||||
|
"noUser": "No user found",
|
||||||
|
"noUserDesc": "Create a student user to see learning.",
|
||||||
|
"courses": "Courses",
|
||||||
|
"coursesDesc": "Your enrolled classes.",
|
||||||
|
"enrolled": "{count} enrolled",
|
||||||
|
"assignments": "Assignments",
|
||||||
|
"assignmentsDesc": "Homework and practice.",
|
||||||
|
"pending": "{count} pending",
|
||||||
|
"dueSoon": " · {count} due soon",
|
||||||
|
"textbooks": "Textbooks",
|
||||||
|
"textbooksDesc": "Browse course materials.",
|
||||||
|
"available": "{count} available"
|
||||||
|
},
|
||||||
|
"errorBook": {
|
||||||
|
"title": "Error Book",
|
||||||
|
"description": "Automatically collect wrong answers from exams and homework, review scientifically, and overcome weak points."
|
||||||
|
},
|
||||||
|
"diagnostic": {
|
||||||
|
"title": "My Diagnostic",
|
||||||
|
"description": "Your knowledge point mastery analysis and diagnostic reports."
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "Something went wrong",
|
||||||
|
"description": "An unexpected error occurred. Please try again.",
|
||||||
|
"retry": "Try again"
|
||||||
|
},
|
||||||
|
"classDetail": {
|
||||||
|
"backToCourses": "Back to Courses",
|
||||||
|
"grade": "Grade {grade}",
|
||||||
|
"room": "Room {room}",
|
||||||
|
"active": "Active",
|
||||||
|
"fullSchedule": "Full Schedule",
|
||||||
|
"assignments": "Assignments",
|
||||||
|
"teacher": "Teacher",
|
||||||
|
"noTeacher": "No teacher assigned.",
|
||||||
|
"school": "School",
|
||||||
|
"schoolNotAvailable": "School info not available.",
|
||||||
|
"classroom": "Classroom",
|
||||||
|
"roomNotAssigned": "Room not assigned.",
|
||||||
|
"homeroom": "Homeroom: {homeroom}",
|
||||||
|
"classSchedule": "Class Schedule",
|
||||||
|
"noSchedule": "No schedule",
|
||||||
|
"noScheduleDesc": "No timetable entries found for this class."
|
||||||
|
},
|
||||||
|
"weekdays": {
|
||||||
|
"mon": "Mon",
|
||||||
|
"tue": "Tue",
|
||||||
|
"wed": "Wed",
|
||||||
|
"thu": "Thu",
|
||||||
|
"fri": "Fri",
|
||||||
|
"sat": "Sat",
|
||||||
|
"sun": "Sun"
|
||||||
|
},
|
||||||
|
"assignment": {
|
||||||
|
"due": "Due: {date}",
|
||||||
|
"maxAttempts": "Max Attempts: {count}"
|
||||||
|
}
|
||||||
|
}
|
||||||
44
src/shared/i18n/messages/en/users.json
Normal file
44
src/shared/i18n/messages/en/users.json
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"title": "User Management",
|
||||||
|
"description": "Manage all system users.",
|
||||||
|
"import": {
|
||||||
|
"title": "Batch Import Users",
|
||||||
|
"description": "Batch create user accounts via Excel file.",
|
||||||
|
"back": "Back",
|
||||||
|
"subtitle": "Batch create user accounts and automatically assign students to classes.",
|
||||||
|
"instructionsTitle": "Import Guide",
|
||||||
|
"instructionsDescription": "Steps to batch import users via Excel",
|
||||||
|
"step1": "Click the 'Batch Import Users' button to download the import template.",
|
||||||
|
"step2": "Fill in user information (name, email, role, phone, class invite code) following the template format.",
|
||||||
|
"step3": "Upload the completed Excel file. The system will parse and preview the data.",
|
||||||
|
"step4": "Confirm the preview data is correct, then click 'Confirm Import' to complete batch creation.",
|
||||||
|
"notesTitle": "Important Notes",
|
||||||
|
"notesDescription": "Please read carefully before importing",
|
||||||
|
"note1": "Default password is set for all users. Please remind users to change it after first login.",
|
||||||
|
"note2": "Email must be unique. Duplicate emails will be skipped and recorded in the error report.",
|
||||||
|
"note3": "Available roles: admin / teacher / student / parent / grade_head / teaching_head.",
|
||||||
|
"note4": "Class invite code is only valid for student role. Students will be automatically added to the corresponding class.",
|
||||||
|
"note5": "Maximum file size is 10MB. Recommended no more than 500 records per import.",
|
||||||
|
"note6": "After import, the success count, failure count, and detailed error information will be displayed.",
|
||||||
|
"templateTitle": "Template Field Guide",
|
||||||
|
"templateDescription": "Excel template column meanings and requirements",
|
||||||
|
"columnName": "Column Name",
|
||||||
|
"columnRequired": "Required",
|
||||||
|
"columnDescription": "Description",
|
||||||
|
"fieldName": "Name",
|
||||||
|
"fieldNameRequired": "Required",
|
||||||
|
"fieldNameDescription": "User name",
|
||||||
|
"fieldEmail": "Email",
|
||||||
|
"fieldEmailRequired": "Required",
|
||||||
|
"fieldEmailDescription": "Login account, must be valid email format and unique",
|
||||||
|
"fieldRole": "Role",
|
||||||
|
"fieldRoleRequired": "Required",
|
||||||
|
"fieldRoleDescription": "admin / teacher / student / parent / grade_head / teaching_head",
|
||||||
|
"fieldPhone": "Phone",
|
||||||
|
"fieldPhoneRequired": "Optional",
|
||||||
|
"fieldPhoneDescription": "Contact phone number",
|
||||||
|
"fieldInviteCode": "Class Invite Code",
|
||||||
|
"fieldInviteCodeRequired": "Optional",
|
||||||
|
"fieldInviteCodeDescription": "Only valid for student role, 6-digit invite code"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -142,7 +142,13 @@
|
|||||||
"callsToday": "今日调用",
|
"callsToday": "今日调用",
|
||||||
"callsThisWeek": "本周调用",
|
"callsThisWeek": "本周调用",
|
||||||
"errorRate": "错误率",
|
"errorRate": "错误率",
|
||||||
"avgDuration": "平均耗时"
|
"avgDuration": "平均耗时",
|
||||||
|
"settings": {
|
||||||
|
"title": "AI 配置",
|
||||||
|
"description": "统一管理 AI 服务商、API 密钥与使用统计。",
|
||||||
|
"descriptionAdmin": "统一管理 AI 服务商、API 密钥与使用统计(管理员视图)。",
|
||||||
|
"descriptionUser": "管理你的 AI 服务商与 API 密钥。"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"studyPath": {
|
"studyPath": {
|
||||||
"title": "你的学习路径",
|
"title": "你的学习路径",
|
||||||
@@ -160,7 +166,18 @@
|
|||||||
"title": "AI 助手",
|
"title": "AI 助手",
|
||||||
"open": "打开 AI 助手",
|
"open": "打开 AI 助手",
|
||||||
"close": "关闭",
|
"close": "关闭",
|
||||||
"contextAware": "上下文感知"
|
"contextAware": "上下文感知",
|
||||||
|
"dragHint": "拖动移动 · 长按边缘隐藏",
|
||||||
|
"hidden": "已隐藏",
|
||||||
|
"show": "显示",
|
||||||
|
"hide": "隐藏",
|
||||||
|
"resetPosition": "重置位置",
|
||||||
|
"welcome": "你好,我是 AI 助手",
|
||||||
|
"welcomeDesc": "有什么可以帮你的吗?",
|
||||||
|
"newChat": "新对话",
|
||||||
|
"history": "历史记录",
|
||||||
|
"online": "在线",
|
||||||
|
"tokens": "{count} 字"
|
||||||
},
|
},
|
||||||
"safety": {
|
"safety": {
|
||||||
"blocked": "您的消息被安全过滤器拦截,请保持教育性对话。",
|
"blocked": "您的消息被安全过滤器拦截,请保持教育性对话。",
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
"record": "录入考勤",
|
"record": "录入考勤",
|
||||||
"stats": "统计分析",
|
"stats": "统计分析",
|
||||||
"save": "保存",
|
"save": "保存",
|
||||||
|
"retry": "重试",
|
||||||
"delete": "删除",
|
"delete": "删除",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"markAllPresent": "全部标记到场"
|
"markAllPresent": "全部标记到场"
|
||||||
|
|||||||
12
src/shared/i18n/messages/zh-CN/audit.json
Normal file
12
src/shared/i18n/messages/zh-CN/audit.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"title": "审计日志",
|
||||||
|
"description": "追踪系统内所有用户操作,保障安全与合规。",
|
||||||
|
"loginLogs": {
|
||||||
|
"title": "登录日志",
|
||||||
|
"description": "监控所有认证事件,包括登录、登出与注册。"
|
||||||
|
},
|
||||||
|
"dataChanges": {
|
||||||
|
"title": "数据变更日志",
|
||||||
|
"description": "追踪系统所有数据变更(增删改),保障合规。"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -49,5 +49,23 @@
|
|||||||
"next": "下一页",
|
"next": "下一页",
|
||||||
"page": "第 {page} 页",
|
"page": "第 {page} 页",
|
||||||
"total": "共 {total} 条"
|
"total": "共 {total} 条"
|
||||||
|
},
|
||||||
|
"accessDenied": "访问被拒绝",
|
||||||
|
"accessDeniedDesc": "该资源对您的账号不可用。",
|
||||||
|
"somethingWentWrong": "出了点问题",
|
||||||
|
"tryAgain": "重试",
|
||||||
|
"user": {
|
||||||
|
"loading": "加载中...",
|
||||||
|
"notLoggedIn": "未登录",
|
||||||
|
"profile": "个人资料",
|
||||||
|
"settings": "设置",
|
||||||
|
"logout": "退出登录"
|
||||||
|
},
|
||||||
|
"sidebar": {
|
||||||
|
"collapse": "收起",
|
||||||
|
"toggleSidebar": "切换侧边栏"
|
||||||
|
},
|
||||||
|
"breadcrumb": {
|
||||||
|
"home": "首页"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
src/shared/i18n/messages/zh-CN/course-plans.json
Normal file
16
src/shared/i18n/messages/zh-CN/course-plans.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"title": "课程计划",
|
||||||
|
"description": "管理课程教学计划与周课时安排。",
|
||||||
|
"detail": {
|
||||||
|
"title": "课程计划详情",
|
||||||
|
"description": "查看课程计划详情。"
|
||||||
|
},
|
||||||
|
"edit": {
|
||||||
|
"title": "编辑课程计划",
|
||||||
|
"description": "更新课程计划详情。"
|
||||||
|
},
|
||||||
|
"create": {
|
||||||
|
"title": "新建课程计划",
|
||||||
|
"description": "创建新的课程教学计划。"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -185,5 +185,20 @@
|
|||||||
"noWeaknesses": "暂无弱项知识点。",
|
"noWeaknesses": "暂无弱项知识点。",
|
||||||
"reportMeta": "周期:{period} · 总体:{score}%",
|
"reportMeta": "周期:{period} · 总体:{score}%",
|
||||||
"historyReportMeta": "{date} · 总体:{score}%"
|
"historyReportMeta": "{date} · 总体:{score}%"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"title": "子女学情诊断",
|
||||||
|
"description": "查看子女的知识点掌握度与诊断报告。",
|
||||||
|
"noChildren": "暂无子女关联",
|
||||||
|
"noChildrenDesc": "您的账号尚未关联子女,请联系学校管理员进行关联。",
|
||||||
|
"selectChild": "选择子女",
|
||||||
|
"selectChildPlaceholder": "请选择要查看学情诊断的子女",
|
||||||
|
"overallMastery": "总体掌握度",
|
||||||
|
"knowledgePoints": "知识点",
|
||||||
|
"strengths": "强项",
|
||||||
|
"weaknesses": "弱项",
|
||||||
|
"reports": "诊断报告",
|
||||||
|
"noReports": "该子女暂无诊断报告。",
|
||||||
|
"mastery": "掌握度"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,8 @@
|
|||||||
"select": "选课",
|
"select": "选课",
|
||||||
"drop": "退课",
|
"drop": "退课",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"save": "保存"
|
"save": "保存",
|
||||||
|
"retry": "重试"
|
||||||
},
|
},
|
||||||
"list": {
|
"list": {
|
||||||
"empty": "暂无选修课程",
|
"empty": "暂无选修课程",
|
||||||
|
|||||||
@@ -76,11 +76,33 @@
|
|||||||
"parent": {
|
"parent": {
|
||||||
"title": "子女错题本",
|
"title": "子女错题本",
|
||||||
"description": "查看子女的错题情况与学习进度",
|
"description": "查看子女的错题情况与学习进度",
|
||||||
"noChild": "暂无子女关联"
|
"noChild": "暂无子女关联",
|
||||||
|
"noChildDesc": "您的账号尚未关联子女,请联系学校管理员进行关联。",
|
||||||
|
"unknown": "未知",
|
||||||
|
"totalErrors": "错题总数",
|
||||||
|
"dueReview": "待复习",
|
||||||
|
"newItems": "待学习",
|
||||||
|
"mastered": "已掌握",
|
||||||
|
"mastery": "{rate}% 掌握",
|
||||||
|
"weakPoints": "薄弱知识点",
|
||||||
|
"errorsAndMastery": "{count} 错 · {rate}% 掌握"
|
||||||
},
|
},
|
||||||
"admin": {
|
"admin": {
|
||||||
"title": "全校错题分析",
|
"title": "全校错题分析",
|
||||||
"description": "全校错题统计与薄弱知识点分析,辅助教学决策"
|
"description": "全校错题统计与薄弱知识点分析,辅助教学决策",
|
||||||
|
"description2": "按学科查看全校学生的错题统计与薄弱知识点。",
|
||||||
|
"noPermissionTitle": "权限不足",
|
||||||
|
"noPermissionDescription": "您没有权限查看全校错题分析数据。",
|
||||||
|
"noStudentsTitle": "暂无学生数据",
|
||||||
|
"noStudentsDescription": "系统中还没有学生用户,无法查看错题分析。",
|
||||||
|
"topStudents": "错题最多的学生 Top 50",
|
||||||
|
"studentsWithErrors": "共 {count} 名学生有错题",
|
||||||
|
"noChapterDataTitle": "暂无章节错题数据",
|
||||||
|
"noChapterDataDescription": "尚未关联知识点到章节,无法显示章节维度统计。",
|
||||||
|
"noKnowledgePointDataTitle": "暂无知识点数据",
|
||||||
|
"noKnowledgePointDataDescription": "错题尚未关联知识点,无法显示薄弱知识点统计。",
|
||||||
|
"noStudentErrorsTitle": "暂无学生错题",
|
||||||
|
"noStudentErrorsDescription": "所选学科下没有学生错题数据。"
|
||||||
},
|
},
|
||||||
"messages": {
|
"messages": {
|
||||||
"added": "错题已添加",
|
"added": "错题已添加",
|
||||||
|
|||||||
@@ -131,8 +131,9 @@
|
|||||||
"description": "管理作业,查看提交率与批改进度。",
|
"description": "管理作业,查看提交率与批改进度。",
|
||||||
"create": "创建作业",
|
"create": "创建作业",
|
||||||
"empty": "暂无作业",
|
"empty": "暂无作业",
|
||||||
"emptyFiltered": "该班级还没有作业。",
|
"emptyFiltered": "没有匹配筛选条件的作业",
|
||||||
"emptyDescription": "您还没有创建任何作业。",
|
"emptyDescription": "您还没有创建任何作业。",
|
||||||
|
"emptyFilteredDescription": "尝试清除筛选条件或调整关键词。",
|
||||||
"clearFilters": "清除筛选",
|
"clearFilters": "清除筛选",
|
||||||
"filterByClass": "按班级筛选:{{className}}",
|
"filterByClass": "按班级筛选:{{className}}",
|
||||||
"columns": {
|
"columns": {
|
||||||
|
|||||||
4
src/shared/i18n/messages/zh-CN/files.json
Normal file
4
src/shared/i18n/messages/zh-CN/files.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"title": "文件管理",
|
||||||
|
"description": "查看与管理系统中所有上传文件。"
|
||||||
|
}
|
||||||
@@ -229,6 +229,41 @@
|
|||||||
"dismissAriaLabel": "关闭录入指引"
|
"dismissAriaLabel": "关闭录入指引"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"batchByExam": {
|
||||||
|
"title": "按试卷录入成绩",
|
||||||
|
"selectExam": "选择试卷",
|
||||||
|
"selectExamPlaceholder": "请选择试卷",
|
||||||
|
"selectClass": "选择班级",
|
||||||
|
"selectClassPlaceholder": "请选择班级",
|
||||||
|
"selectClassFirst": "请选择班级以开始录入",
|
||||||
|
"guideSelectExam": "请从试卷库选择一份试卷,系统将自动带出题目列表和满分。录入时按每题得分填写,总分自动计算。",
|
||||||
|
"questionCount": "共 {count} 题",
|
||||||
|
"fullScore": "满分 {score} 分",
|
||||||
|
"question": "第{n}题",
|
||||||
|
"points": "分",
|
||||||
|
"totalScore": "总分",
|
||||||
|
"studentName": "学生姓名",
|
||||||
|
"entered": "已录入",
|
||||||
|
"average": "均分",
|
||||||
|
"max": "最高",
|
||||||
|
"min": "最低",
|
||||||
|
"searchStudent": "搜索学生...",
|
||||||
|
"noStudents": "该班级暂无学生",
|
||||||
|
"invalidScoresBadge": "存在无效分数",
|
||||||
|
"invalidScoresError": "存在无效分数(超过满分或格式错误),请检查后重试",
|
||||||
|
"enterAtLeastOne": "请至少输入一个分数",
|
||||||
|
"pasteApplied": "已粘贴 {count} 行数据",
|
||||||
|
"pasteHint": "提示:可从 Excel 复制多行多列分数,粘贴到表格中批量填充。按 Enter 跳到下一行,Tab 跳到下一格。",
|
||||||
|
"confirmSwitchExam": "切换试卷将清空已录入的分数,确认切换?",
|
||||||
|
"confirmSwitchClass": "切换班级将清空已录入的分数,确认切换?",
|
||||||
|
"saveAll": "保存全部成绩",
|
||||||
|
"saving": "保存中...",
|
||||||
|
"clear": "清空",
|
||||||
|
"undo": "撤销",
|
||||||
|
"undoNoRecord": "无可撤销的录入记录",
|
||||||
|
"undoExpired": "撤销已过期(超过 5 分钟)",
|
||||||
|
"undoFailed": "撤销失败,请重试"
|
||||||
|
},
|
||||||
"trend": {
|
"trend": {
|
||||||
"title": "成绩趋势",
|
"title": "成绩趋势",
|
||||||
"empty": "暂无成绩记录",
|
"empty": "暂无成绩记录",
|
||||||
@@ -249,7 +284,8 @@
|
|||||||
"noGradesTitle": "暂无成绩",
|
"noGradesTitle": "暂无成绩",
|
||||||
"noGradesDescription": "该学生暂无成绩记录。",
|
"noGradesDescription": "该学生暂无成绩记录。",
|
||||||
"noDataTitle": "暂无数据",
|
"noDataTitle": "暂无数据",
|
||||||
"noDataDescription": "学生成绩摘要不可用。"
|
"noDataDescription": "学生成绩摘要不可用。",
|
||||||
|
"recordCount": "{count} 条成绩记录"
|
||||||
},
|
},
|
||||||
"empty": {
|
"empty": {
|
||||||
"noRecords": "暂无成绩记录",
|
"noRecords": "暂无成绩记录",
|
||||||
@@ -344,11 +380,37 @@
|
|||||||
"ariaLabelNonEmpty": "排名趋势图:共 {count} 次排名记录"
|
"ariaLabelNonEmpty": "排名趋势图:共 {count} 次排名记录"
|
||||||
},
|
},
|
||||||
"classReport": {
|
"classReport": {
|
||||||
|
"caption": "班级排名表",
|
||||||
"noDataTitle": "暂无数据",
|
"noDataTitle": "暂无数据",
|
||||||
"noDataDescription": "该班级暂无成绩记录。",
|
"noDataDescription": "该班级暂无成绩记录。",
|
||||||
"classRanking": "班级排名",
|
"classRanking": "班级排名",
|
||||||
"rankColumn": "排名",
|
"rankColumn": "排名",
|
||||||
"recordsColumn": "记录数",
|
"recordsColumn": "记录数",
|
||||||
"studentCountInfo": "{studentCount} 名学生 · {recordCount} 条成绩记录"
|
"studentCountInfo": "{studentCount} 名学生 · {recordCount} 条成绩记录"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"title": "子女成绩",
|
||||||
|
"description": "查看子女的成绩记录。",
|
||||||
|
"noChildren": "暂无子女关联",
|
||||||
|
"noChildrenDesc": "您的账号尚未关联子女,请联系学校管理员进行关联。",
|
||||||
|
"selectChild": "选择子女",
|
||||||
|
"selectChildPlaceholder": "请选择要查看成绩的子女",
|
||||||
|
"noGrades": "暂无成绩记录",
|
||||||
|
"noGradesDesc": "该子女暂无成绩记录。",
|
||||||
|
"subject": "科目",
|
||||||
|
"score": "分数",
|
||||||
|
"exam": "考试",
|
||||||
|
"semester": "学期",
|
||||||
|
"teacher": "教师",
|
||||||
|
"date": "日期",
|
||||||
|
"average": "平均分",
|
||||||
|
"highest": "最高分",
|
||||||
|
"lowest": "最低分",
|
||||||
|
"totalRecords": "总记录数",
|
||||||
|
"gradeHistory": "成绩历史",
|
||||||
|
"gradeSummary": "成绩摘要",
|
||||||
|
"recentGrades": "最近成绩",
|
||||||
|
"viewAll": "查看全部",
|
||||||
|
"noRecentGrades": "暂无最近成绩"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
src/shared/i18n/messages/zh-CN/leave.json
Normal file
12
src/shared/i18n/messages/zh-CN/leave.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"title": "请假申请",
|
||||||
|
"description": "为您的孩子提交请假申请。",
|
||||||
|
"backToDashboard": "返回仪表盘",
|
||||||
|
"onlineLeave": "在线请假申请",
|
||||||
|
"comingSoon": "即将上线",
|
||||||
|
"comingSoonDesc": "在线请假功能正在开发中,即将上线。目前请直接联系班主任或学校办公室。",
|
||||||
|
"contactOptions": "联系方式",
|
||||||
|
"callOffice": "在工作时间致电学校办公室",
|
||||||
|
"sendMessage": "通过消息页面向班主任发送消息",
|
||||||
|
"goToMessages": "前往消息"
|
||||||
|
}
|
||||||
@@ -21,6 +21,12 @@
|
|||||||
"confirm": "确认",
|
"confirm": "确认",
|
||||||
"create": "创建课案",
|
"create": "创建课案",
|
||||||
"publish": "发布为作业",
|
"publish": "发布为作业",
|
||||||
|
"publishPlan": "发布课案",
|
||||||
|
"unpublishPlan": "撤回发布",
|
||||||
|
"publishPlanConfirm": "发布后学生和家长将可查看此课案,确认发布?",
|
||||||
|
"unpublishPlanConfirm": "撤回后学生和家长将无法查看此课案,确认撤回?",
|
||||||
|
"publishPlanSuccess": "课案已发布",
|
||||||
|
"unpublishPlanSuccess": "课案已撤回",
|
||||||
"viewHomework": "查看"
|
"viewHomework": "查看"
|
||||||
},
|
},
|
||||||
"status": {
|
"status": {
|
||||||
@@ -57,6 +63,10 @@
|
|||||||
"titlePlaceholder": "例如:《秋天》第一课时",
|
"titlePlaceholder": "例如:《秋天》第一课时",
|
||||||
"blockCount": "{count} 个环节",
|
"blockCount": "{count} 个环节",
|
||||||
"blankHint": "从空白开始",
|
"blankHint": "从空白开始",
|
||||||
|
"systemSection": "系统模板",
|
||||||
|
"personalSection": "个人模板",
|
||||||
|
"personalBadge": "个人",
|
||||||
|
"noPersonalTemplates": "暂无个人模板,可在编辑器中「另存为模板」创建",
|
||||||
"names": {
|
"names": {
|
||||||
"tpl_regular": "常规课",
|
"tpl_regular": "常规课",
|
||||||
"tpl_review": "复习课",
|
"tpl_review": "复习课",
|
||||||
@@ -101,12 +111,51 @@
|
|||||||
"textbookContent": "课文正文",
|
"textbookContent": "课文正文",
|
||||||
"textbookContentMissing": "正文节点缺失",
|
"textbookContentMissing": "正文节点缺失",
|
||||||
"textbookContentEmpty": "(未加载课文内容)",
|
"textbookContentEmpty": "(未加载课文内容)",
|
||||||
|
"textbookOperateHint": "请在画布上直接操作正文:选中文本可创建区间锚点,点击位置可创建点锚点。",
|
||||||
|
"rightClickHint": "右键弹出锚点菜单",
|
||||||
|
"dragToResize": "拖拽缩放",
|
||||||
|
"anchorListTitle": "锚点列表",
|
||||||
|
"anchorListEmpty": "暂无锚点。选中正文文本即可创建。",
|
||||||
|
"anchorRangeLabel": "区间",
|
||||||
|
"anchorPointLabel": "点",
|
||||||
"zoomIn": "放大",
|
"zoomIn": "放大",
|
||||||
"zoomOut": "缩小",
|
"zoomOut": "缩小",
|
||||||
"rangeAnchorTitle": "为选中文本关联节点",
|
"rangeAnchorTitle": "为选中文本关联节点",
|
||||||
"pointAnchorTitle": "在此位置插入占位符 {number}",
|
"pointAnchorTitle": "在此位置插入占位符 {number}",
|
||||||
"anchorToSelectedNode": "关联到当前选中节点",
|
"anchorToSelectedNode": "关联到当前选中节点",
|
||||||
"anchorToNewNode": "关联到新节点"
|
"anchorToNewNode": "关联到新节点",
|
||||||
|
"textbookLabel": "教材",
|
||||||
|
"chapterLabel": "课文",
|
||||||
|
"selectNodeForAnchor": "选择要关联的节点",
|
||||||
|
"createNewNode": "创建新节点并关联"
|
||||||
|
},
|
||||||
|
"readonly": {
|
||||||
|
"title": "查看课案",
|
||||||
|
"hint": "这是只读视图,您无法编辑此课案",
|
||||||
|
"notFound": "课案不存在或未发布",
|
||||||
|
"notPublished": "课案尚未发布"
|
||||||
|
},
|
||||||
|
"student": {
|
||||||
|
"title": "我的课案",
|
||||||
|
"description": "查看老师发布的备课内容"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"title": "孩子课案",
|
||||||
|
"description": "查看孩子老师发布的备课内容"
|
||||||
|
},
|
||||||
|
"admin": {
|
||||||
|
"title": "课案管理",
|
||||||
|
"description": "查看全校教师的备课情况",
|
||||||
|
"stats": {
|
||||||
|
"total": "课案总数",
|
||||||
|
"published": "已发布",
|
||||||
|
"draft": "草稿",
|
||||||
|
"archived": "已归档"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gradeHead": {
|
||||||
|
"title": "年级备课",
|
||||||
|
"description": "查看本年级教师的备课"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"textbookLabel": "选择教材",
|
"textbookLabel": "选择教材",
|
||||||
@@ -133,7 +182,10 @@
|
|||||||
"noChapter": "无章节",
|
"noChapter": "无章节",
|
||||||
"noTemplate": "无模板",
|
"noTemplate": "无模板",
|
||||||
"lastSaved": "最后保存:",
|
"lastSaved": "最后保存:",
|
||||||
"neverSaved": "未保存"
|
"neverSaved": "未保存",
|
||||||
|
"versionCount": "{count} 个版本",
|
||||||
|
"versionSelectorLabel": "版本",
|
||||||
|
"versionCurrent": "最新"
|
||||||
},
|
},
|
||||||
"version": {
|
"version": {
|
||||||
"title": "版本历史",
|
"title": "版本历史",
|
||||||
@@ -145,7 +197,8 @@
|
|||||||
"revertTitle": "确认回退",
|
"revertTitle": "确认回退",
|
||||||
"revertConfirm": "确认回退到 v{versionNo}?将生成新版本。",
|
"revertConfirm": "确认回退到 v{versionNo}?将生成新版本。",
|
||||||
"revertSuccess": "已回退到 v{versionNo}",
|
"revertSuccess": "已回退到 v{versionNo}",
|
||||||
"autoLabel": "自动版本"
|
"autoLabel": "自动版本",
|
||||||
|
"revertLabel": "回退到 v{versionNo}"
|
||||||
},
|
},
|
||||||
"knowledgePoint": {
|
"knowledgePoint": {
|
||||||
"title": "选择知识点",
|
"title": "选择知识点",
|
||||||
@@ -212,7 +265,9 @@
|
|||||||
"noExerciseBlock": "练习块不存在",
|
"noExerciseBlock": "练习块不存在",
|
||||||
"noQuestions": "练习块无题目",
|
"noQuestions": "练习块无题目",
|
||||||
"planNotFound": "课案不存在",
|
"planNotFound": "课案不存在",
|
||||||
"noPermission": "无权发布"
|
"noPermission": "无权发布",
|
||||||
|
"homeworkTitle": "{title} - 作业",
|
||||||
|
"homeworkDescription": "来自课案"
|
||||||
},
|
},
|
||||||
"textStudy": {
|
"textStudy": {
|
||||||
"sourceTextLabel": "课文原文",
|
"sourceTextLabel": "课文原文",
|
||||||
@@ -222,8 +277,86 @@
|
|||||||
"annotationTitle": "教学节点",
|
"annotationTitle": "教学节点",
|
||||||
"annotationNotePlaceholder": "教学说明..."
|
"annotationNotePlaceholder": "教学说明..."
|
||||||
},
|
},
|
||||||
|
"objective": {
|
||||||
|
"hint": "添加教学目标,支持知识与技能、过程与方法、情感态度三个维度",
|
||||||
|
"dimension": {
|
||||||
|
"knowledge": "知识与技能",
|
||||||
|
"process": "过程与方法",
|
||||||
|
"emotion": "情感态度"
|
||||||
|
},
|
||||||
|
"textPlaceholder": "输入教学目标...",
|
||||||
|
"addItem": "+ 添加目标"
|
||||||
|
},
|
||||||
|
"keyPoint": {
|
||||||
|
"hint": "标记本课的重点和难点",
|
||||||
|
"type": {
|
||||||
|
"key": "重点",
|
||||||
|
"difficult": "难点"
|
||||||
|
},
|
||||||
|
"textPlaceholder": "输入重点/难点内容...",
|
||||||
|
"addItem": "+ 添加重点/难点"
|
||||||
|
},
|
||||||
|
"newTeaching": {
|
||||||
|
"hint": "设计新授环节的教学步骤",
|
||||||
|
"pointIndex": "步骤 {index}",
|
||||||
|
"outlineLabel": "教学提纲",
|
||||||
|
"outlinePlaceholder": "输入教学提纲...",
|
||||||
|
"boardNotesLabel": "板书要点",
|
||||||
|
"boardNotesPlaceholder": "输入板书要点...",
|
||||||
|
"addPoint": "+ 添加步骤"
|
||||||
|
},
|
||||||
|
"summary": {
|
||||||
|
"hint": "总结本课要点,帮助学生梳理知识",
|
||||||
|
"pointPlaceholder": "输入小结要点...",
|
||||||
|
"addPoint": "+ 添加要点",
|
||||||
|
"homeworkPreviewLabel": "作业预览",
|
||||||
|
"homeworkPreviewPlaceholder": "简要描述本课作业..."
|
||||||
|
},
|
||||||
|
"homework": {
|
||||||
|
"hint": "布置课后作业",
|
||||||
|
"type": {
|
||||||
|
"exercise": "练习",
|
||||||
|
"reading": "阅读",
|
||||||
|
"writing": "写作"
|
||||||
|
},
|
||||||
|
"refIdPlaceholder": "作业引用 ID(可选)",
|
||||||
|
"descriptionPlaceholder": "输入作业要求...",
|
||||||
|
"addItem": "+ 添加作业"
|
||||||
|
},
|
||||||
|
"blackboard": {
|
||||||
|
"hint": "设计板书结构",
|
||||||
|
"layoutLabel": "板书形式",
|
||||||
|
"layout": {
|
||||||
|
"structure": "结构式",
|
||||||
|
"mindmap": "思维导图",
|
||||||
|
"text": "文字式"
|
||||||
|
},
|
||||||
|
"contentLabel": "板书内容",
|
||||||
|
"contentPlaceholder": "输入板书内容..."
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"hint": "设计课堂导入环节",
|
||||||
|
"methodLabel": "导入方式",
|
||||||
|
"method": {
|
||||||
|
"question": "提问导入",
|
||||||
|
"situation": "情境导入",
|
||||||
|
"review": "复习导入",
|
||||||
|
"other": "其他"
|
||||||
|
},
|
||||||
|
"promptLabel": "导入语",
|
||||||
|
"promptPlaceholder": "输入导入语...",
|
||||||
|
"durationLabel": "预计时长",
|
||||||
|
"durationUnit": "分钟"
|
||||||
|
},
|
||||||
"reflection": {
|
"reflection": {
|
||||||
"hint": "课后填写教学反思..."
|
"hint": "课后填写教学反思...",
|
||||||
|
"aspect": {
|
||||||
|
"effectiveness": "教学效果",
|
||||||
|
"problems": "存在问题",
|
||||||
|
"improvements": "改进措施"
|
||||||
|
},
|
||||||
|
"textPlaceholder": "输入反思内容...",
|
||||||
|
"addItem": "+ 添加反思"
|
||||||
},
|
},
|
||||||
"richText": {
|
"richText": {
|
||||||
"placeholder": "输入内容..."
|
"placeholder": "输入内容..."
|
||||||
@@ -250,7 +383,14 @@
|
|||||||
"createFailed": "创建失败",
|
"createFailed": "创建失败",
|
||||||
"loadFailed": "页面加载失败",
|
"loadFailed": "页面加载失败",
|
||||||
"loadFailedDesc": "抱歉,页面加载时发生了意外错误。请稍后重试。",
|
"loadFailedDesc": "抱歉,页面加载时发生了意外错误。请稍后重试。",
|
||||||
"retry": "重试"
|
"retry": "重试",
|
||||||
|
"invalidQuestionType": "无效的题目类型",
|
||||||
|
"duplicateSuffix": " - 副本",
|
||||||
|
"titleRequired": "请输入课案标题",
|
||||||
|
"titleTooLong": "标题不能超过 255 个字符",
|
||||||
|
"templateRequired": "请选择模板",
|
||||||
|
"invalidDate": "日期格式无效",
|
||||||
|
"classRequired": "至少选择一个班级"
|
||||||
},
|
},
|
||||||
"confirm": {
|
"confirm": {
|
||||||
"archive": "确认归档此课案?",
|
"archive": "确认归档此课案?",
|
||||||
|
|||||||
93
src/shared/i18n/messages/zh-CN/nav.json
Normal file
93
src/shared/i18n/messages/zh-CN/nav.json
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"common": {
|
||||||
|
"announcements": "公告",
|
||||||
|
"messages": "消息",
|
||||||
|
"aiSettings": "AI 配置"
|
||||||
|
},
|
||||||
|
"admin": {
|
||||||
|
"dashboard": "仪表盘",
|
||||||
|
"schoolManagement": "学校管理",
|
||||||
|
"schools": "学校",
|
||||||
|
"grades": "年级",
|
||||||
|
"gradeInsights": "年级洞察",
|
||||||
|
"departments": "部门",
|
||||||
|
"classes": "班级",
|
||||||
|
"academicYear": "学年",
|
||||||
|
"users": "用户",
|
||||||
|
"userList": "用户列表",
|
||||||
|
"importUsers": "导入用户",
|
||||||
|
"teaching": "教学管理",
|
||||||
|
"coursePlans": "课程计划",
|
||||||
|
"electives": "选修课",
|
||||||
|
"scheduling": "排课",
|
||||||
|
"rules": "排课规则",
|
||||||
|
"autoSchedule": "自动排课",
|
||||||
|
"changeRequests": "调课申请",
|
||||||
|
"attendance": "考勤",
|
||||||
|
"announcements": "公告管理",
|
||||||
|
"files": "文件管理",
|
||||||
|
"errorBook": "错题分析",
|
||||||
|
"lessonPlans": "课案管理",
|
||||||
|
"auditLogs": "审计日志",
|
||||||
|
"operationLogs": "操作日志",
|
||||||
|
"loginLogs": "登录日志",
|
||||||
|
"dataChanges": "数据变更",
|
||||||
|
"settings": "设置"
|
||||||
|
},
|
||||||
|
"teacher": {
|
||||||
|
"dashboard": "仪表盘",
|
||||||
|
"textbooks": "教材",
|
||||||
|
"exams": "考试",
|
||||||
|
"allExams": "全部考试",
|
||||||
|
"createExam": "创建考试",
|
||||||
|
"homework": "作业",
|
||||||
|
"homeworkList": "作业列表",
|
||||||
|
"submissions": "提交记录",
|
||||||
|
"grades": "成绩",
|
||||||
|
"allGrades": "全部成绩",
|
||||||
|
"batchEntry": "批量录入",
|
||||||
|
"gradeStats": "成绩统计",
|
||||||
|
"gradeAnalytics": "成绩分析",
|
||||||
|
"questions": "题库",
|
||||||
|
"classManagement": "班级管理",
|
||||||
|
"myClasses": "我的班级",
|
||||||
|
"students": "学生",
|
||||||
|
"schedule": "课表",
|
||||||
|
"coursePlans": "课程计划",
|
||||||
|
"lessonPlans": "我的备课",
|
||||||
|
"attendance": "考勤",
|
||||||
|
"attendanceRecords": "考勤记录",
|
||||||
|
"attendanceEntry": "录入考勤",
|
||||||
|
"attendanceStats": "考勤统计",
|
||||||
|
"scheduleChanges": "调课申请",
|
||||||
|
"diagnostic": "学情诊断",
|
||||||
|
"errorBook": "错题分析",
|
||||||
|
"electives": "选修课",
|
||||||
|
"gradeManagement": "年级管理",
|
||||||
|
"gradeClasses": "年级班级",
|
||||||
|
"gradeDashboard": "年级仪表盘",
|
||||||
|
"gradeInsights": "年级洞察"
|
||||||
|
},
|
||||||
|
"student": {
|
||||||
|
"dashboard": "仪表盘",
|
||||||
|
"myLearning": "我的学习",
|
||||||
|
"courses": "课程",
|
||||||
|
"assignments": "作业",
|
||||||
|
"textbooks": "教材",
|
||||||
|
"schedule": "我的课表",
|
||||||
|
"myGrades": "我的成绩",
|
||||||
|
"lessonPlans": "我的课案",
|
||||||
|
"attendance": "考勤",
|
||||||
|
"diagnostic": "学情诊断",
|
||||||
|
"errorBook": "错题本",
|
||||||
|
"electives": "选修课"
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"dashboard": "仪表盘",
|
||||||
|
"grades": "成绩",
|
||||||
|
"lessonPlans": "孩子课案",
|
||||||
|
"attendance": "考勤",
|
||||||
|
"errorBook": "错题本",
|
||||||
|
"leaveRequest": "请假申请"
|
||||||
|
}
|
||||||
|
}
|
||||||
163
src/shared/i18n/messages/zh-CN/practice.json
Normal file
163
src/shared/i18n/messages/zh-CN/practice.json
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
{
|
||||||
|
"page": {
|
||||||
|
"title": "专项练习",
|
||||||
|
"description": "根据错题、知识点、薄弱章节智能出题,针对性提升。"
|
||||||
|
},
|
||||||
|
"starter": {
|
||||||
|
"title": "发起专项练习",
|
||||||
|
"description": "根据你的学习情况,选择适合的练习模式",
|
||||||
|
"type": "练习类型",
|
||||||
|
"knowledgePoints": "选择知识点",
|
||||||
|
"difficulty": "难度",
|
||||||
|
"anyDifficulty": "不限",
|
||||||
|
"questionCount": "题目数量",
|
||||||
|
"start": "开始练习",
|
||||||
|
"creating": "创建中..."
|
||||||
|
},
|
||||||
|
"session": {
|
||||||
|
"progress": "进度",
|
||||||
|
"previous": "上一题",
|
||||||
|
"next": "下一题",
|
||||||
|
"submit": "提交",
|
||||||
|
"submitting": "提交中...",
|
||||||
|
"skip": "跳过",
|
||||||
|
"complete": "完成练习",
|
||||||
|
"abandon": "放弃练习",
|
||||||
|
"abandonConfirm": "确定要放弃本次练习吗?",
|
||||||
|
"abandonDescription": "放弃后已作答的题目将保留记录,但不会计入完成统计。",
|
||||||
|
"cancel": "取消",
|
||||||
|
"confirmAbandon": "确认放弃",
|
||||||
|
"question": "第",
|
||||||
|
"difficulty": "难度",
|
||||||
|
"variant": "变式题",
|
||||||
|
"correct": "回答正确",
|
||||||
|
"incorrect": "回答错误",
|
||||||
|
"pendingReview": "待教师批阅",
|
||||||
|
"skipped": "已跳过",
|
||||||
|
"yourAnswer": "你的答案",
|
||||||
|
"true": "正确",
|
||||||
|
"false": "错误",
|
||||||
|
"textPlaceholder": "请输入你的答案...",
|
||||||
|
"empty": "本次练习没有题目"
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"title": "练习完成",
|
||||||
|
"answered": "已答题数",
|
||||||
|
"correct": "正确数",
|
||||||
|
"accuracy": "正确率",
|
||||||
|
"review": "逐题回顾"
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"title": "练习记录",
|
||||||
|
"empty": "还没有练习记录,开始你的第一次专项练习吧"
|
||||||
|
},
|
||||||
|
"toasts": {
|
||||||
|
"created": "练习已创建",
|
||||||
|
"createFailed": "创建失败",
|
||||||
|
"selectKnowledgePoint": "请至少选择一个知识点",
|
||||||
|
"selectWeakKnowledgePoint": "请至少选择一个薄弱知识点",
|
||||||
|
"aiRecommendedReason": "学生自主发起 AI 推荐练习",
|
||||||
|
"submitted": "已提交",
|
||||||
|
"submitFailed": "提交失败",
|
||||||
|
"completed": "练习已完成",
|
||||||
|
"completeFailed": "完成失败",
|
||||||
|
"abandoned": "练习已放弃",
|
||||||
|
"abandonFailed": "操作失败"
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"totalSessions": "练习总数",
|
||||||
|
"completed": "已完成",
|
||||||
|
"totalAnswered": "答题总数",
|
||||||
|
"accuracy": "正确率"
|
||||||
|
},
|
||||||
|
"types": {
|
||||||
|
"error_variant": "错题变式",
|
||||||
|
"knowledge_point": "知识点专项",
|
||||||
|
"weak_chapter": "薄弱章节",
|
||||||
|
"ai_recommended": "AI 推荐"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"in_progress": "进行中",
|
||||||
|
"completed": "已完成",
|
||||||
|
"abandoned": "已放弃"
|
||||||
|
},
|
||||||
|
"teacher": {
|
||||||
|
"title": "专项练习分析",
|
||||||
|
"description": "查看班级学生的专项练习情况,识别薄弱知识点,辅助精准教学",
|
||||||
|
"noClass": "暂无可查看的班级",
|
||||||
|
"noClassDescription": "您还未被分配到任何班级,无法查看练习分析数据。",
|
||||||
|
"noStudent": "班级暂无学生",
|
||||||
|
"noStudentDescription": "班级中没有学生,无法查看练习分析数据。",
|
||||||
|
"noData": "暂无练习数据",
|
||||||
|
"noDataDescription": "所选范围内学生尚未开始专项练习。",
|
||||||
|
"overview": {
|
||||||
|
"totalClasses": "覆盖班级",
|
||||||
|
"totalSessions": "练习总数",
|
||||||
|
"totalAnswered": "答题总数",
|
||||||
|
"averageAccuracy": "平均正确率",
|
||||||
|
"participationRate": "参与率"
|
||||||
|
},
|
||||||
|
"classComparison": {
|
||||||
|
"title": "班级练习对比",
|
||||||
|
"className": "班级",
|
||||||
|
"totalStudents": "学生数",
|
||||||
|
"activeStudents": "参与学生",
|
||||||
|
"participationRate": "参与率",
|
||||||
|
"totalSessions": "练习数",
|
||||||
|
"completedSessions": "完成数",
|
||||||
|
"totalAnswered": "答题数",
|
||||||
|
"averageAccuracy": "正确率"
|
||||||
|
},
|
||||||
|
"typeBreakdown": {
|
||||||
|
"title": "练习类型分布",
|
||||||
|
"description": "按练习类型分组的会话数与正确率"
|
||||||
|
},
|
||||||
|
"knowledgePointWeakness": {
|
||||||
|
"title": "知识点薄弱度",
|
||||||
|
"description": "基于练习答题数据识别的薄弱知识点",
|
||||||
|
"knowledgePoint": "知识点",
|
||||||
|
"totalAnswers": "答题数",
|
||||||
|
"wrongAnswers": "错题数",
|
||||||
|
"errorRate": "错误率",
|
||||||
|
"noData": "暂无知识点数据",
|
||||||
|
"noDataDescription": "练习题目尚未关联知识点,无法显示薄弱知识点统计。"
|
||||||
|
},
|
||||||
|
"studentRanking": {
|
||||||
|
"title": "学生练习排名",
|
||||||
|
"description": "按练习数降序排列,识别活跃与待引导学生",
|
||||||
|
"rank": "排名",
|
||||||
|
"student": "学生",
|
||||||
|
"totalSessions": "练习数",
|
||||||
|
"completedSessions": "完成数",
|
||||||
|
"totalAnswered": "答题数",
|
||||||
|
"accuracy": "正确率",
|
||||||
|
"lastPractice": "最近练习"
|
||||||
|
},
|
||||||
|
"inactiveStudents": {
|
||||||
|
"title": "未参与练习学生",
|
||||||
|
"description": "以下学生尚未开始任何专项练习,建议教师主动引导",
|
||||||
|
"empty": "所有学生都已参与练习",
|
||||||
|
"studentCount": "未参与学生数"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"grade": {
|
||||||
|
"title": "年级专项练习总览",
|
||||||
|
"description": "全年级各班级专项练习参与情况与质量对比,辅助年级主任宏观决策",
|
||||||
|
"noGrade": "暂无可管理的年级",
|
||||||
|
"noGradeDescription": "您还未被分配管理任何年级,无法查看年级练习数据。",
|
||||||
|
"overview": {
|
||||||
|
"totalClasses": "班级数",
|
||||||
|
"totalStudents": "学生数",
|
||||||
|
"activeStudents": "参与学生",
|
||||||
|
"participationRate": "参与率",
|
||||||
|
"totalSessions": "练习总数",
|
||||||
|
"completedSessions": "完成数",
|
||||||
|
"totalAnswered": "答题总数",
|
||||||
|
"averageAccuracy": "平均正确率"
|
||||||
|
},
|
||||||
|
"classComparison": {
|
||||||
|
"title": "各班级练习对比",
|
||||||
|
"description": "按参与率降序排列,识别活跃班级与待提升班级"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
30
src/shared/i18n/messages/zh-CN/scheduling.json
Normal file
30
src/shared/i18n/messages/zh-CN/scheduling.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"title": "排课规则",
|
||||||
|
"description": "配置每日课时上限、课间窗口与均衡偏好。",
|
||||||
|
"noClassesTitle": "暂无可用班级",
|
||||||
|
"noClassesDescription": "请先创建班级,再配置排课规则。",
|
||||||
|
"hint": "未选择具体班级时保存的规则将作为全局默认。"
|
||||||
|
},
|
||||||
|
"auto": {
|
||||||
|
"title": "自动排课",
|
||||||
|
"description": "基于规则与学科分配自动生成周课表。",
|
||||||
|
"configureRules": "配置规则",
|
||||||
|
"noClassesTitle": "暂无可用班级",
|
||||||
|
"noClassesDescription": "请先创建班级,再进行自动排课。",
|
||||||
|
"hint": "应用新课表将替换所选班级的现有课表。"
|
||||||
|
},
|
||||||
|
"changes": {
|
||||||
|
"title": "课表变更申请",
|
||||||
|
"description": "审核、批准或拒绝课表变更与代课申请。",
|
||||||
|
"newRequest": "新建申请",
|
||||||
|
"noChangesTitle": "暂无课表变更申请",
|
||||||
|
"noChangesDescription": "系统中尚未产生任何课表变更申请。",
|
||||||
|
"conflictDetection": "冲突检测",
|
||||||
|
"conflictDetectionDescription": "检测现有班级课表中的时间重叠。",
|
||||||
|
"noClassesTitle": "暂无可用班级",
|
||||||
|
"noClassesDescription": "请先创建班级,再进行冲突检测。",
|
||||||
|
"scheduleGrid": "课表网格",
|
||||||
|
"scheduleGridDescription": "按班级查看当前课表分布。"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -130,6 +130,129 @@
|
|||||||
"selectSchool": "请选择学校",
|
"selectSchool": "请选择学校",
|
||||||
"success": "成功升级 {count} 个年级",
|
"success": "成功升级 {count} 个年级",
|
||||||
"failed": "升级失败"
|
"failed": "升级失败"
|
||||||
|
},
|
||||||
|
"gradeInsights": {
|
||||||
|
"title": "年级作业洞察",
|
||||||
|
"description": "按年级聚合的作业统计与班级排名。",
|
||||||
|
"manageGrades": "管理年级",
|
||||||
|
"selectGrade": "全部年级",
|
||||||
|
"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": "停用"
|
||||||
|
},
|
||||||
|
"gradeOverview": {
|
||||||
|
"title": "年级概览",
|
||||||
|
"classCount": "班级数",
|
||||||
|
"studentCount": "学生数",
|
||||||
|
"teacherCount": "教师数",
|
||||||
|
"avgScore": "平均分",
|
||||||
|
"passRate": "及格率",
|
||||||
|
"noGrades": "暂无年级",
|
||||||
|
"noGradesDescription": "创建年级以管理年级主任和班级。",
|
||||||
|
"viewInsights": "查看洞察",
|
||||||
|
"manageClasses": "管理班级",
|
||||||
|
"gradeHead": "年级主任",
|
||||||
|
"teachingHead": "教学主任",
|
||||||
|
"notSet": "未设置"
|
||||||
|
},
|
||||||
|
"gradeDashboard": {
|
||||||
|
"title": "年级仪表盘",
|
||||||
|
"description": "年级成绩分布、作业完成、考试与课本进度的综合视图。",
|
||||||
|
"selectGrade": "请选择年级",
|
||||||
|
"selectToView": "请选择年级以查看仪表盘",
|
||||||
|
"selectToViewDescription": "选择一个年级,查看成绩分布、作业完成、考试与课本进度。",
|
||||||
|
"noData": "暂无数据",
|
||||||
|
"noDataDescription": "该年级暂无相关数据。",
|
||||||
|
"tabs": {
|
||||||
|
"distribution": "成绩分布",
|
||||||
|
"homework": "作业完成",
|
||||||
|
"exams": "考试",
|
||||||
|
"progress": "课本进度"
|
||||||
|
},
|
||||||
|
"distribution": {
|
||||||
|
"overallStats": "整体统计",
|
||||||
|
"byClass": "班级分布对比",
|
||||||
|
"totalRecords": "成绩记录数",
|
||||||
|
"averageScore": "平均分",
|
||||||
|
"passRate": "及格率",
|
||||||
|
"excellentRate": "优秀率",
|
||||||
|
"scoreBuckets": "分数段分布",
|
||||||
|
"students": "学生数",
|
||||||
|
"class": "班级",
|
||||||
|
"count": "人数",
|
||||||
|
"bucket90": "90-100",
|
||||||
|
"bucket80": "80-89",
|
||||||
|
"bucket70": "70-79",
|
||||||
|
"bucket60": "60-69",
|
||||||
|
"bucketBelow60": "0-59"
|
||||||
|
},
|
||||||
|
"homework": {
|
||||||
|
"totalAssignments": "作业总数",
|
||||||
|
"totalSubmissions": "提交总数",
|
||||||
|
"avgSubmissionRate": "平均提交率",
|
||||||
|
"gradedRate": "批改率",
|
||||||
|
"assignmentList": "作业列表",
|
||||||
|
"classComparison": "班级对比",
|
||||||
|
"completionRate": "完成率",
|
||||||
|
"submitted": "已提交",
|
||||||
|
"graded": "已批改",
|
||||||
|
"targeted": "目标数"
|
||||||
|
},
|
||||||
|
"exams": {
|
||||||
|
"totalExams": "考试总数",
|
||||||
|
"published": "已发布",
|
||||||
|
"draft": "草稿",
|
||||||
|
"totalSubmissions": "提交总数",
|
||||||
|
"gradedRate": "批改率",
|
||||||
|
"examList": "考试列表",
|
||||||
|
"subject": "科目",
|
||||||
|
"status": "状态",
|
||||||
|
"scheduledAt": "计划时间",
|
||||||
|
"submissions": "提交数",
|
||||||
|
"graded": "已评分",
|
||||||
|
"avgScore": "平均分",
|
||||||
|
"createdAt": "创建时间"
|
||||||
|
},
|
||||||
|
"progress": {
|
||||||
|
"overallProgress": "整体进度",
|
||||||
|
"totalPlans": "计划总数",
|
||||||
|
"totalHours": "总课时",
|
||||||
|
"completedHours": "已完成课时",
|
||||||
|
"activePlans": "进行中",
|
||||||
|
"completedPlans": "已完成",
|
||||||
|
"progressMatrix": "进度矩阵",
|
||||||
|
"class": "班级",
|
||||||
|
"subject": "科目",
|
||||||
|
"teacher": "教师",
|
||||||
|
"progress": "进度",
|
||||||
|
"completedHoursCol": "已完成/总课时",
|
||||||
|
"items": "条目",
|
||||||
|
"status": "状态"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"departments": {
|
"departments": {
|
||||||
|
|||||||
@@ -217,6 +217,16 @@
|
|||||||
"apiKeyPlaceholder": "粘贴新密钥以替换",
|
"apiKeyPlaceholder": "粘贴新密钥以替换",
|
||||||
"apiKeyDesc": "已有密钥不会显示。留空则保留当前密钥。",
|
"apiKeyDesc": "已有密钥不会显示。留空则保留当前密钥。",
|
||||||
"setDefault": "设为默认",
|
"setDefault": "设为默认",
|
||||||
|
"visibility": "可见性",
|
||||||
|
"visibilityDesc": "公开 Provider 由管理员发布,全员可用;私有 Provider 仅创建者可见。",
|
||||||
|
"visibilityPublic": "公开",
|
||||||
|
"visibilityPrivate": "私有",
|
||||||
|
"visibilityPublicLabel": "公开(全员可用)",
|
||||||
|
"visibilityPrivateLabel": "私有(仅自己可见)",
|
||||||
|
"visibilityReadOnly": "仅管理员可修改可见性",
|
||||||
|
"badgePublic": "公开",
|
||||||
|
"badgePrivate": "私有",
|
||||||
|
"badgeOwner": "我的",
|
||||||
"test": "测试",
|
"test": "测试",
|
||||||
"testing": "测试中...",
|
"testing": "测试中...",
|
||||||
"save": "保存修改",
|
"save": "保存修改",
|
||||||
|
|||||||
105
src/shared/i18n/messages/zh-CN/student.json
Normal file
105
src/shared/i18n/messages/zh-CN/student.json
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"schedule": {
|
||||||
|
"title": "我的课表",
|
||||||
|
"description": "查看你的每周课程安排。",
|
||||||
|
"noUser": "未找到用户",
|
||||||
|
"noUserDesc": "请创建学生用户以查看课表。"
|
||||||
|
},
|
||||||
|
"courses": {
|
||||||
|
"title": "我的课程",
|
||||||
|
"description": "查看你已加入的班级课程。",
|
||||||
|
"noUser": "未找到用户",
|
||||||
|
"noUserDesc": "请创建学生用户以查看课程。"
|
||||||
|
},
|
||||||
|
"scheduleView": {
|
||||||
|
"noSchedule": "暂无课表",
|
||||||
|
"noScheduleDesc": "未找到你已加入班级的课表记录。",
|
||||||
|
"today": "今天",
|
||||||
|
"noClasses": "暂无课程。"
|
||||||
|
},
|
||||||
|
"scheduleFilters": {
|
||||||
|
"allClasses": "全部班级",
|
||||||
|
"selectClass": "选择班级"
|
||||||
|
},
|
||||||
|
"coursesView": {
|
||||||
|
"active": "进行中",
|
||||||
|
"details": "详情",
|
||||||
|
"schedule": "课表",
|
||||||
|
"assignments": "作业",
|
||||||
|
"noCourses": "暂无课程",
|
||||||
|
"noCoursesDesc": "你还未加入任何班级。使用下方邀请码加入班级。",
|
||||||
|
"joinClass": "加入班级",
|
||||||
|
"joinClassDesc": "输入老师提供的邀请码加入班级。",
|
||||||
|
"invitationCode": "邀请码",
|
||||||
|
"invitationCodePlaceholder": "输入 6 位邀请码",
|
||||||
|
"joining": "加入中...",
|
||||||
|
"joinButton": "加入班级",
|
||||||
|
"joinedSuccess": "已加入班级",
|
||||||
|
"joinFailed": "加入班级失败",
|
||||||
|
"grade": "年级 {grade}",
|
||||||
|
"room": "教室 {room}"
|
||||||
|
},
|
||||||
|
"courseFilters": {
|
||||||
|
"searchPlaceholder": "按班级名称、教师、学校搜索..."
|
||||||
|
},
|
||||||
|
"learning": {
|
||||||
|
"title": "我的学习",
|
||||||
|
"description": "你的学习中心:课程、作业和教材。",
|
||||||
|
"noUser": "未找到用户",
|
||||||
|
"noUserDesc": "请创建学生用户以查看学习内容。",
|
||||||
|
"courses": "课程",
|
||||||
|
"coursesDesc": "查看已加入的班级。",
|
||||||
|
"enrolled": "{count} 个已加入",
|
||||||
|
"assignments": "作业",
|
||||||
|
"assignmentsDesc": "作业与练习。",
|
||||||
|
"pending": "{count} 个待完成",
|
||||||
|
"dueSoon": " · {count} 个即将截止",
|
||||||
|
"textbooks": "教材",
|
||||||
|
"textbooksDesc": "浏览课程教材。",
|
||||||
|
"available": "{count} 本可用"
|
||||||
|
},
|
||||||
|
"errorBook": {
|
||||||
|
"title": "错题本",
|
||||||
|
"description": "自动收录考试与作业中的错题,科学复习,攻克薄弱点。"
|
||||||
|
},
|
||||||
|
"diagnostic": {
|
||||||
|
"title": "我的学情诊断",
|
||||||
|
"description": "查看你的知识点掌握度分析与诊断报告。"
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"title": "出错了",
|
||||||
|
"description": "发生了意外错误,请稍后重试。",
|
||||||
|
"retry": "重试"
|
||||||
|
},
|
||||||
|
"classDetail": {
|
||||||
|
"backToCourses": "返回课程",
|
||||||
|
"grade": "年级 {grade}",
|
||||||
|
"room": "教室 {room}",
|
||||||
|
"active": "进行中",
|
||||||
|
"fullSchedule": "完整课表",
|
||||||
|
"assignments": "作业",
|
||||||
|
"teacher": "教师",
|
||||||
|
"noTeacher": "暂未分配教师。",
|
||||||
|
"school": "学校",
|
||||||
|
"schoolNotAvailable": "学校信息不可用。",
|
||||||
|
"classroom": "教室",
|
||||||
|
"roomNotAssigned": "教室未分配。",
|
||||||
|
"homeroom": "班主任: {homeroom}",
|
||||||
|
"classSchedule": "班级课表",
|
||||||
|
"noSchedule": "暂无课表",
|
||||||
|
"noScheduleDesc": "该班级暂无课表记录。"
|
||||||
|
},
|
||||||
|
"weekdays": {
|
||||||
|
"mon": "周一",
|
||||||
|
"tue": "周二",
|
||||||
|
"wed": "周三",
|
||||||
|
"thu": "周四",
|
||||||
|
"fri": "周五",
|
||||||
|
"sat": "周六",
|
||||||
|
"sun": "周日"
|
||||||
|
},
|
||||||
|
"assignment": {
|
||||||
|
"due": "截止: {date}",
|
||||||
|
"maxAttempts": "最大尝试次数: {count}"
|
||||||
|
}
|
||||||
|
}
|
||||||
44
src/shared/i18n/messages/zh-CN/users.json
Normal file
44
src/shared/i18n/messages/zh-CN/users.json
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"title": "用户管理",
|
||||||
|
"description": "管理系统所有用户。",
|
||||||
|
"import": {
|
||||||
|
"title": "批量导入用户",
|
||||||
|
"description": "通过 Excel 文件批量创建用户账号,支持学生自动加入班级。",
|
||||||
|
"back": "返回",
|
||||||
|
"subtitle": "批量创建用户账号,学生可自动加入对应班级。",
|
||||||
|
"instructionsTitle": "导入说明",
|
||||||
|
"instructionsDescription": "使用 Excel 批量导入用户的步骤",
|
||||||
|
"step1": "点击「批量导入用户」按钮,下载导入模板。",
|
||||||
|
"step2": "按模板格式填写用户信息(姓名、邮箱、角色、手机、班级邀请码)。",
|
||||||
|
"step3": "上传填写好的 Excel 文件,系统将解析并预览数据。",
|
||||||
|
"step4": "确认预览数据无误后,点击「确认导入」完成批量创建。",
|
||||||
|
"notesTitle": "注意事项",
|
||||||
|
"notesDescription": "导入前请仔细阅读",
|
||||||
|
"note1": "所有用户默认密码统一设置,请提示用户首次登录后修改。",
|
||||||
|
"note2": "邮箱必须唯一,重复邮箱将被跳过并记录在错误报告中。",
|
||||||
|
"note3": "角色可选:admin / teacher / student / parent / grade_head / teaching_head。",
|
||||||
|
"note4": "班级邀请码仅对 student 角色有效,填写后学生将自动加入对应班级。",
|
||||||
|
"note5": "单次最多导入 10MB 的文件,建议单次不超过 500 条记录。",
|
||||||
|
"note6": "导入完成后将显示成功数、失败数及详细错误信息。",
|
||||||
|
"templateTitle": "模板字段说明",
|
||||||
|
"templateDescription": "Excel 模板各列含义与要求",
|
||||||
|
"columnName": "列名",
|
||||||
|
"columnRequired": "是否必填",
|
||||||
|
"columnDescription": "说明",
|
||||||
|
"fieldName": "姓名",
|
||||||
|
"fieldNameRequired": "必填",
|
||||||
|
"fieldNameDescription": "用户姓名",
|
||||||
|
"fieldEmail": "邮箱",
|
||||||
|
"fieldEmailRequired": "必填",
|
||||||
|
"fieldEmailDescription": "登录账号,需符合邮箱格式且唯一",
|
||||||
|
"fieldRole": "角色",
|
||||||
|
"fieldRoleRequired": "必填",
|
||||||
|
"fieldRoleDescription": "admin / teacher / student / parent / grade_head / teaching_head",
|
||||||
|
"fieldPhone": "手机",
|
||||||
|
"fieldPhoneRequired": "选填",
|
||||||
|
"fieldPhoneDescription": "联系电话",
|
||||||
|
"fieldInviteCode": "班级邀请码",
|
||||||
|
"fieldInviteCodeRequired": "选填",
|
||||||
|
"fieldInviteCodeDescription": "仅 student 角色有效,6 位邀请码"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user