Skip to content

showcase: eight authored validation messages on showcase_account / showcase_task are not on the translation channel, so they refuse in English on a zh-CN session #14518

Description

@hotlong

What

showcase_account and showcase_task declare seven and one author-written
validations[].message respectively, and none of them is on the #14253 translation
channel. On a zh-CN session those refusals arrive in English while the platform's own
built-in refusals (which have shipped zh-CN since #3957) arrive in Chinese — two
languages inside one error envelope.

This is the same defect #14311 fixed for showcase_project. That card's scope was the
New Project wizard, so only showcase_project's four rules were put on the channel
(PR #14517). The remaining eight were found while doing it and are recorded here rather
than widened into that PR.

Where

Untranslated authored rule messages, none of which has a
objects.OBJECT._validations.RULE.message entry in
examples/app-showcase/src/system/translations/index.ts:

  • examples/app-showcase/src/data/objects/account.object.tsaccount_lifecycle,
    tax_id_format, billing_email_format, support_config_shape,
    churn_reason_consistency and its two nested conditional branches
    (churn_reason_present, churn_reason_absent).
  • examples/app-showcase/src/data/objects/task.object.tstask_status_flow.

examples/app-crm has no _validations block at all, so every authored message in that
app is in the same position; whether the CRM demo is meant to be localised at all is a
separate question and is not assumed here.

Note that a nested conditional branch carries its own name and is addressed by that
name — the wrapping rule's message never reaches a user — so the two churn_reason_*
branches each need their own entry.

Why it is worth doing

The showcase is the app people read to learn what a correct ObjectStack app looks like.
An authored message with no bundle entry is the one way a refusal escapes the caller's
language, and the channel to fix it already exists and is already demonstrated on
showcase_project.

Suggested shape

Mirror what PR #14517 did for showcase_project: add en + zh-CN _validations
entries for each rule, and extend the pin in
examples/app-showcase/test/new-project-wizard-initial-status.test.ts (which today
asserts the invariant for showcase_project's whole rule set) to cover these objects
too — or lift it into a bundle-wide check so a newly declared rule without a translation
fails rather than rots.

Found while implementing #14311.

Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions