Description
Probably by having overloaded methods etc that return TranslatableString instead of just String, eg
public class RecoverableException {
public RecoverableException(TranslatableString tr)
public TranslatableString getTranslatableMessage() { ... }
}
~~~~
and
public interface DomainObjectContainer {
public void informUser(TranslatableString tr);
...
}
etc