1. Make localization an integral part of the development process. Unfortunately, localization is sometimes only an afterthought, and this can lead to all kinds of problems, from cost overruns to the necessity of rewriting code. Therefore, a localization consultant should be involved in the project – even in its early stages when crucial decisions such as interface design are made.
2. Support those foreign characters. Accents, umlauts, tildes – foreign languages use special characters that are not present in the English alphabet, and non-Latin alphabets pose different problems altogether. Make sure that your fonts support all the special characters of the language you have the software translated into. A good resource for multi-language font support issues is the home page of the Unicode consortium: http://www.unicode.org/.
3. Avoid grammatical pitfalls We know that the grammatical structures of English can not simply be retained in a foreign language. English sentence structures lend themselves more to a "building block approach". A sentence with variables such as "Click here to open the [file]/[folder]/[directory]" might require the article "the" to be translated differently depending on the gender of the variable. The most important rule is that programmers should consult a translator before hardcoding sentence structures in text strings.
4. Give foreign words space to breathe It is very important to leave extra space for translated terms, particularly for button labels and menu items. The word "Quit", for instance, would become "Abbrechen" in German, expanding from 4 to 9 characters. Therefore remember to either allow for sufficient extra space or to make these interface elements dynamically resizable.
5. Have a test plan The foreign versions of a program should be tested by native speakers of that language, whether through your subsidiary in the target country, or freelancers who do on-site testing here, or a specialized testing company. The testing should be done on computers running the appropriate foreign version of the operating system and using the appropriate keyboards for the target languages.
6. Be culturally sensitive This is a crucial and very wide-ranging issue, covering everything from paper sizes and the structures of phone numbers or postal addresses (not everyone uses a ZIP code, for instance) to ethnic stereotyping and issues of sex and violence. You might not just need to translate a program, but may also have to adapt certain parts of it to conform to different phone systems, measurement units, currencies or legal traditions. Even such seemingly "universal" elements as icons might be culture-bound (will, for example, users in your target culture recognize an American mailbox?). When I worked as an in-house translator for an Austin-based computer game company, we had to "tone down" the graphic violence in certain products for the German market, as the legal guidelines there are much stricter in this aspect. Even politics can enter the process, as when a Microsoft game was banned in China because of a map depicting Tibet as an independent country.
7. Read more!. Two extremely useful books on the subject are Bert Esselink's A Practical Guide to Localization and Developing International Software by "Dr. International".