Skip to content

[观察] 磁贴口径规则有两个盲区:只扫 analytics/dashboards 三页(service 页的同类引用无人检查),且 TILE_WORDS 不认 zh-Hant 实际在用的「磁磚」 #949

Description

@yinlianghui

发现自 #937 / PR #947 的实施过程(改 service/cases.zh-Hant.mdx 的磁贴引用时,发现它写的是「磁磚」而不是兄弟页的「磁貼」,顺着查了那条规则到底扫哪些页、认哪些词)。

基线 origin/main = 11f62429(平台 17.0.0-rc.3)。这是观察类:目前没有一条失实的磁贴引用因此漏网 —— 记录的是「无人检查」这件事本身,与 #809 同族。

盲区一:规则只扫 analytics/dashboards*.mdx 三页

test/docs-drift.test.ts 里那条「every **Name** tile / **Name** 磁贴 reference names a real tile」的规则,读的是 PAGES,而 PAGES 来自 DOC_PAGES:366-:368):

const DOC_PAGES = [
  'content/docs/analytics/dashboards.mdx',
  'content/docs/analytics/dashboards.zh-Hans.mdx',
  'content/docs/analytics/dashboards.zh-Hant.mdx',
];

磁贴引用不只写在那三页上。service 侧至少有这些(本 PR 之后的行号):

  • content/docs/service/sla-and-escalation.mdx:126 :142the **SLA Violations** tile on Service Overview
  • content/docs/service/sla-and-escalation.zh-Hans.mdx:126 :142.zh-Hant.mdx:126 :142**SLA Violations** 磁贴 / 磁貼
  • content/docs/service/cases.mdx:134 :186cases.zh-Hans.mdx / .zh-Hant.mdx 同两处

这些引用与 dashboards 页上的引用是同一件事、同一种失效方式(指向一个不存在的磁贴),但规则一行也没读它们。真实证据:#912 / #917 那批单子里,Breached SLA / Critical Cases 这两个「磁贴名」正是在 service 页上失实的,靠人眼撞见(#914 / #915 / #917),不是靠这条规则。

盲区二:TILE_WORDS 不认 zh-Hant 实际在用的「磁磚」

test/docs-drift.test.ts 的词表是:

const TILE_WORDS = ['tiles', 'tile', '磁贴', '磁貼'];

content/docs/service/cases.zh-Hant.mdx 通篇用的是**「磁磚」**(:134:178:186),不是「磁貼」:

- **Critical Cases** 與 **Breached SLA** 是指標磁磚,不是列表。
… 數量則看服務概覽上的 **SLA Violations** 磁磚。

其余 zh-Hant 页(analytics/dashboards.zh-Hant.mdx 15 处、sla-and-escalation.zh-Hant.mdx 3 处、guides/email-and-calendar.zh-Hant.mdxreference/faq.zh-Hant.mdxsales/activities.zh-Hant.mdxsales/meetings-and-calls.zh-Hant.mdx)都写「磁貼」。所以这里其实是两件事叠在一起:

  1. zh-Hant 侧术语自身不一致 —— 一页「磁磚」,其余全「磁貼」;
  2. 即便把盲区一修好(把 service 页纳入扫描范围),cases.zh-Hant.mdx 上的引用仍然读不到,因为「磁磚」不在词表里。

第二点尤其值得记下来,因为 #725 加的那条自检(the tile reference extraction reads every locale the page ships:484)会逐词探测 TILE_WORDS 里的每一个词 —— 它保证「词表里的词都能被正则读到」,但它无法发现词表本身漏了一个页面在用的词。规则对自己的词表是自洽的,对现实不是。

为什么记而不修

现在没有一条失实引用因此漏网:cases.zh-Hant.mdx 上那两处引用的 SLA ViolationsCritical Cases 都是真实磁贴(src/dashboards/service.dashboard.ts)。所以这是「守卫盲区」,不是「已发生的缺陷」—— 与 #809(共享规则表口径规则只读英文页)、#802(文档里的状态名/字段标签与语言包是否一致,无人检查)同族,交 PM 一并排期时合并考虑更划算。

修的时候要注意什么

  • 把 service 页纳入 PAGES 之前,先想清楚 ALL_TITLES 的口径:dashboards 页上的引用可以按「当前 section 对应的那个 dashboard」收窄,跨页引用只能对全仓磁贴标题的并集,规则强度会降一档 —— 这是设计取舍,不是实现细节。
  • 加「磁磚」进 TILE_WORDS 与「把 cases.zh-Hant.mdx 统一改成磁貼」是两个不同的决定:前者承认两种写法并存,后者要求 zh-Hant 术语收敛。倾向后者的话,词表仍应加上「磁磚」作为兜底,否则下一个译者写回去就再没人看得见。
  • TILE_WORDS 的注释已经写明「Entries are plain words: they are joined into an alternation verbatim」,加词是安全的。

Refs #937 #947 #725 #809 #802

Metadata

Metadata

Assignees

Labels

pm:dispatchedDispatched to a dev agent by /pm-dispatch

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions