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
- Boot HotCRM on rc.2, log in as
admin@objectos.ai.
- Avatar menu → Preferences → Language → 中文 (or 日本語 / Español).
- Open any
crm_account record detail. The 记录通话 button is translated.
- 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
Found during the 17.0 GA acceptance sweep on
@objectstack/*17.0.0-rc.2 (currentmain, 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
labelin every non-enlocale. Everything else inside the same dialog — subtitle, all five param labels, Cancel/Confirm buttons — is localized correctly.Log a CallLog a CallLog a CallReproduction
admin@objectos.ai.crm_accountrecord detail. The 记录通话 button is translated.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
labelfrom the action metadata instead of the_actions.<name>.labeltranslation 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-
enlocales. Cosmetic but highly visible — it is the first thing a non-English user sees after clicking a translated button.Refs #494