Monday, July 16, 2007

Internationalization and Localization

Just spent the last 2 months, building and rolling out localized versions of our web and windows products to multiple countries including Japan, The Netherlands, UK and Ireland, Belgium and Greece.

This was a true challenge in the scheme of things as localization and translation is traditionally done at build time of applications, but in the On Demand world this is not practical as every client has different needs and we are using a single instance of the application (hence the term multi-Tenant).

Our challenge was two fold, building a localization architecture which was dynamic for both the web piece and then being able to synchronize localization information to offline clients.

What we did was move application string resources to a SQL Server datastore and still use the .NET Framework Resource Manager. This enabled us to provide an Admin module to our clients in our On Demand Web Application which allowed our clients to perform translations dynamically. The benefits for doing it this was immense, the client could see the results of their changes immediately in the front end application on the web, and the translations would synchronize down to offline users on their next synchronization.

The project is a major success and we have users all around the globe using our application localized to their culture.