Software that has been designed for internationalization is able to manage different linguistic and cultural conventions transparently and without additional modification. The same binary copy of an application should run on any localized version of an operating system, without requiring source code changes.
Software that has been designed for localization includes language translation (such as text messages, icons, and buttons), cultural data (such as dates, times, and currency), and other components (such as input methods and spell checkers) for meeting regional market requirements.
Properly designed applications can accommodate a localized interface without extensive modification. The software should be designed, first, to run internationally, and, second, to accommodate the language- and cultural-specific elements of a designated locale.