You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Filed by the PM seat from the corpus-wide survey in PR #192 (card #144), which the ruling on that card asked for and reserved the filing of. Every number below was re-verified by the seat against opencc-js and the corpus at 5d4b0b6, not copied from the survey.
Blocked on #144 / PR #192 landing — that PR builds the override mechanism this card would use, and the two would collide on the same table.
What
s2twp's TWPhrases group contains a handful of entries that are not contested vocabulary at all. They are mechanical over-substitutions: the preset appends or swaps a word fragment that is simply wrong in Taiwanese usage, in any register, for any audience. Same shape as the 許可權 defect #144 just fixed — only rarer, which is why nobody noticed.
zh-Hans
twp ships
ordinary Taiwanese
occurrences
what went wrong
全局
全域性
全域
4
a spurious 性 turns a noun into an adjective
扩展
擴充套件
擴充 / 擴充功能
4
a spurious 套件 ("package")
适配器
介面卡
配接器
3
介面卡 is a network interface card — different hardware entirely
and every one is live in the built Traditional corpus at exactly those counts (全域性 4, 擴充套件 4, 介面卡 3, 控制元件 2, 映象 1).
Plus one the seat has already ruled on: 脚本
Seat ruling: normalize on 腳本, by shadowing the TWPhrases entry — the same identity-entry mechanism PR #192 built for 權限 and 實例. 指令碼 is the Microsoft-glossary rendering; 腳本 is the ordinary Taiwanese word, and in this corpus the referent is always shell/webhook glue in an automation argument, never a screenplay.
The more important half of this is a defect regardless of which term wins: the corpus already ships both.
指令碼 26 occurrences
腳本 5 occurrences
That split is not editorial. It is the same straddling-phrase accident PR #192 diagnosed for the locative 里: the two-character STPhrases entry 本里 matches across a word boundary in 脚本里, which blocks the phrase layer as well as the character layer, so five sites escape the 指令碼 substitution. Whichever term is chosen, the inconsistency has to close in the same pass.
Shape of the fix
PR #192 leaves behind exactly the mechanism this needs, and (per the patch round on it) a shared override module that both scripts/gen-zh-hant.mjs and src/lib/zhconvert.ts load. Each entry here is:
one identity or replacement entry in that shared table, and
one fixture case, so a preset upgrade cannot silently reinstate it.
Nothing else. No content file is hand-edited; the Traditional locale stays fully generated.
Acceptance
All five artifact spellings go to 0 in the built output (dist, not just the MDX — gen-zh-hant: ship 權限/實例 and the straddled locative 裡 #192's patch round is the reminder that these two are different populations), and their intended forms appear at the same counts.
指令碼 → 0 and 腳本 → 31, matching 脚本 in the zh-Hans sources.
Every changed byte explained by the ruled terms alone, checked mechanically the way gen-zh-hant: ship 權限/實例 and the straddled locative 裡 #192 checked its own: apply only the ruled substitutions to the main version of each file and require byte equality.
git status --porcelain empty after pnpm build.
Fixture ablation: remove one override, show it red.
Not in scope
The genuinely contested Microsoft renderings — 元数据 → 後設資料 (174 occurrences), 类型 → 型別 (67), 发布 → 釋出 (48), 审核 → 稽核 (40) and the rest — are a different question and are filed separately. This card is only the ones that are wrong on their face.
Filed by the PM seat from the corpus-wide survey in PR #192 (card #144), which the ruling on that card asked for and reserved the filing of. Every number below was re-verified by the seat against
opencc-jsand the corpus at5d4b0b6, not copied from the survey.Blocked on #144 / PR #192 landing — that PR builds the override mechanism this card would use, and the two would collide on the same table.
What
s2twp'sTWPhrasesgroup contains a handful of entries that are not contested vocabulary at all. They are mechanical over-substitutions: the preset appends or swaps a word fragment that is simply wrong in Taiwanese usage, in any register, for any audience. Same shape as the 許可權 defect #144 just fixed — only rarer, which is why nobody noticed.twpships全局扩展适配器控件镜像Verified directly:
and every one is live in the built Traditional corpus at exactly those counts (全域性 4, 擴充套件 4, 介面卡 3, 控制元件 2, 映象 1).
Plus one the seat has already ruled on:
脚本Seat ruling: normalize on 腳本, by shadowing the
TWPhrasesentry — the same identity-entry mechanism PR #192 built for 權限 and 實例.指令碼is the Microsoft-glossary rendering;腳本is the ordinary Taiwanese word, and in this corpus the referent is always shell/webhook glue in an automation argument, never a screenplay.The more important half of this is a defect regardless of which term wins: the corpus already ships both.
That split is not editorial. It is the same straddling-phrase accident PR #192 diagnosed for the locative 里: the two-character
STPhrasesentry本里matches across a word boundary in脚本里, which blocks the phrase layer as well as the character layer, so five sites escape the指令碼substitution. Whichever term is chosen, the inconsistency has to close in the same pass.Shape of the fix
PR #192 leaves behind exactly the mechanism this needs, and (per the patch round on it) a shared override module that both
scripts/gen-zh-hant.mjsandsrc/lib/zhconvert.tsload. Each entry here is:Nothing else. No content file is hand-edited; the Traditional locale stays fully generated.
Acceptance
dist, not just the MDX — gen-zh-hant: ship 權限/實例 and the straddled locative 裡 #192's patch round is the reminder that these two are different populations), and their intended forms appear at the same counts.指令碼→ 0 and腳本→ 31, matching脚本in the zh-Hans sources.mainversion of each file and require byte equality.git status --porcelainempty afterpnpm build.Not in scope
The genuinely contested Microsoft renderings — 元数据 → 後設資料 (174 occurrences), 类型 → 型別 (67), 发布 → 釋出 (48), 审核 → 稽核 (40) and the rest — are a different question and are filed separately. This card is only the ones that are wrong on their face.