Repository navigation
Description
Summary
On a project whose default language is en_US with de_DE also enabled, describe microflow prints the concurrency
error message (disallow concurrent execution error message '…') in its de_DE translation, with the comment
-- also translated into en_US; replaying this line keeps only the one shown. A rebuild from that output (drop microflow and create microflow in one script) then stores the German text under en_US as well, so the English
message is gone. check, exec and mx check report nothing. A show message text in the same flow, translated the
same way, is described in en_US and keeps both translations through the same rebuild.
Environment
- mxcli v0.29.0 (2026-10-30T17:00:32Z), Windows amd64
- Mendix Studio Pro 11.12.6, MPR v2
- Project languages:
en_US(default) andde_DE
Steps to reproduce
-
On a project with
DefaultLanguageCode: 'en_US'andde_DEadded as a language, run:create module MyModule; create microflow MyModule.SaveOrder () returns Boolean disallow concurrent execution error message 'Another save is running. Try again in a moment.' begin show message 'The order was not saved.' type Error blocking; return true; end; / create or modify translations in MyModule for de_DE ( 'Another save is running. Try again in a moment.' as 'Ein anderes Speichern läuft. Versuchen Sie es gleich noch einmal.', 'The order was not saved.' as 'Die Bestellung wurde nicht gespeichert.' );The unit now holds
ConcurrenyErrorMessagewith the itemsen_US"Another save is running. …" andde_DE"Ein
anderes Speichern läuft. …", in that order, and the show message text likewise. -
describe microflow MyModule.SaveOrderprints:create or modify microflow MyModule.SaveOrder () returns Boolean disallow concurrent execution error message 'Ein anderes Speichern läuft. Versuchen Sie es gleich noch einmal.' -- also translated into en_US; replaying this line keeps only the one shown begin show message 'The order was not saved.' type Error blocking; return true; end; -
Run that output as a rebuild:
drop microflow MyModule.SaveOrder;followed by the printed statement withcreate microflowin place ofcreate or modify microflow, in one script.checkpasses,execreports "Dropped" and
"Created".
Expected
describe prints the concurrency message in the project's default language, en_US, as it does for the show message
text, so that a rebuild from it keeps the source text. A rebuild keeps both translations, or at least leaves the
en_US item with its English text.
Actual
After step 3 the unit holds ConcurrenyErrorMessage with en_US "Ein anderes Speichern läuft. …" and de_DE "Ein
anderes Speichern läuft. …". The English message is lost, and English users get the German text. The show message text
still holds en_US "The order was not saved." and de_DE "Die Bestellung wurde nicht gespeichert.".
mx check afterwards reports no new error or warning. Replaying the describe output unchanged as create or modify
(without the drop) answers "Unchanged microflow" and keeps both items, so only a rebuild loses the text.
Notes
- The language selection for this one property seems to differ from the one used elsewhere in
describe(default
language, thenen_US, then the first non-empty one, as for describe PAGE outputs default Dutch placeholder 'Tekst' instead of actual widget text content #702). - The comment says the replay "keeps only the one shown", but the shown text is written into the
en_USitem while
thede_DEitem keeps it too, so the replay does not drop the other language; it overwrites the default one.
Activity