Files
NextEdu/src/shared/i18n/messages/en/leave.json
SpecialX d2c250a1b3 feat(shared): update db schema, i18n messages, rate-limit, auth-session-provider
- Update src/shared/db/schema.ts

- Update i18n messages for en and zh-CN (error-book, exam-homework, leave,

  lesson-preparation, notifications, rbac, student, textbooks, diagnostic)

- Update src/shared/lib/rate-limit/index.ts and redis-limiter.ts

- Update src/shared/components/auth-session-provider.tsx
2026-07-04 10:23:29 +08:00

86 lines
3.4 KiB
JSON

{
"title": {
"default": "Leave Request",
"parent": "Online Leave",
"teacher": "Leave Approval",
"student": "My Leave Requests"
},
"description": {
"default": "Submit a leave request for your child.",
"parent": "Submit a leave request for your child. Attendance is auto-synced after homeroom teacher approval.",
"teacher": "View and approve leave requests from students in your classes. Approved leaves automatically mark attendance as 'excused'.",
"student": "Submit your own leave request. It takes effect after homeroom teacher approval."
},
"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",
"types": {
"sick": "Sick Leave",
"personal": "Personal Leave",
"family": "Family Affairs",
"other": "Other"
},
"status": {
"pending": "Pending",
"approved": "Approved",
"rejected": "Rejected",
"cancelled": "Cancelled"
},
"form": {
"student": "Student",
"studentPlaceholder": "Select your child",
"leaveType": "Leave Type",
"dateRange": "Leave Dates",
"reason": "Reason",
"reasonPlaceholder": "Briefly explain the reason for leave (max 500 chars)",
"submit": "Submit Request",
"submitting": "Submitting…"
},
"list": {
"reason": "Reason",
"reviewedBy": "Reviewed by {name} ({date})",
"reviewComment": "Review Comment",
"attendanceSynced": "Attendance synced"
},
"review": {
"title": "Review Leave Request",
"description": "{name} · {className} · {dateRange}",
"approve": "Approve",
"reject": "Reject",
"cancel": "Cancel",
"commentLabel": "Review Comment",
"commentPlaceholder": "Enter review comment (required for rejection, optional for approval)",
"openButton": "Review"
},
"errors": {
"invalidForm": "The form has errors, please check and retry",
"noRelation": "You have no parent-child relation with this student",
"classMismatch": "Selected class does not match the student's current class",
"overlappingLeave": "An active leave request already exists in this date range",
"reviewCommentRequired": "Review comment is required when rejecting",
"notFound": "Leave request not found or no access",
"alreadyReviewed": "This leave request has already been reviewed",
"notOwner": "You can only cancel your own leave requests",
"cannotCancel": "Current status does not allow cancellation (only pending can be cancelled)"
},
"messages": {
"created": "Leave request submitted, waiting for homeroom teacher approval",
"approved": "Leave request approved, attendance synced",
"rejected": "Leave request rejected",
"cancelled": "Leave request cancelled"
},
"empty": {
"parentTitle": "No leave records",
"parentDesc": "You have not submitted any leave requests for your children",
"teacherTitle": "No leave requests",
"teacherDesc": "No pending or reviewed leave requests from your classes",
"studentTitle": "No leave records",
"studentDesc": "You have not submitted any leave requests"
}
}