WSL is a leading international provider of localization, translation and technical writing services
 

Principles of Software Internationalization

Software internationalization is the process in which support is built for multiple locales in an application, where a locale is "a subset of a user's environment that defines conventions for a specified culture", typically including language.
By making sure that your software supports multiple locales, you enable the user to choose the most appropriate one. It is strongly recommended to complete the internationalization process as part of the application building process, because adding in such support once the software is completed can be expensive and complicated.

There are three main phases in internationalizing an application.

These are:

·   Identifying the user?s preferred locale within the set of supported locales

·  Displaying information appropriate to the chosen locale

·  Operational concerns.

It should be stated that internationalization is only half of the process, and locale-specific data and information must be provided. That process is called localization, which will not be discussed in this article.

Finding the Appropriate Locale

First, a user must be associated with a locale. Allowing the user to explicitly choose the appropriate locale is crucial. When the locale of an application is not set correctly, a typical user might think that the application, not the operating system or browser, is to blame. And unlike other configuration options, an incorrect choice of locale often renders an application useless.

There also may be business requirements that require the user to choose their locale regardless of the machine setting. By asking the user explicitly what their proper locale is, the application also lets users know that it is prepared to handle a different locale, and they may choose whatever locale is appropriate, regardless of the existing settings.Whatever the user?s choice, the locale should be stored using the ISO (International Organization for Standardization) codes for country and language to ensure maximum compatibility.

Once the user has chosen a locale, the application should never ask again. Web applications must allow for easy changes of the preferred locale.

Rendering Locale-Specific Information

Once the user has chosen a locale, the application must respond by showing information relevant to that locale.

The most important type of information is the language of the displayed text. Other locale-specific information includes business rules, such as whether or not to show a product that may be illegal or unavailable in a given country, date formatting, number formatting and sorting.

The general way to place the appropriate text for a given locale in the application?s user interface is to make sure all user interface text is replaced with tokens.

Each token is a key string used when the developer is building the user interface.

When the user has identified a preferred locale, the application generates the correct user interface by replacing all the keys with the corresponding values, which are drawn from a file or a database. Note that this assumes the user?s system is set up correctly, with fonts, etc. for the chosen locale. Many modern programming languages have library support for this key-value separation.

If you are building an internationalized application and are able to choose a development language, it is recommended that you examine the internationalization features of each considered language, since some programming languages have better support than others.

One major reason to internationalize the application from the beginning, is because guaranteeing that all text has been extracted is easier if one starts from the beginning.

The application has fewer states, and each additional component or feature built can be internationalized in turn.
At this point, the developer should start thinking about the localization process as well: how will all the text be translated, tested and deployed in an efficient manner?

While most modern databases support the storage of UTF data in the database, developers need to make sure the database is configured correctly, and that any other tools used to manipulate that data are equipped to do so.

Business rules are intensely application-specific and, after displaying a user interface in a user?s chosen language, are the second most important part of internationalizing an application. Developers should be aware of locale-related business rules and build support for them early on.

When all the user interface text has been replaced with tokens, including the date and number formatting as may be required, the application can be run and the user interface can be tested.

The actual generation of the application user interface is executed when the application knows the user?s locale, so that the appropriate language, number format and other locale-specific features can be displayed correctly. In desktop applications, this could be performed at installation; in web applications, the substitution is typically done at runtime.

Lessons Learned

Internationalization should be considered from the very beginning of designing your software. Internationalizing software, whether desktop software or a web application, is not extremely difficult. There are a set number of issues to be dealt with, the longest and most tedious being the extraction of all displayed strings to separate files. Almost every internationalization task is easier if dealt with at the beginning of a project rather than bolted on at the end?and going from one to two supported locales is typically more difficult from an internationalization viewpoint than going from two to N supported locales.

Most modern programming languages have extensive library support for internationalization, which should be leveraged whenever possible.

**********


We can help you convert your product (software, documentation, online help, multimedia, etc.) into other languages.

The Weizman Group specializes in Hebrew and Arabic, as well as FIGS (French, Italian, German, Spanish) and CCJK (Chinese, Japanese, Korean). We also handle Russian, Dutch, Portuguese, Swedish, Turkish, and other European and Asian languages.



For more information on our translation services, please download our profile

HERE

or contact:

www.WSL.co.il

Sagi Adiv
Weizman Group Services
www.WSL.co.il

Kibbutz Giv?at Ha-Shlosha, P.O.Box 379,

48800 ISRAEL

Tel: 972-3-9018890

Mobile: 972-54 -3286565
Fax: 972-3-9018897
wsl-info@wsl.co.il

Tags:
English Translation | French Translation | German Translation | Hebrew Translation | Italian Translation | Japanese Translation | Spanish Translation | Chinese translation | Bi-directional Localization | Multilingual Localization | Hebrew | Arabic | English | French | Spanish | Italian | GUI Localization | Technical Writing | Desktop Publishing (DTP) | Documentation Localization | Software Localization & Globalization | Professional Translation | Software | Web Content | Technical Translation Services | Principles of Software internationationalization
  • Join WSL and Tedopress at the Megacomm conference in Jerusalem on February 16th

    Tedopress will present HyperSTE, Simplified Technical English Tools for
    Content Quality