Internationalization is designing software or content so it can be localized easily later — Unicode support, externalized strings, flexible layouts for text expansion, right-to-left support and locale-aware formatting. Good i18n makes translation cheaper and faster.