Skip to content

[17.0-rc][疑似平台] Action param dialog keeps the raw English action label as its title while every other string in it localizes #680

Description

@yinlianghui

Found during the 17.0 GA acceptance sweep on @objectstack/* 17.0.0-rc.2 (current main, commit 5a78f88). Read-only check — no data written.

Symptom

The page button for an action is correctly localized, but the parameter dialog it opens is titled with the raw English label in every non-en locale. Everything else inside the same dialog — subtitle, all five param labels, Cancel/Confirm buttons — is localized correctly.

Locale Button label (correct) Dialog title (wrong)
zh-CN 记录通话 Log a Call
ja-JP 電話を記録 Log a Call
es-ES Registrar llamada Log a Call

Reproduction

  1. Boot HotCRM on rc.2, log in as admin@objectos.ai.
  2. Avatar menu → Preferences → Language → 中文 (or 日本語 / Español).
  3. Open any crm_account record detail. The 记录通话 button is translated.
  4. Click it. The dialog header reads Log a Call.

Same for log_meeting / schedule_meeting, i.e. every object action that declares params.

Analysis

The dialog header appears to resolve the action's raw label from the action metadata instead of the _actions.<name>.label translation key that the button itself resolves. The translation entry exists and is being used one level up in the same view, so this is a lookup path in the dialog component, not missing translation data.

Suspected console/platform side rather than app metadata: the app bundle supplies the key, the button consumes it, only the dialog does not.

Evidence

Screenshots (acceptance run R3): zh-CN-5-param-dialog.png, ja-JP-5-param-dialog.png, es-ES-5-param-dialog.png — button and dialog captured in the same frame. Dialogs were opened and closed with Escape; no action was executed and no record was written.

Scope

Affects every object action with parameters, in all three non-en locales. Cosmetic but highly visible — it is the first thing a non-English user sees after clicking a translated button.

Refs #494

Activity

  1. added
    bugSomething isn't working
    upstream:objectstackBlocked on / caused by the ObjectStack platform — tracked upstream
    on Aug 5, 2026
  2. hotlong commented on Aug 14, 2026

    @hotlong
    Contributor

    GA browser probe — NOT REPRODUCIBLE on 17.0.0 GA · closing

    Version — @objectstack/* 17.0.0 GA (incl. @objectstack/console 17.0.0), hotcrm @ d4ddee0.

    Probe — fresh database, objectstack dev -p 4003 --seed-admin, real Chromium 141 via Playwright, one browser context per locale (Accept-Language + context locale), signed in as admin@objectos.ai. Opened a crm_account record detail (Acme Corporation), clicked the Log a Call page button, and read the first line of the [role="dialog"] — i.e. the dialog title, the exact string this card is about.

    Result — the dialog title is localized in all three non-en locales. The card's table, re-measured:

    Locale Button label Dialog title on rc.2 (reported) Dialog title on 17.0.0 GA (measured)
    zh-CN 记录通话 Log a Call ❌ 记录通话 ✅
    ja-JP 電話を記録 Log a Call ❌ 電話を記録 ✅
    es-ES Registrar llamada Log a Call ❌ Registrar llamada ✅

    Full zh-CN dialog dump, in DOM order — every string localized, title included:

    [0]  记录通话              ← dialog title (was `Log a Call`)
    [1]  请填写以下信息以继续操作。
    [2]  通话主题*
    [3]  时长(分钟)
    [4]  联系人参与者
    [6]  内部参与者
    [8]  通话记录
    [9]  取消
    [10] 确认
    

    ja-JP [0] 電話を記録 / [1] 続行するために必要な情報を入力してください。 / [9] キャンセル / [10] 確認.
    es-ES [0] Registrar llamada / [1] Ingrese la información requerida para continuar. / [9] Cancelar / [10] Confirmar.

    Falsification guard — why this green is real

    "The dialog opened" would not have been evidence that a title localized, so each run asserted the locale actually took before reading the title:

    • the localized button label was present (记录通话 / 電話を記録 / Registrar llamada), and
    • the literal Log a Call was absent from the whole page — in all three locales.

    If the defect were still live, [0] would read Log a Call while [1]–[10] stayed localized: the precise split this card described. It does not.

    Screenshots — 680-param-dialog-zh-CN.png (dialog headed 记录通话 over the localized account detail), plus 680-param-dialog-ja-JP.png and 680-param-dialog-es-ES.png.

    Probed under #1154 (parent #1150).


    Generated by Claude Code

  3. added and removed on Sep 9, 2026
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

    bugSomething isn't workingpriority:p2Medium: important, M3upstream:objectstackBlocked on / caused by the ObjectStack platform — tracked upstream

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions