refactor(pages,i18n): M99 纯搬移 —— 导航表抽 pages/nav.rs、设置页拆目录、catalog 按域拆开
- pages/mod.rs 400 -> 356 行:NAV 表与组件版 rail 搬进 pages/nav.rs(NAV 可见性变 pub(crate),
只为让 pages/tests.rs 的三条断言原样保留)
- pages/settings.rs -> pages/settings/{mod,frame,general,appearance,java,download,ai,tests}.rs:
mod.rs 只留「分组注册表 + 选中分组 + 内容分发」,一组一个文件,为四条 section 线各留位置
- i18n catalog.rs 310 -> 273 行:条目表按域拆到 catalog/<域>.rs,catalog.rs 留 catalog! 宏、
装配链、Catalog 与对外 API;新增 catalog/golden.rs(拆分前 key->译文 全量快照)守门
- 行为/文案/样式零变化:pages_demo 的 instances/settings × 浅/深 四张图逐字节相同
This commit is contained in:
1 parent
4b1471a60d
commit
330f7216fd
29 files changed
+1173
-541
No files matched your search
@@ -162,3 +162,40 @@ fn render_substitutes_and_keeps_unfilled_placeholders_visible() {
|
||||
assert_eq!(zh.text(Key::InstancesNew), "新建实例");
|
||||
assert_eq!(zh.lang(), Lang::ZhCn);
|
||||
}
|
||||
|
||||
/// M99:把单张条目表按域拆到 `catalog/<域>.rs` 之后,`key -> (en, zh-CN)` 必须**逐条逐字节**不变。
|
||||
///
|
||||
/// **抓得住**:① 某个 key 整条被搬丢(金表有、现在没有 ⇒ 条数或 key 名对不上);② 两条 key 的译文
|
||||
/// 互抄 / 同 key 被覆盖成别人的译文(该行 en 或 zh 不等);③ 某条译文改了一个字符(逐字节比,
|
||||
/// **不是**数条数——「A 丢了一条、B 复制成两条」条数照旧);④ 域的顺序被调换(`Key` 的 `Ord` 与
|
||||
/// `entries()` 的声明顺序都靠它,金表按原顺序比)。
|
||||
/// **抓不住**:译文本身翻得对不对——金表是「拆分前那一份」的快照,只能证明没变,不能证明翻得好。
|
||||
///
|
||||
/// 金表怎么来的:拆分前在这里临时加过一条 `println!("GOLD\t{}\t{}\t{}", …)` 的用例,把
|
||||
/// `Key::ALL` ×(`Catalog::of(En)`, `Catalog::of(ZhCn)`)导出成 72 行 TSV,再原样抄成
|
||||
/// `catalog/golden.rs`;那条导出用例随后已删除(不在提交里)。
|
||||
#[test]
|
||||
fn split_keeps_every_translation() {
|
||||
let en = Catalog::of(Lang::En);
|
||||
let zh = Catalog::of(Lang::ZhCn);
|
||||
let actual = Key::ALL
|
||||
.iter()
|
||||
.map(|key| (key.name(), en.text(*key), zh.text(*key)))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
assert_eq!(
|
||||
actual.len(),
|
||||
super::golden::GOLDEN.len(),
|
||||
"key 条数与拆分前不一致(某条被搬丢,或多出来一条)"
|
||||
);
|
||||
|
||||
for (index, expected) in super::golden::GOLDEN.iter().enumerate() {
|
||||
let got = actual[index];
|
||||
assert_eq!(
|
||||
got.0, expected.0,
|
||||
"第 {index} 条的 key 变了:拆分的域顺序被打乱,或某条被搬到了别处"
|
||||
);
|
||||
assert_eq!(got.1, expected.1, "{} 的英文译文变了", expected.0);
|
||||
assert_eq!(got.2, expected.2, "{} 的中文译文变了", expected.0);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user