Internationalization and localization

Internationalization means in computer science or software development to design a program so that it can be adapted to other languages ​​and cultures easily ( without having to modify the source code ).

Internationalization ( internationalization English or internationalization ) is often abbreviated i18n with the Numeronym ( in the English word has 18 letters between i and n ).

This includes those tasks that has to cope with the developer / programmer of a program. For this purpose, he may, for example, descriptive texts do not encode fixed in the source code, but must use variables that are read from a source at runtime. But even date formatting and the language-dependent interface design (eg, text can be of different lengths or the right-to -left orientation may differ ) belong to this.

In the next step, the localization ( localization or localization ), which is abbreviated as l10n done ( 10 letters between l and n ). A program should be designed in the previous step so that these changes do not have to be done by the programmer. This process refers to the pure translation of texts, for example, in a national language.

Extent of internationalization and localization (selection)


  • Translation: Text data is stored in an external file and loaded dynamically. Translations, in addition to texts, readers and texts within graphical elements such as images and videos relating to ( subtitles in movies ).
  • Graphical representation: The program logic from the user interface and output devices such as printers independently.


  • Unicode: Unlike the character sets such as ASCII or EBCDIC previously used, use modern systems the Unicode character set. Encoding issues are solved by a much larger character set. This character can be offered from different fonts in the same system.
  • Bi-directional Texts: Depending on the font different writing directions should be used.
  • Scripture: Some languages ​​may exist in different spellings, such as Serbian Cyrillic and Serbian with Latin script.
  • Word Processing: Concepts like the case are not known in any font. For the text to wrap around a separation line different rules apply.
  • Input Method: Allows the input of keyboard shortcuts with any keyboard layout.
  • Sort by: National characters, such as umlauts in German, must be sorted according to national rules. It may also be thematic distinctions that cause about phone books for a special sorting is expected.
  • Search: In textual search some characters must be mapped to receive the equivalent forms. The texts " ¼" and "1 /4" are indeed different coded, the meaning is the same. The transformation of the text is called normalization.
  • Transformation: texts can be transferred to a different font, either to support a different set of characters, or to increase readability. A distinction is made between transliteration ( the literal transformation ) and transcription ( the transformation according to the phonetic spelling ).

Text Formatting

  • Date formats and the different calendar systems: software products expect most times with the Gregorian calendar, but the display can formatting in the regional standard formats and time calculations are offered.
  • Time formats: A distinction is made, for example, between the 24- count and 12-hour count, when explicitly morning (am) and afternoon (pm) is specified.
  • Number Formats: Different decimal separator and thousands separator, and multiple currencies, weights and measures.
  • Time zones: Similar to the date problem, a software must expect uniformly on the one hand with all different times, on the other hand, any user to view the time in the appropriate format and converted to the appropriate time zone.


  • Locale: To define the culture to which the software is to adapt, is the software usually uses a locale. This contains information about the language, country and any other regional characteristics, such as the font to use.
  • Images and colors: issues of comprehensibility and cultural appropriateness in
  • Names and titles
  • Assigned by the state numbers as passport numbers or social security number ( social security number ) in the United States, the national insurance number in the UK or the Isikukood in Estonia
  • Telephone numbers, addresses and international postal code
  • Paper dimensions

Difference between internationalization and localization

Although the difference between internationalization and localization seem subtle, but important. Internationalization is the adaptation of a product to make it theoretically can be used anywhere. Localization is the addition of special characteristics for use in a particular geographic or ethnic circumscribed sales or use area (country, region or ethnic group). Internationalization is performed once per product. Localization is then performed once for each combination of product and use area. The processes are complementary and have to be combined in order to obtain a system which functions globally.

Business process of internationalization of software

To internationalize a product in different markets must be considered, in which the product is expected to be introduced. Details such as field lengths of addresses, optional fields for postal codes and the introduction of new registration processes to the local legal situations are to use examples of how complex can be the project of internationalization.

A comprehensive approach is to cultural factors such as the adaptation of business process logic or the consideration of individual cultural behavioral aspects.

Programming practice

The prevailing practice for 2009 applications is to the texts in help strings (resource strings) outsource that are loaded during program execution when needed. The strings are stored in auxiliary files and are relatively easy to translate. Programs are often designed so that they access auxiliary libraries, depending on the set, sales territory. A program library that supports the GNU gettext.


While translating existing text simply appears in a different language, it is much more difficult to simultaneously manage language versions of texts throughout the product life cycle. If a message is displayed to the user is changed, all translated versions must also be changed. This prolongs the development cycle.

Many localization tasks ( writing direction, text sorting, etc. ) require a profound change in the software than the mere translation. solves the example with Kompilierungsverzweigung (compilation switches ).

Frequently, problems arise also from the syntactic peculiarities of different languages. The display of " NUMBER files were found " can not with a one-piece translation for files were found to implement, since this rate in other languages, eg in German, in two parts decays, which have to be displayed separately by the number: "It NUMBER files were found ". Therefore, the internationalized version of the program text must allow before and after the number, the text before the number in the English localization would be empty, as he would have included in the German " were ". Also, a different length of the texts on the display may cause unpredictable results ( truncated text, unwanted line breaks ).

At a certain level of complexity (for example, for quality assurance ), the development team needs someone who understands other languages ​​and cultures, and has a technical background.

Cost-benefit analysis

In a commercial environment is the advantage of locating the access to more markets. There is the view that the localization of a product into different languages ​​or cultures is self-evident. All that was needed was the confirmation of the amount of the costs. It costs more to produce products for international markets, but in an increasingly global economy, the support only one language or only a market is hardly an option. However, the localization of software developed is influenced by economic uncertainties and lacks most of the way that end users and volunteers can make the localization, as is common in open source environments. Since open source software can generally be altered and redistributed freely, it is more amenable to internationalization. The K Desktop Environment project has been, for example, translated into 100 languages.