I build an app with following layers:
- WEB presentation layer
- Business Logic Layer - BLL - called from WEB UI through HTTP web services
- WindowsService - Runtime - called from BLL through net.pipe
BLL can also be called from 3rd party for integration into other customer's systems.
Let's say that there is an validation error that happens in the Runtime or even BLL. Where would be better to put translations:
- in the exception message - means that we must send UICulture from WEB layer to lower layers
- BLL and Runtime are returning error codes or custom Exception derived types and translation is performed in WEB UI layer
- some other method
What is the best practice for supporting multiple languages in SOA architectures ?
EDIT: I should probably use the term tiers instead of layers.
- WEB UI tier is implemented in ASP.NET web forms and will be deployed on server A under IIS.
- BLL and Runtime will be deployed on server B but are separated by process boundaries (BLL runs under ASP.NET worker process because of WCF services and Runtime runs as separated windows service process).