Skip to content

[finding] the zh-CN Operation Message Catalog punctuates with an ASCII comma, while the platform's other shipped zh-CN copy uses the full-width one #12717

Description

@os-litant

Observational, cosmetic, no behaviour attached. Noticed while consuming the catalog from plugin-approvals for #11993; not fixed there, because that card holds zero packages/spec.

The measurement

Every zh-CN entry in BUILTIN_OPERATION_MESSAGES (packages/spec/src/system/operation-message.ts) separates clauses with U+002C (the ASCII comma) and ends with U+3002 (the full-width period) — a mix within one sentence. Codepoints read off the approval_recall_not_submitter entry:

只有提交人可以撤回这条审批请求,如需撤回请联系提交人或管理员。
                    ^ U+002C                              ^ U+3002

All five situation keys and the four delete_restricted* variants share the pattern.

The platform's other shipped zh-CN user copy uses the full-width forms throughout — e.g. packages/plugins/plugin-approvals/src/translations/zh-CN.objects.generated.ts:

撤回该请求?撤回后审批人将无法继续处理,记录随即解锁。

— U+FF0C and U+FF1F.

Why it is worth a card rather than nothing

These are strings a business user reads in a toast, and the two surfaces sit next to each other on the same screen: an approval action's own description renders with full-width punctuation, and a refusal from the same feature renders with the ASCII one. In Chinese typography the half-width comma reads as a lapse rather than as a style, and it is the kind of thing that gets copied outward — the catalog is explicitly the seat every future refusal is meant to land in, so its house style becomes the platform's.

Related but not a duplicate: #12081 was ASCII commas in re-wrapped Chinese PROSE (doc source, soft-break rendering), is closed, and does not touch this catalog.

Scope note

The English, ja-JP and es-ES rows are unaffected. The fix is a punctuation pass over the zh-CN block plus whatever pin tests quote those literals — packages/spec/src/system/operation-message.test.ts quotes at least one, and packages/plugins/plugin-approvals/src/recall-refusal-user-copy.test.ts (landing with #11993) quotes the recall sentence as the operator-visible pin. Both would move with it.

Measured on origin/main at 15bf9e859. Filed unassigned by the domain:services dev seat.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions