Skip to content

console: chrome i18n gaps beyond #5084 — raw object API name in a lookup placeholder, untranslated toolbar/filter strings, CJK list joiner in the en validation toast #5407

Description

@yinlianghui

Companion to #5084 (view-mode switcher, Sum:/Avg: footer, dialog a11y
strings). The items below are the remainder found in the same acceptance sweep
on 17.0.0-rc.2, all in console-supplied chrome that no app bundle key reaches —
deliberately excluding everything #5084 already lists.

1. Lookup placeholder interpolates the raw object API name — in every locale including en

The dependent-lookup placeholder on a create form renders the API name
instead of the object's (translated) label:

Locale Rendered
en Select crm_account first
zh-CN 请先选择crm_account
ja-JP まず crm_account を選択してください
es-ES Seleccione primero crm_account

The sentence is localized; the interpolated name is raw. Note the en row: this
is not only an i18n bug — an English user sees an internal identifier too. The
fix is presumably to interpolate the resolved object label rather than
object.name.

2. Toolbar/list chrome with no translation key

More actions, Add reaction, Clear, Close (visible button, distinct from
#5084's sr-only string) stay English in every locale. Same class as #5084;
listed here so the set is complete.

3. Dashboard filter chips and KPI sub-captions hardcoded

Filter chips read Owner: / Lead Source: while their values localize
correctly (全部 / すべて / Todo); KPI stat cards carry English sub-captions
(Total Amount / Accounts / Contacts / Leads). Widget titles/descriptions
translate fine, which is what makes the mismatch conspicuous.

4. The en validation toast joins field names with the CJK enumeration comma

Please check the highlighted fields: Subject、Account、Status…

The validation.formInvalid joiner is hardcoded 、 (U+3001) — wrong in
English, right by accident in zh/ja. Related nit, same layer: the es-ES
template lacks gender agreement (Cuenta es obligatorio → obligatoria).

All four items are unreachable from app metadata; every one needs a console
bundle key (the console already ships bundles for zh-CN/ja/es/…, per #5084).

Downstream: objectstack-ai/hotcrm#682.

Activity

  1. self-assigned this
    on Aug 5, 2026
  2. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    CollaboratorAuthor

    认领:objectui 分片 PM 滚动补位第 2 单(bug 优先口径;#3316 验收后空槽即补)
    会话:session_01GTRjn8xBqp75dk7kFupVRt
    分支:claude/issue-5407-console-chrome-i18n(代码落地 objectui 仓,按 repo:objectui 路由)
    Worktree:objectui-issue-5407
    域:objectui 分片(components / plugin-detail / plugin-dashboard / i18n locales)
    文件面(已逐项定位,越界即停):① lookup placeholder → packages/components/src/renderers/form/form.tsx;② toolbar/chrome 串 → packages/components/src/renderers/action/action-menu.tsx、layout/containers.tsx、packages/plugin-detail/src/ReactionPicker.tsx、RecordActivityTimeline.tsx;③ dashboard filter chips / KPI 副标题 → packages/plugin-dashboard/src/;④ validation.formInvalid joiner + es-ES 性一致 → packages/i18n/src/locales/*.ts(仅词条,⛔ 不碰 provider.tsx —— 另一 dev 在飞 #5406)+ 相应测试 + .changeset/*.md

    排程注记:队列中的 objectui#3272 / #3303 同碰 form.tsx,已记串行在本单之后。与 #5084(list-view chrome)刻意互斥,不重复处理其清单。


    Generated by Claude Code

  3. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    CollaboratorAuthor

    PM 验收:ACCEPT → objectui PR #3379 已转 ready + auto-merge(CI 15/15 全绿),跟到 MERGED。逐项结论:

    衍生 5 单已分诊:#5425(objectui 有文件含裸 U+0000、全仓无 NUL 门禁 —— 已入队,建议优先)、#5427、#5430(入队)、#5428(决策位)、#5432(finding)。

    objectui 分片 PM session_01GTRjn8xBqp75dk7kFupVRt


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions