v1.0.10 两件大事:
1. 界面中英双语(英文界面无中文残留)
- 新增 web/i18n.js(约 4200 条词条),零依赖零构建
- 后端下发中文数据走 bt4() 查表翻译;独立模块(upstream/netdetail/
realtime/update)纳入翻译并注册切语言重绘钩子
- 后端「状态/聚合」接口只回稳定枚举+原始数值,不下发中文文案
- 顺带修一个真实 XSS:顶层 const 不挂 window,独立脚本 esc 静默退化成零转义
2. 修掉「文字竖着排/错位」(多分辨率反复暴露)
- 单元格 min-content 只有 1 字宽 → word-break:keep-all + 表头 nowrap
- 依赖卡片正文被标签/按钮挤成 27px → .dep-body{flex:1 1 200px} + flex-wrap
- 裸 flex:1(下限为0)给正文 → 一律改 flex:1 1 <px>
- .dep-item 横向容器直接塞块级子项 → 退回块级
- 关键陷阱:auto-fill 布局屏越宽列数越多单卡越窄,窄屏反而测不出来,
真机审计推进到「逐视图点按钮 + 1920/2560 宽视口 + 中英双语」
- 守卫 t-layout.py 扩到 35 条,12 处反向验证全红
3. 修真缺陷:_link_since() 重启检测被误改成 if False:(注释还写着「已修」),
uptime 归零后相减得负数 → 恢复比对 boot_id
附带:新增 25 个检查器(t-*.py)、排版审计工具链(shot-*/ocr-*/live-*)、
版本号兜底值同步到 1.0.10、.gitignore 收纳 i18n/排版排查的一次性脚本。
41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""英文界面残留中文检查(包装 _dev/t-en-render.js)。
|
||
|
||
为什么要有这条包装:run-static.py 只自动收 `t-*.py`,
|
||
纯 JS 的检查器不包装就**根本进不了全量回归**。t-en-render.js 是
|
||
「英文界面无中文残留」这条主线的核心判据(真机 payload + 真 i18n.js
|
||
渲染 47 个顶层视图 + 顶栏时钟 + accel 子块 + 4 个独立模块),之前一直只手动跑,
|
||
等于回归里缺了最关键的一道闸。
|
||
|
||
判据本体在 JS 里(要用 Node 真跑 app.js 的渲染,Python 做不到)。
|
||
这里只负责找 node + 透传退出码 + 把红的那几行原样打出来。
|
||
"""
|
||
import glob
|
||
import os
|
||
import subprocess
|
||
import sys
|
||
|
||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||
ROOT = os.path.dirname(HERE)
|
||
JS = os.path.join(HERE, 't-en-render.js')
|
||
|
||
# ⛔ 绝不硬编码 WorkBuddy 的 node 版本目录(版本号会随升级变):
|
||
# 先按版本倒序 glob,取不到再退回 PATH 里的 node。
|
||
NODE = ''
|
||
for c in sorted(glob.glob(os.path.expanduser(
|
||
'~/.workbuddy/binaries/node/versions/*/node.exe')), reverse=True):
|
||
if os.path.isfile(c):
|
||
NODE = c
|
||
break
|
||
if not NODE:
|
||
NODE = 'node'
|
||
|
||
p = subprocess.run([NODE, JS], cwd=ROOT, capture_output=True,
|
||
text=True, encoding='utf-8', errors='replace', timeout=300)
|
||
out = (p.stdout or '') + (p.stderr or '')
|
||
for line in out.splitlines():
|
||
print(line)
|
||
if p.returncode == 0:
|
||
print('通过 1 项(英文界面 47 视图 + clock + accel + 4 个独立模块 + update 失败分支/文案钩子 无中文残留)')
|
||
sys.exit(p.returncode)
|