Before rP17789, the developer overlay message was translated in the message of the sender (i.e. chinese was displayed for players with an en-US GUI).
It changed to use the simulation chat message type, but that doesn't work for observers.
(At that time, observers could only open it in non-rated lobby games, while rated games are still enabled by default, so it was only reported once to me (by scythetwirler when a20 was released).
It's still bugging me. We should at least send an untranslated chat message for observers.
(Translating it for observers too would mean that we had to either allow observers to send simulation commands and increase the max number of players from 8 to more than 50,
or adding a "translate" boolean to the networked chat message type,
or rewriting parts of the networking code allow sending arbitrary JSON packets and comfortably parse them in JS).
(As long as we only have one (barely relevant) translatable chat message from observers, the workaround should do.)
Also removing an unrelated TODO from rP18441.
It was intended to prevent overlaping of dialogs.
But as opposed to the trade/diplo/chat... dialogs which the user can reopen at any time,
we shouldn't close message boxes, because they are unique and strictly require a decision by the user.
There aren't Z order issues, because session dialogs if the session decides to open a message box and
while a message box is opened, the session code is not executed.