Internationalization (I18N) is the design and preparation of software, websites, and other applications so that the source code is agnostic to local culture and can support various languages and scripts.
“Think like a wise man but communicate in the language of the people”
William Butler Yeats
Internationalization deals with development and testing related to handling foreign text and data within a program. This would include sorting, importing, and exporting text and data, correct handling of currency and date and time formats, string parsing, and upper- and lower-case handling. It also includes the tasks of separating strings (or user interface text) from the source code and making sure the foreign language strings have enough space to fit into the user interface (UI) correctly. You should think of internationalization as securing the underlying functionality and workings of your program.