Software Internationalization, sometimes called globalization, is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes. Internationalization ensures that foreign character sets are supported and that local differences in terms of date, time and currency formats will be accommodated. The process also ensures functionality for left-to-right or vertical text. The practices involved can have value even if the software is never actually localized, but doing it at the outset can prevent localization problems later.
Software Localization is the process of adapting internationalized software for a specific region or language by translating the text and adding locale-specific components. Localization may be necessary even where actual translation is not needed. For example, time, date, and currency formats and cultural preferences may vary even among countries that use the same language.