The Localisation Industry Standards Association (LISA) defines internationalization as follows:
"Internationalization is the process of generalizing a product so that it can handle multiple languages and cultural conventions without the need for re-design. Internationalization takes place at the level of program design and document development."
In general, a product is internationalized during the product development cycle, as a precursor to the localization of a product.
An important aspect of internationalization is the separation of text from the software source code. Translatable text, i.e. text, which is visible to the user, should be moved to separate strings-only resource files. This will prevent translators from changing - or breaking - the program code, because the resource files only contain translatable components and no coding.
Central to internationalization is the ability to display the character sets and support local standards of a particular language and country. For example, before a software product can be translated into Japanese, it must support double-byte characters. If the application has been programmed to support only Western European languages, it must be double-byte enabled first, for example by using Unicode character support. Likewise, different foreign keyboard layouts, input methods, and hardware standards must be supported.
Internationalization is not limited to software. Online help, documentation, and web sites, in particular, also need to be internationalized. For technical writers this process is often called "writing for translation" or "writing for a global audience". In the case of web sites, internationalization, translation, and adapting the content to specific target markets is usually referred to as "web site globalization."
Internationalization is often abbreviated to "i18n", where "18" indicates the number of letters between the "i" and the "n". For more information on internationalization, refer to Chapter 2, Internationalization.