dsh/mailgo:fix/legacy-ban-index
main
为 Web 前端加入完整多语言支持,并新增用户语言偏好字段。
FromAcceptLanguage
Resolve
T
TF
t
tf
htmlLang
users
language
UpdateLanguage
<html lang>
go test ./...
- 新增 internal/i18n 包:以原始中文字符串为 key 的翻译目录(zh 恒等, en 兜底,ja 缺译回退 en),t/tf 模板函数与 Accept-Language 解析 (按 q 值排序,兜底英语) - User 模型新增 language 字段(auto|en|zh|ja,默认 auto), AutoMigrate 自动加列;UserStore 新增 UpdateLanguage - 语言解析:登录用户按偏好(auto 时取浏览器 Accept-Language), 登录/封禁页按浏览器语言;所有 c.HTML 渲染注入 Lang 模板数据 - 全部页面模板(用户页 + 管理后台 12 页)接入翻译:导航、文件夹、 邮件列表/阅读/写信、设置、登录、封禁页、表单、表格、JS 确认框等; html lang 属性随语言切换;日期函数(shortDate/time12/time12m) 与 folderLabel 改为语言感知(上午/下午 vs AM/PM vs 午前/午後) - 设置页新增「界面语言」选择(自动/English/中文/日本語), /settings 表单支持单独提交语言偏好;管理后台用户表单可预设语言 - 封禁原因等入库中文文案在展示时经 t 翻译(未知 key 原样回退) - 测试:i18n 单测(解析/回退/译文)、render 测试补 Lang 数据、 时间格式化测试适配新签名;全量 go test 通过
No dependencies set.
The note is not visible to the blocked user.
变更内容
为 Web 前端加入完整多语言支持,并新增用户语言偏好字段。
1. 新增 internal/i18n 包
FromAcceptLanguage按 q 值解析浏览器语言头;Resolve实现 auto → 浏览器语言、显式偏好优先、最终兜底英语T/TF翻译与格式化函数,模板函数t/tf/htmlLang2. 用户语言偏好
users表新增language字段(auto|en|zh|ja,默认 auto),AutoMigrate 自动加列UpdateLanguage3. Web 层接线
<html lang>随语言切换4. 测试
go test ./...通过验证