When I was 19 years old, I took a couple of years off from college and headed to Europe. During that time, I spent a year in Belgium and a year in France. I managed to do a decent job of learning the French language as well as seeing a different culture. While in Brussels, I put together a computer system responsible for keeping track of apartment rentals throughout Western Europe. It was my first taste of a multinational application. Not only was the application written for multiple spoken languages, but it was responsible for keeping track of different currencies and exchange rates.
Later on in my career, I was blessed with the chance to manage a team of developers working on an application that would be deployed in six different languages (English, French, Italian, German, Spanish, and Japanese). Naturally, all the development took place in English, and it was only at the very end that we worried about getting the translated versions working correctly. On one occasion, we waited literally until the last minute, and had to stay up all night putting the translations in resource files and testing the completed application.
This article is based on my experiences from living in Europe and managing the development of a widely used multilingual application. The ideas I present here are based on my own experiences. Although there may be a better way of accomplishing what I propose, what I am writing about here worked and continues to work for me.
Translating an Application
Information about your audience is one of the most important aspects of application development. In the case of multilingual applications, knowing what languages the application will be developed for is very important. This allows you to design the application appropriately from the beginning. Unfortunately, most multilingual applications start out in one language and become multilingual when someone sees a market for the application (either within the company or without).
If you are starting to design an application and know it will be distributed in several languages, design it as a multilingual application from the beginning. As you create the design document, list all the static strings and what languages they will be translated into. This allows you to send out the design document to a translation house long before coding of the application ever begins. After you get the translations back, you will have a much better idea of how much screen real estate to save for the application.
As you build the application, it is very helpful to have someone on your team who speaks and reads the foreign language you are working with. On my team, we had developers who spoke French, German, Italian, and Spanish. Granted, some levels of fluency were about as minimal as a couple years of a high school foreign language class, but it was helpful, nonetheless. We did not have anyone on staff who spoke Japanese, so I went out, found someone, and hired him. Amazingly, it was not that difficult to do.