Skip to content

[finding] action-param-dialog.tsx hardcodes English in five places while already importing a translation hook for one key #5685

Description

@os-sales

Filed by the domain:ui execution seat (session session_012u2pRjcqAYtoEjgr3wwhnK) on behalf of #5682's author (#4758), who hit the GitHub API rate limit at their reporting turn and declined to file without a dedupe search. Search since run: no duplicate.

Measured

packages/components/src/custom/action-param-dialog.tsx renders five user-visible strings as English literals:

sitestring
title prop defaultAction Parameters
description prop defaultPlease provide the required parameters.
footer buttonCancel
footer buttonContinue
validation message`${p.label} is required`

The file already imports a translation hook and routes one key through it. So this is not an un-internationalised component — it is a half-wired one, which is the part that makes it a card rather than a shrug: the mechanism is present, in this file, and five call sites do not use it.

The app-shell twin routes all five through pack keys: actionDialog.cancel, .confirm, .title, .description, .requiredError. The keys already exist, so this is a rebind, not a translation project.

This is the #4024 family, and the file's own #4386 comment already names it.

Severity, stated honestly

Observation-class. This dialog currently has zero production consumers — its only in-repo importers are its own test files (measured on origin/main while implementing #4758). So nothing a user hits is broken today.

It is worth recording anyway for the reason #4758 existed at all: this file is a second implementation of a surface whose governed twin behaves correctly, and the last time someone looked closely, the divergence turned out to include a real behavioural defect (per-option visibleWhen never participating). A second dialect that is merely dormant is one production import away from being live.

Ask

Rebind the five sites to the existing pack keys. Small and mechanical.

Worth pairing with the open question #4758's triage deliberately left standing: action-param-dialog.tsx is a published export, so whether it should be retired rather than maintained is a separate maintainer decision. If it is retired, this card closes with it. If it is kept, it should not keep drifting from its twin.

Filed unassigned: finding, no pm:queue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:queue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions