ARC Best Practices » Internationalization (I18n)
en

Internationalization (I18n)

 The word internationalization is sometimes abbreviated as i18n, because there are 18 letters between the i and the n. There are several definitions of internationalization in books and on Web sites. Internationalization is making program code generic and flexible so that specifications from markets around the world can be easily accommodated. Part of internationalization is making the product localizable, that is, enabling the interface to be translated with a minimal impact on the program code.

Internationalization

Internationalization comes in several variants:

  • Monolingual internationalization - Enables the creation of localized versions of a product, where each localized version supports only its target locale.
  • Internationalization for multilocalization - Supports localization and data processing for multiple locales, where the actual locale is selected on execution of the product or at runtime.
  • Multilingualization - Enables data processing and display in multiple languages and locales simultaneously, for example, mixing Chinese and Arabic text in a single document.

Internationalization for multilocalization is the minimal requirement, but many products should be designed to be fully multilingual. Server software in particular needs to be able to handle user requests in different languages and with different cultural conventions simultaneously.

Localization (L10n)

Sometimes you will see localization abbreviated as l10n, because there are 10 letters between the l and the n. Localization is the process of customizing a product for a particular locale. This can involve several different types of customization, including:

  • Translation of the user interface and documentation into a different language.
  • Altering some format fields in resource files according to the locale conventions, for example, changing a date format from mm/dd/yy to yy/mm/dd.
  • Adding code modules that implement locale-specific functionality, such as an input method editor for Japanese or a module that calculates Hebrew calendar dates.

Not all internationalized products are localized. We are concerned with localization only to the extent that it defines requirements for internationalization.

Locale

A locale is a specific geographical, political, or cultural region. It is usually identified by a combination of language and country, for example, en_US represents the locale US English. In some cases, a language identifier alone is sufficient.

Providers and Consumers

We divide software functions into two groups: providers and consumers. A software product usually has both provider and consumer functionality, depending on the product area; therefore, each combination of an interface and an object in the matrix has a provider and a consumer.

A provider provides internationalization functionality. For example, an input method is a provider of internationalized input functionality for an application programming interface (API). It contains calls and parameters that a consumer can use to retrieve data typed in by the user, or to display the input method editor window. For example, to ensure that international data is handled correctly, a consumer uses parameters, such as character set name and locale in a provider application protocol.

 A related issue: Internationalization can often trivially lead to support for customization (e.g., OEM relabeling) that can be accomplished via resource files separable from the source code.

Tags:
Created by admin on 2009/10/26 12:07
Last modified by Asa Romberger on 2010/03/04 23:31

Collectives

Community Group arc Pages


XWiki Enterprise 2.7.1.34853 - Documentation