Internationalization and localization

From Wikipedia, the free encyclopedia

(Redirected from G11n)
Jump to: navigation, search
Screenshot of software programs localised to Italian.
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

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:

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.

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]

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.

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.

  • .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
Wikibooks has a book on the topic of
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.