Skip to content

docs(i18n): the normative i18n protocol page has the same inline I18nLabel locale-map omission the translations guide just fixed #16251

Description

@claude

Filed unassigned as an out-of-scope finding while implementing #15984 (PR #16250). Deliberately unlabelled — triage owns domain:* and the grading.

The gap

#15984 fixed the user-facing guide (content/docs/ui/translations.mdx), which described only one localisation route and never mentioned the second authorized form of an I18nLabel — the inline locale map, label: { en: 'Members', 'zh-CN': '成员' }.

content/docs/protocol/kernel/i18n-standard.mdx has the same omission, and it is the page the guide links as the normative protocol. Measured on origin/main at 1ebde4953, over the whole 1020-line file:

Why this is not simply covered by #15984

The two pages answer different questions and a reader arrives at them for different reasons. The guide now carries the practical passage — both forms authorized, rendered but never extracted, coverage counts the locales the map carries, no bundle key exists and none is synthesised from a node's position in the component tree (maintainer ruling 2026-09-03, #14749). But a page that calls itself the normative protocol and declares the label contract, while omitting one of the two forms that contract authorizes, is the authoritative document being the incomplete one — which is the failure mode packages/spec/src/ui/i18n.zod.ts names in its own header as the reason the schema was widened in the first place.

The narrow question for triage is whether the normative page should state the union at all, or should defer to the guide and the generated reference pages. That is a scope call, not something a docs implementer should decide alone, which is why this is a card and not a rider on PR #16250.

Scope note

content/docs/protocol/kernel/i18n-standard.mdx was explicitly off the declared file surface for #15984 and was not edited by PR #16250. Nothing here is a defect in that PR.

Sources

Related: #15984, #14749, #15435.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions