Internationalization is an engineering process intended to generalize a product so that it can handle multiple languages, scripts and cultural conventions without the need for redesign or recompilation. It involves a range of activities, such as:
- Prepare software distribution platforms for a global audience
- Defining mappings for currency conversion
- Defining sorting rules which change based on the current alphabet
- Defining numeric and date formatting which adapts to the current locale selected
- Discovering the language of the user's input, so that content can be displayed correctly
- Offering a default language, with the option to have the text transliterated from one language to another
- Permitting the user to select language-related user preferences
- Displaying times, dates, and calendar information in appropriate languages and formats