Internationalization and localization

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Image:Italian localisation.png
Screenshot of software programs localised to Italian.

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 ensuring that an application is capable of adapting to local requirements, for instance ensuring that the local writing system can be displayed. Localization is the process of adapting the software to be as familiar as possible to a specific locale, by displaying text in the local language and using local conventions for the display of such things as units of measurement.

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) 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
    • Graphical representations of text (printed materials, online images containing text)
    • Spoken (Audio)
    • Subtitling of film and video
  • Date/time format, including use of different calendars
  • Formatting of numbers (decimal points, positioning of separators, character used as separator)
  • Time zones (UTC in internationalized environments)
  • Currency
  • 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
  • Weights and measures
  • Paper sizes
  • 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. The processes are complementary, and must be combined to lead to the objective of a system that works globally. Subjects unique to localization include:

[edit] Difficulties

In making software products, internationalization and localization pose challenging tasks for developers, particularly if the software is not designed from the beginning with these concerns in mind. A common practice is to separate textual data and other environment-dependent resources from the program code. Thus, supporting a different environment, ideally, only requires change in those separate resources without code modification, greatly simplifying the task.

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 70 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.

[edit] Standards Problems

The task of building internationalized applications is further complicated by poorly documented and incomplete standards. Modern software applications often involve integrating multiple components such as web browsers, application servers, and databases. It is at the interfaces of these components that deficiencies in standards become apparent. For example, there is no standardized mechanism for HTTP to indicate which character encoding was used to encode the contents of a submitted HTML form. Although there are some browser specific mechanisms that might indicate the client's character encoding, there is nothing specified by any standard. There are only ad hoc solutions supporting cross-browser applications.[2]

[edit] Methods

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. However, many development environments still lack full Unicode support, which drastically hampers the translation effort, especially to East Asian languages.

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. An example of an implementation of these principles is Uwe Muegge's website that uses Google's language tools to create virtual versions of his site in eleven languages.

Pseudolocalization is a software testing method that is used to test a software product's readiness for localization.

[edit] Alternative names

Internationalization is often abbreviated as the numeronym i18n (or I18n or I18N) where the number 18 refers to the number of letters omitted (nternationalizatio).[3][4] Localization is often abbreviated L10n or l10n in the same manner. (The most common forms are i18n and L10n, respectively. These forms won out because many fonts do not readily distinguish uppercase "I" and lowercase "l", but lowercase "i" and uppercase "L" are always clear.)

A related concept is a11y (accessibility), which is concerned with adapting products for people with disabilities or age-related limitations.

[edit] See also

[edit] Notes

  1. ^ For the current list see KDE.org
  2. ^ Gavaghan, Mike (2004-05-24). End-to-end Internationalization of Web Applications. JavaWorld.com. Retrieved on 2007-11-27.
  3. ^ Origin Of The Abbreviation I18n. Retrieved on 2007-02-22.
  4. ^ W3C Internationalization (I18n) Activity. World Wide Web Consortium. Retrieved on 2007-02-22.

[edit] References

  • .NET Internationalization: The Developer's Guide to Building Global Windows and Web Applications, Guy Smith-Ferrier, Addison-Wesley Professional, 7 August 2006. ISBN 0-321-34138-4
  • A Practical Guide to Localization, Bert Esselink, John Benjamins Publishing, [2000]. ISBN 1-58811-006-0
  • Lydia Ash: The Web Testing Companion: The Insider's Guide to Efficient and Effective Tests, Wiley, May 2, 2003. ISBN 0471430218
  • Business Without Borders: A Strategic Guide to Global Marketing, Donald A. DePalma, Globa Vista Press [2004]. ISBN 978-0976516903


Look up internationalisation, localisation in Wiktionary, the free dictionary.
Wikibooks has a book on the topic of
FOSS Localization
zh-min-nan:Kok-chè-hòa kap chāi-tē-hòa

de:Internationalisierung (Softwareentwicklung) fr:Internationalisation de logiciel ko:국제화와 지역화 id:Internasionalisasi it:Internazionalizzazione e localizzazione lt:Internacionalizacija hu:Internacionalizálás és honosítás ja:国際化と地域化 pl:I18n pt:Internacionalização ru:Интернационализация sk:Internacionalizácia a lokalizácia sv:Internationalisering zh:国际化与本地化

Views
Personal tools

Toolbox