feat: refine web analytics and history views

This commit is contained in:
Wyndham ARR
2026-08-02 12:56:22 +08:00
parent a891c0ae7a
commit 7e7470821b
37 changed files with 2088 additions and 361 deletions

View File

@@ -0,0 +1,26 @@
# ARR Web 中英泰国际化实现
## 结论
2026-07-31 用户确认执行后ARR Web 展示层完成 `zh-CN``en``th` 三语切换基础实现。桌面 `/`、H5 `/h5` 和登录 `/login` 共用一个前端词典/runtime默认中文语言选择保存到 localStorage 与同源 cookie并同步 `html.lang`。顶部品牌 `ARR Report`、XML/Excel/Booking/Finance/BI/C/O、字段名、公司/渠道/房型和报告文件/worksheet 等专有名词保持原样或仅翻译其周边说明。
## 实施范围
- 新增 `arr_web/static/i18n.js`:语义词典、稳定 API 错误码映射、动态 DOM/属性翻译、分页/任务文本模式、日期/整数/CNY/耗时格式化;泰文格式强制 Gregorian calendar 与 Latin digits业务时区仍为 `Asia/Bangkok`
- `arr_web/static/index.html``h5.html``login.html` 增加语言选择器和 runtime`app.js``h5.js``login.js` 接入状态、Toast、确认/空态、错误、任务日志、无障碍属性及 locale-change 重绘。
- `styles.css``h5.css``login.css` 增加泰文字体回退和选择器样式;`arr_web/app.py` 将 i18n runtime 加入静态路由及匿名登录资源白名单。
## 边界与不变量
- 未触发上传、月报/公司报表生成、Booking 草稿删除/激活、下载或数据库写入未修改认证、CSRF、轮询和业务状态判断。
- 业务状态值、API 结构和报表 Excel 文件名、sheet、表头、公式契约保持不变语言只作用于用户展示层。API 错误继续通过 code 识别,前端按 locale 显示人类可见文案。
- 语言切换不把已翻译文本当作源文本runtime 保存原始文案,因此可以从英文/泰文切回中文。
## 验证
- `node --check arr_web/static/i18n.js arr_web/static/app.js arr_web/static/h5.js arr_web/static/login.js`:通过。
- Node DOM/runtime smoke中文 → English → ไทย → 中文恢复正常;`2026-07` 月份文案和 Thai/English locale 格式化通过;未知 API 错误在英文/泰文下回退到对应语言通用提示。
- `python3 -m unittest discover -s tests -p 'test_arr_web*.py'`61/61 通过。
- 当前源码临时预览的 390px 登录页验证中文、English、ไทย切换`ARR Report` 保持不变,泰文长文案无横向溢出。预览进程已关闭,未触碰共享 8766 服务或业务数据。
- 19:27:42 +08 按现有 Screen/Keychain launcher 重启共享 8766旧进程因未重启仍重定向 `/assets/i18n.js`,重启后 loopback 与当前 LAN `192.168.3.103``/login``/healthz``/assets/i18n.js` 分别返回 200匿名根路径返回登录重定向。原 `192.168.3.48` 已不在本机网卡上,未执行业务写操作。
- 完整 `python3 -m unittest discover -s tests`298 个测试中 8 个环境错误,均为既有测试环境缺少 `httpx` 或 OSS client 映射为 unavailable未出现与本次 Web 国际化改动相关的失败。