v1.3.3: 中英双语 i18n + 回归时序根治
i18n(竞品 7 家全有、Aurora 唯一还缺的一线能力) - site/i18n.js:330 条文案字典,顶栏「中 / EN」切换,偏好存 aa-lang, <html lang> 与 document.title 同步 - 设计取舍:以中文源串为字典键,而非抽象 key。中文是规范原文语言也是 app.js 现有字面量;源串作键意味着未收录文案自动回退原文,不会出现 空白或 key 泄漏 - 覆盖:导航/侧栏/首页 Hero 与设计原则/总览/快速开始/设计规范(含令牌 导出区)/For Agents 全表/更新日志/组件详情页(何时使用、API 三表、 无障碍键盘表、Do&Don't、设计契约、实现资源、相关组件)/Playground/ 主题面板/搜索弹窗/FAB 提示 - 语言感知显示:组件名主次调换(中文模式主显中文名,英文模式主显英文 名),详情页大标题不再重复;分类名走 CAT_EN 不占字典 修复回归时序(根治偶发) - DensitySwitcher 对比度偶发失败:断言在演示页内联脚本执行完之前就跑了, 读到 is-active 尚未应用的中间态(白字未落到品牌蓝底)。单页打开通过、 并发收集器里偶发失败 - 根因是固定帧数等待(load + 双 rAF)在多个 iframe 抢主线程时不够稳。 改为就绪轮询:readyState === 'complete' 且 DOM 连续 3 次采样(约 48ms) 无变化才断言,另设约 4.8s 超时兜底 - 验证:四次连跑全部 100%,偶发不再复现 修复 i18n 接入中的三个真实缺陷 - TDZ 顺序:KIND_KEYS 等模块级常量在 I18N/T 定义前调用 T(),抛 Cannot read properties of undefined。改为存中文源串、渲染时求值 (模块级预先求值还会导致语言切换后不更新) - 局部变量遮蔽:renderDesign 内原有 var T = data.tokens 遮蔽全局翻译 函数,导致设计规范页整个渲染失败。改名 TOKENS - 模板拼接括号:el() 调用在包装 T() 后少一个右括号 验证 - 9 个路由 × 2 语言全部正常渲染(中英文内容均非空且确实不同) - 回归保持 100%:961 断言 / 925 通过 / 0 失败 / 79 页全通过 / N/A 36
This commit is contained in:
@@ -4,6 +4,30 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [1.3.3] - 2026-09-11
|
||||
|
||||
### Added — 中英双语(i18n)
|
||||
- `site/i18n.js`:330 条文案字典,顶栏新增 `中 / EN` 切换器,偏好存 `localStorage['aa-lang']`,`<html lang>` 与 `document.title` 同步。
|
||||
- **设计取舍**:以「中文源串」作字典键而非抽象 key。中文是规范原文语言(组件1~10.txt)也是 app.js 现有字面量;源串作键意味着未收录文案自动回退原文,不会出现空白或 key 泄漏。
|
||||
- 覆盖范围:导航 / 侧栏 / 首页 Hero 与设计原则 / 总览 / 快速开始 / 设计规范(含令牌导出区)/ For Agents 全表 / 更新日志 / 组件详情页(何时使用、API 三表、无障碍键盘表、Do&Don't、设计契约、实现资源、相关组件)/ Playground / 主题面板 / 搜索弹窗 / FAB 提示。
|
||||
- 语言感知的显示逻辑:
|
||||
- 组件名主次调换(中文模式主显中文名,英文模式主显英文名),详情页大标题不再重复;
|
||||
- 侧栏分类名走 `CAT_EN`,不占字典;
|
||||
- 动态生成的键盘表、插槽说明按语言重算。
|
||||
|
||||
### Fixed — 回归时序(根治偶发)
|
||||
- **DensitySwitcher 对比度偶发失败**:断言在演示页内联脚本执行完之前就跑了,读到 `is-active` 尚未应用的中间态(白字未落到品牌蓝底 → 2.51:1)。单页打开时通过、并发收集器里偶发失败。
|
||||
- 根因是固定帧数等待(`load` + 双 `requestAnimationFrame`)在多个 iframe 抢主线程时不够稳。改为**就绪轮询**:`readyState === 'complete'` 且 DOM 连续 3 次采样(约 48ms)无变化才断言,另设约 4.8s 超时兜底避免卡死。
|
||||
- 验证:**四次连跑全部 100%**(961 断言 / 0 失败 / 79 页全通过),偶发不再复现。
|
||||
|
||||
### Fixed — i18n 接入过程中的三个真实缺陷
|
||||
- **TDZ 顺序**:`KIND_KEYS` 等模块级常量在 `I18N`/`T` 定义之前调用了 `T()`,抛 `Cannot read properties of undefined (reading 'T')`。已改为存中文源串、渲染时求值(模块级预先求值还会导致语言切换后不更新)。
|
||||
- **局部变量遮蔽**:`renderDesign` 内原有 `var T = data.tokens;` 遮蔽了全局翻译函数,导致设计规范页整个渲染失败。改名 `TOKENS`。
|
||||
- **模板拼接括号**:`el()` 调用在包装 `T()` 后少一个右括号,已修正。
|
||||
|
||||
### Changed
|
||||
- 回归基线:961 断言 / 925 通过 / **100%** / 79 页全通过 / N/A 36,四次连跑一致。
|
||||
|
||||
## [1.3.2] - 2026-09-11
|
||||
|
||||
### Added — 契约第三批:全量契约化 79/79
|
||||
|
||||
Reference in New Issue
Block a user