Introduction to internationalization and localization

Internationalization (I18N) is commonly referred to as "the process of enabling efficient development and creation of software variants in multiple languages from a single source". The goal of internationalization is to ensure that the platform and all applications running on the platform consist of two sets of code: the non-changing core that contains all the functionality and the changing content part that contains the culturally sensitive data, such as text strings on the UI. Thus, internationalization is a software development methodology that aims at minimizing modifications in software for different languages, writing systems, regions, or specific customizations. The purpose is to cut costs and work effort at the variation phase of software development. In essence, internationalization can be seen as an architectural issue.

Internationalization is important for S60 to allow for swift language variation, which is enabled by writing internationalized software. Basic rules for writing internationalized software include writing code as generic as possible, not assuming the software will function right if it functions correctly in English. This is important due to the fact that devices based on S60 are sold all over the world and language variants are among the key features in increasing sales in different parts of the world.

In S60, internationalization is a mind-set and architectural issue. Internationalized coding must be the standard way of coding to reduce the overall workload of the developers and to speed up the software release. AVKON is the main source for internationalization support for developers. By using the AVKON component developers can reduce their own workload regarding internationalized features and avoid most internationalization errors in their code.

Localization (L10N), in turn, is the process for adaptation of software and products to meet the requirements of local markets and different languages. Localization is often only seen as translation, or enabling translation, but when properly carried out, it also ensures and verifies the correctness of translations and correctness of cultural and linguistic conventions used.

Internationalization and localization together form a chain that makes it possible for you to create a localized version of a software product.