feat: introduce i18n system and class invitation codes

Add complete i18n infrastructure using next-intl (cookie-driven, without i18n routing) with zh-CN/en dictionary files, locale switcher, and NextIntlClientProvider in root layout. Add class invitation code system with new class_invitation_codes table, data-access layer (generate/validate/consume/revoke), server actions with permission checks, rate limiting, and audit logging. Add class-invitation-manager UI component. Refactor onboarding stepper to use i18n translations and accept new invitation code format (6-char alphanumeric) with backward compatibility for legacy 6-digit codes.
This commit is contained in:
SpecialX
2026-06-22 14:04:55 +08:00
parent a4d096a6fc
commit c90748124d
25 changed files with 2911 additions and 30 deletions

View File

@@ -0,0 +1,23 @@
{
"auth": {
"required": "请先登录",
"forbidden": "无权限访问",
"sessionExpired": "会话已过期,请重新登录"
},
"network": {
"requestFailed": "请求失败,请稍后重试",
"timeout": "请求超时",
"serverError": "服务器错误"
},
"validation": {
"required": "此字段为必填",
"invalidFormat": "格式错误",
"tooShort": "长度过短",
"tooLong": "长度过长"
},
"db": {
"notFound": "记录不存在",
"duplicate": "记录已存在",
"constraintViolation": "数据约束冲突"
}
}