A Chinese/English interface, a phone layout for every list page, and half the first paint.
- ✨ Multi-language interface, Chinese and English, switchable without a reload. No backend change and no database migration. #280
- 🎨 Menu titles and dictionary labels translate through the keys the database already carries, and fall back to the stored Chinese. #280
- 🎨 Every page, dialog and validation message follows the language while it is on screen. #283 #286 #287
- 🐛 The navbar search had found nothing since a library upgrade; it works again, and follows the language. #284
- ✨ List pages render as cards below 768px, with swipe actions, a filter sheet and a floating toolbar. Fifteen pages, none of them changed. #276
- 👌 First paint down from 1,007 kB to 461 kB gzipped. #277
- ✨ Light and dark switch, applied before the first byte of CSS is parsed. #269
- 🎨 List pages move onto a composables layer, so one page can hold two forms. #262 #274
- 🔧 No external CDN resources remain: the theme picker uses CSS variables, the icon sprite is baked locally. #285 #271
- 🔧 Every dependabot alert closed. SheetJS is replaced by write-excel-file, which has no patched version and is no longer published to npm. #264 #263
- 🐛 Exports write dictionary labels where they used to write the raw codes. #289
- 🐛 The router guard no longer loops against the backend while it is down. #272
- 🐛 Charts follow their container's size again. #275
- 🐛 The tab strip no longer clips the tabs' top border. #273
- 🐛 The sidebar logo and the light rail are rebuilt on the Ant Design palette. #268
- 🐛 The generator's 编辑 column is renamed 表单 — what the checkbox controls is whether the column appears in the form. #290
- ✨ Page view reporting, off unless a measurement id is configured. #266
Upgrading. The interface now follows the visitor's browser language, so a visitor whose browser is set to English lands on the English interface where they previously always saw Chinese. Nothing was renamed and no data changed. There is currently no setting that pins a deployment to one language — detection runs for anyone who has not chosen. Say so on the issue tracker if you need one.
中英文界面、列表页的手机形态,以及减半的首屏体积。
- ✨ 多语言界面,中英文,切换无需刷新。不改后端,不需要数据库迁移。#280
- ✨ 768px 以下列表页渲染为卡片,支持左滑操作、筛选抽屉与悬浮工具栏。十五个页面,无一需要改动。#276
- 👌 首屏体积从 1,007 kB 降至 461 kB(gzip)。#277
- ✨ 明暗主题开关,在第一个字节的 CSS 被解析之前即已应用。#269
- 🎨 列表页收敛为 composables 层,因此同一页可以挂两个表单。#262 #274
- 🔧 不再有任何外部 CDN 资源:主题选择器改用 CSS 变量,图标雪碧图改为本地生成。#285 #271
- 🔧 dependabot 告警全部清零。SheetJS 换成 write-excel-file——前者没有已修复版本,且已不再发布到 npm。#264 #263
- 🐛 导出写字典标签,此前写的是原始码。#289
- 🐛 后端不可用时,路由守卫不再反复请求。#272
- 🐛 图表重新跟随容器尺寸。#275
- 🐛 标签栏不再裁掉标签页的上边框。#273
- 🐛 侧边栏 Logo 与导航轨基于 Ant Design 配色重做。#268
- 🐛 生成器的「编辑」列改名为「表单」——那个复选框控制的是字段出不出现在表单里。#290
- ✨ 页面浏览上报,未配置测量 ID 时不启用。#266
升级提示。 界面现在跟随访问者的浏览器语言,因此浏览器语言为英文的访问者会进入英文界面——此前无论如何都是中文。没有任何东西被改名,数据也没有变化。目前没有「把整个部署固定为某一种语言」的开关——只要访问者自己没选过,检测就会执行。需要这个能力请在 issue 里说明。