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

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

- Add ui/alert component

- Add constants directory

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

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

tests:

- Add integration tests for elective

- Add tests/setup/empty-stub

scripts:

- Add update-md.cjs, tmp_append_en.ps1, tmp_merge_en.ps1 utilities
2026-07-03 10:26:38 +08:00

186 lines
6.0 KiB
JSON

{
"title": {
"list": "Messages",
"detail": "Message",
"compose": "Compose Message",
"reply": "Reply",
"newMessage": "New Message",
"groupCompose": "Group Message"
},
"description": {
"list": "Manage your inbox and stay updated with notifications.",
"compose": "Send a message to another user.",
"groupCompose": "Send a message to all parents of a class."
},
"tabs": {
"inbox": "Inbox",
"sent": "Sent"
},
"actions": {
"compose": "Compose",
"reply": "Reply",
"delete": "Delete",
"send": "Send",
"sending": "Sending...",
"cancel": "Cancel",
"back": "Back",
"star": "Star",
"unstar": "Unstar",
"saveDraft": "Save Draft",
"deleteDraft": "Delete Draft",
"recall": "Recall",
"report": "Report",
"block": "Block",
"unblock": "Unblock"
},
"form": {
"to": "To",
"toPlaceholder": "Select a recipient",
"subject": "Subject",
"subjectPlaceholder": "Message subject",
"content": "Content",
"contentPlaceholder": "Write your message...",
"selectRecipient": "Please select a recipient",
"class": "Class",
"classPlaceholder": "Select a class",
"selectClass": "Please select a class"
},
"status": {
"new": "New",
"read": "Read",
"sent": "Sent",
"unread": "Unread",
"recalled": "Recalled"
},
"meta": {
"from": "From",
"to": "To",
"unknown": "Unknown",
"noSubject": "(no subject)",
"readAt": "Read {date}"
},
"search": {
"placeholder": "Search messages by subject or content...",
"noResults": "No matching messages found"
},
"pagination": {
"nav": "Message pagination",
"previous": "Previous",
"next": "Next",
"page": "Page {current} / {total}"
},
"drafts": {
"title": "Drafts",
"resume": "Resume editing",
"delete": "Delete draft",
"noContent": "(no content)",
"updatedAt": "Updated {date}",
"versionConflict": "Draft was updated on another device. Synced to latest version.",
"syncedFromOtherDevice": "Draft synced from another device"
},
"templates": {
"title": "Quick Reply Templates",
"insert": "Insert template",
"manage": "Manage templates",
"create": "New template",
"edit": "Edit",
"delete": "Delete",
"empty": "No templates",
"emptyDesc": "Create common reply templates to improve communication efficiency.",
"titleField": "Template title",
"titlePlaceholder": "e.g., Acknowledged",
"contentField": "Template content",
"contentPlaceholder": "e.g., Acknowledged, thank you for your feedback.",
"sortOrder": "Sort order (lower comes first)",
"saved": "Template saved",
"deleted": "Template deleted",
"deleteConfirm": "Are you sure you want to delete this template?"
},
"report": {
"title": "Report Message",
"description": "Report inappropriate content. An administrator will review it.",
"reason": "Reason",
"reasonSpam": "Spam",
"reasonHarassment": "Harassment",
"reasonInappropriate": "Inappropriate content",
"reasonOther": "Other",
"descriptionField": "Description (optional)",
"descriptionPlaceholder": "Please provide more details...",
"confirm": "Confirm Report",
"cancel": "Cancel"
},
"block": {
"title": "Block User",
"confirm": "Are you sure you want to block this user? You will not be able to send messages to each other.",
"list": "Blocked List",
"empty": "No blocked users"
},
"attachments": {
"add": "Add Attachment",
"remove": "Remove Attachment",
"title": "Attachments ({count})",
"download": "Download Attachment",
"empty": "No attachments"
},
"thread": {
"title": "Conversation",
"replyCount": "{count} replies",
"noReplies": "No replies yet",
"you": "You"
},
"empty": {
"inboxEmpty": "Inbox is empty",
"inboxEmptyDesc": "You have no incoming messages yet.",
"sentEmpty": "No sent messages",
"sentEmptyDesc": "You have not sent any messages yet.",
"deleteTitle": "Delete message",
"deleteDesc": "This will permanently delete the message \"{subject}\".",
"noDrafts": "No drafts",
"noStarred": "No starred messages"
},
"messages": {
"sent": "Message sent",
"deleted": "Message deleted",
"markedRead": "Marked as read",
"sendSelf": "Cannot send a message to yourself",
"sendFailed": "Failed to send message",
"deleteFailed": "Failed to delete",
"notFound": "Message not found",
"invalidId": "Invalid message id",
"selectRecipient": "Please select a recipient",
"draftSaved": "Draft saved",
"draftDeleted": "Draft deleted",
"starToggled": "Star status updated",
"recalled": "Message recalled",
"recallFailed": "Failed to recall message",
"recallExpired": "Recall window (2 minutes) has expired",
"recallConfirm": "Are you sure you want to recall this message?",
"groupSent": "Group message sent to {count} parents",
"groupNoRecipients": "No recipients found in this class",
"groupNotAuthorized": "You are not authorized to send group messages to this class",
"groupSendFailed": "Failed to send group message",
"reported": "Message reported",
"alreadyReported": "You have already reported this message",
"reportFailed": "Failed to report message",
"reportSelf": "Cannot report your own message",
"blocked": "User blocked",
"alreadyBlocked": "User is already blocked",
"blockSelf": "Cannot block yourself",
"blockFailed": "Failed to block user",
"unblocked": "User unblocked",
"unblockFailed": "Failed to unblock user",
"blockedSendHint": "You have been blocked and cannot send messages"
},
"notification": {
"messageTitle": "New message: {subject}",
"messageTitleNoSubject": "New message"
},
"error": {
"loadFailed": "Failed to load messages",
"loadFailedDesc": "Sorry, an unexpected error occurred while loading messages. Please try again later.",
"retry": "Retry",
"boundaryTitle": "Message section failed to load",
"boundaryDescription": "An error occurred while loading message data. Please retry."
}
}