Wikipedia: Internationalization and localization
Internationalization and localization
From Wikipedia, the free encyclopedia
In computing, Internationalization and localization (also spelled internationalisation and localisation, see spelling differences) are means of adapting computer software for non-native environments, especially other nations and cultures. Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes. Localization is the process of adapting software for a specific region or language by adding locale-specific components and translating text.
Due to their length, the terms are frequently abbreviated to i18n (where 18 stands for the number of letters between the i and the n in internationalization, a usage coined at DEC in the 1970s or 80s[1]) and L10n respectively. The capital L on L10n helps to distinguish it from the lowercase i in i18n.
Contents |
[edit] Scope
Focal points of internationalization and localization efforts include:
- Language
- Computer-encoded text
- Alphabets/scripts; different systems of numerals; left-to-right script vs. right-to-left scripts. Most recent systems use the Unicode standard to solve many of these character encoding problems.
- Spelling variants for different countries where the same language is spoken, e.g. localization (en-US, en-CA, en-GB-oed) vs. localisation (en-GB, en-AU)
- Graphical representations of text (printed materials, online images containing text)
- Spoken (Audio)
- Subtitling of film and video
- Computer-encoded text
- Culture
- Images and colors: issues of comprehensibility and cultural appropriateness
- Names and titles
- Government assigned numbers (such as the Social Security number in the US, National Insurance number in the UK) and passports
- Telephone numbers, addresses and international postal codes
- Currency (symbols, positions of currency markers)
- Weights and measures
- Paper sizes
- Writing Conventions
- Date/time format, including use of different calendars
- Time zones (UTC in internationalized environments)
- Formatting of numbers (decimal points, positioning of separators, character used as separator)
- Any other aspect of the product or service that is subject to regulatory compliance
The distinction between internationalization and localization is subtle but important. Internationalization is the adaptation of products for potential use virtually everywhere, while localization is the addition of special features for use in a specific locale. Internationalization is done once per product, while localization is done once for each combination of product and locale. The processes are complementary, and must be combined to lead to the objective of a system that works globally. Subjects unique to localization include:
- Language translation
- National varieties of languages (see language localization)
- Special support for certain languages such as East Asian languages
- Local customs
- Local content
- Symbols
- Order of sorting
- Aesthetics
- Cultural values and social context
[edit] Practice
The current prevailing practice is for applications to place text in resource strings which are loaded during program execution as needed. These strings, stored in resource files, are relatively easy to translate. Programs are often built to reference resource libraries depending on the selected locale data.
Thus to get an application to support multiple languages one would design the application to select the relevant language resource file at runtime. Resource files are translated to the required languages. This method tends to be application-specific and at best, vendor-specific. The code required to manage date entry verification and many other locale-sensitive data types also must support differing locale requirements. Modern development systems and operating systems include sophisticated libraries for international support of these types.
New methods are evolving all the time to handle these complex issues. One such method, known as NLSO or Natural Language Support Objects uses databases to store resource strings. Another approach is the elimination of all references to culture, politics, history, etc.; avoidance of images (especially text embedded in images); and use of a controlled language.
[edit] Difficulties
However user requirements might differ significantly over cultures, for example, reading from right to left as in Persian, Hebrew or Arabic may require additional changes to the GUI. OpenOffice.Org solves this with compilation switches.
Some say that the development team needs someone who understands foreign languages and cultures and has a technical background and such a person may be difficult to find. Others argue that the commercial case to localise products into multiple languages is very obvious, and that all is needed is a budgetary commitment from the producer to finance the considerable costs. It costs more to produce products for international markets, but in an increasingly global economy, English only is scarcely an option. For instance, if a message displayed to the user in one of several languages is modified, all of the translated versions must be changed. Software libraries that aid this task are available, such as gettext.
Since open source software can generally be freely modified and redistributed, it is more prone to internationalization. Most proprietary software is only available in languages considered to be economically viable whereas the KDE project, for example, has been translated into over 100 languages[1]. Linux is generally available in many languages. The Debian distribution currently loads over 200 languages. Ubuntu's LiveCD allows you to conveniently pick to load any and all choices you want from dozens of languages when you boot up or when you choose System > Administration > Language Support. Ubuntu's 7.04 version covers languages from Afar to Zulu including dialect choices such as Ancient or Modern Greek or several varieties of English.

