LGTM, except that it should take the foreign-status object as well, surely. That will give an indication of which localization catalogue to look in.
Can we agree on something like this for the next draft?
(let ((localize (foreign-status-ref st 'localize-message)))
(or (and localize
(or (localize "de-DE")
(localize "en-GB")
(localize "en-US")))
(foreign-status-ref st 'message)))
I agree to withdraw my proposal for a 'message lambda taking a variable
number of arguments. 'localize-message should always be either #f or a
lambda. The lambda should always take exactly one argument, no more no
less. BCP 47 string.