A software application that is "internationalized" is one that can work fully on local machines without any additional design or development work. According to the Localization Industry Standards Institute, Internationalization is defined as: "...the process of generalizing a product so that it can handle mumtiple languages and cultural conventions without the need for redesign."
An "internationalized" product could have no text strings appearing in any foreign language - all its user interface could appear in English. As long as it retains full functionality when installed on local machines, it can be considered fully "internationalized".
The types of functionality it needs to have in order to be considered "internationalized" include:
*Reliability: the application's core functionality must work on the non-English operating systems to the same level it works on the English operating systems.
*The application can accept and display any sets of characters as data input and output - best achieved with the use of the Unicode standard.
*The use of different input and output characters does not harm functionality in any way. Sorting, searching and validation rules function with the character set.
*Dates, times and currencies appear in the format of the local operating system.
*"Localizability": The application is written so that all UI strings are maintained in resources files separate from the code.
Internationalization is often known by its short form, I18N, where the "18" refers to the number of letters between the "I" and the "N".