Software is being developed in many countries in many different languages, and you want to be sure that your product lends itself to translation so that you can compete in the worldwide marketplace. If your developers spend more effort designing an application with an international audience in mind, you will find that your internationalization efforts are much more efficient and less expensive in the end.
Translation Manager facilitates the process of translating Progress® 4GL applications, but it does not eliminate the need for planning ahead. To successfully create a multi‑lingual product, developers must design and create applications with translation in mind. For example, they must anticipate difficulties caused by the translation process. These might include text expansion difficulties, interface layout differences, behavioral differences, and different filtering requirements.
Often, software developers think about developing a user interface for the source language without considering the implications of translating the interface. When they complete an application, they send it to a translator. When the translation is finished, the developers realize they must go back and alter the source code and then return it to the translator. The practice is tedious and costly. It is usually easier to make changes during development than to retrofit changes after development is complete. By helping the developers who work on your project to plan ahead, you can help save time and money, as well as increase productivity.
If the application developers do not plan ahead and take translation into account as they develop source code, you are likely to encounter some of the following problems during translation:
Text expansion difficulties — Translated text phrases must be abbreviated to fit in the interface or they appear truncated.
Interface layout differences — Because of text expansion, the interface is not laid out properly in other languages. The interface layout looks good only in the source language. In the target languages, the layout shifts, and widgets, such as labels and messages, can overlap or text is clipped.
Program behavior differences — If program behavior is dependent on text values, such as button labels, when you translate the labels, the behavior of the translated procedure can be defective.
Filter requirements — Creating filters that extract only the strings that must be translated is time consuming and might require that developers use a coding technique that identifies strings to the filters. Translating unnecessary strings can be very costly.