Though localization presents some inevitable challenges, by following good software localizability practices from the beginning stages of software development, you can avert or scale such obstacles. These practices can improve the quality of your translation and dramatically decrease localization costs.
Although localizability bugs aren't found until late in the development process, they are generally easy to fix. However, one way to prevent localizability bugs is to separate all localizable items into one or more files. The simplest method of dealing with localizable resources is to put everything in resource repositories, which can be separated into four categories: UI resources, resources used for the adaptation of a product, debug resources, and functional resources. The goal is to separate the first two categories from the last two categories and to make sure that resources clearly belong to one category only. Other recommendations are to put resources that do not need localization into header files and to leave resource identifiers unchanged.
When dealing with strings, avoid run-time composite strings. When variables are necessary, use unique names. Do not compound several variables. Keep sentences in a single string, and watch your string buffer sizes. In terms of UI localizability, minimize the amount of resizing necessary by creating your native-language dialog boxes with as much room to spare as you feel comfortable. Extend text frames as far as possible to allow text to grow when it is translated. The basic rule for accomodating text extension caused by translation is to allocate about 30 percent additional room. To prevent mistranslation and the need for repositioning of UI controls, avoid using UI controls as part of a sentence. UI controls such as buttons or drop-down lists should not be placed on top of other controls. Also, do not place button text into a string variable.
Finally, when you include icons or images, avoid culture-specific examples, and the display of flesh or human body parts. Beware of gender-specific rulesand ethnic stereotypes in other cultures. Avoid religious references, political symbols, and text in graphics. By keeping all these guidelines in mind as you design and write software, you can be proactive in making sure your software is localizable.