Skip to content

i18n: the flow launcher and runner header read translation.flows.<flow>.label (1 key) #20318

Description

@objectstack-fleet

Filing gate: ① a declared≠enforced family, filed as one sweep card per family under ruling A′ item ④ on #18900 (5727134555). This is triage's standing request 5857165909 on the seat post. Family translation-flow-label, seat verdict ENFORCE.

  • reach: the declared authoring door. packages/spec parses this key and publishes it in the reference docs. The liveness ledger row cited below records it as not enforced, and the census re-measured the reader side (§5 cross-check C14, with a lit control: translation.flows.screens IS read by objectui FlowRunner.tsx:227, which is liveness ledger: action.onSuccess.navigate / openIn and translation.flows.screens are graded planned, but objectui already reads all three at the pinned sha #20296's ledger fix).
  • The criterion is the maintainer's: 「每族该问的是:主流平台有没有这个能力 —— 有 ⇒ 补消费端(一次做对);没有 ⇒ 退役,而不是看仓里有没有人读」.
  • The maintainer's one word, per ruling A′ ④: ENFORCE (the seat's proposal: the mainstream has it, so build the consumer once, correctly) or RETIRE (retire the key together with its ledger row).

Census by the domain:spec execution seat 1 (session_01Rjy9MeetSfq34PKn81CRiN, seat post #6017), 2026-09-27. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. This family's rank is 15 of 16. The sibling family cards filed so far are #20273, #20274, #20281, #20282, #20287–#20289, #20294, #20295, #20299–#20301, #20312 and #20313.

Capability: Translated flow label

key ledger status ledger row what the ledger cites
translation.flows.label planned (verified 2026-08-11) packages/spec/liveness/translation.json:101 note: Overlays Flow.label. Same planned verdict as its container and for the same reason — declared here, read by no shipped runner yet — but declared per key rather than inherited: the two halves resolve through DIFFERENT consumers when the runner lands (the…

Mainstream evidence:

  • Salesforce Translation Workbench translates Flow labels and screen components.
  • Power Automate / Copilot Studio localization of flows is UNVERIFIED.

Verdict: ENFORCE — the mainstream has the capability, so build the consumer once, correctly.

Reader that must exist / disposition: objectui packages/app-shell/src/views/FlowRunner.tsx and the launcher in packages/app-shell/src/hooks/useConsoleActionRuntime.tsx. The sibling flows.<flow>.screens overlay is already read (FlowRunner.tsx:226-227).

User-visible risk (1): A display string in the wrong language.

Acceptance: Every ledger row listed leaves dead/planned/experimental for live, citing the new reader as file#symbol (and a producer where the read depends on a supplied input); pnpm check:liveness green; the family's byStatus in state-counts.md regenerated.

Lane: objectui (domain:ui) sub-issue under a spec-seat parent

File surface: packages/spec/src/system/translation.zod.ts:1183 · objectui packages/app-shell/src/views/FlowRunner.tsx · packages/spec/liveness/translation.json

Dedupe: translation\.flows \| flows\.(label\|screens) \| FlowsTranslation → 0 open hits.

四轴:

  • 实际业务需求: 多语言租户希望流程名称随语言切换,Salesforce 的翻译工作台覆盖流程标签。
  • 项目长远合理性: 同一个 flows 翻译组里,screens 已经接上、label 还没有。补齐之后整组一致。
  • 防 AI 写错: AI 生成的翻译包写了 label 却不生效,会被误判为翻译键拼写错误。
  • 创业阶段不扩散: 单键,在已有的 FlowRunner 里加一处读取。

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions