Internationalization – often written as 'i18n' (18 being the number of letters between 'i' and 'n' in the English word) – is the design and development of an application using practices that simplify its (later) localization for different countries, languages and cultures. 

Internationalization typically involves (among other practices): 

  • Support for Unicode, relevant legacy character encodings, and different text directions 
  • Using predefined localization data and formats from existing libraries, such as options for date and time, calendars, numbers, names and addresses, list sorting, etc. 
  • Keeping code distinct from UI string values, and ensuring that user-localizable elements can easily be loaded (based on identifying user language or location) or selected 
  • Verification through pseudotranslation or by using machine translation to prepopulate strings to test a UI or function before real translations are available

Use cases

  • Building translation readiness into the software development process
  • Validation that UIs will display special characters
  • Validation that the UX design will support 30% expansion of text

Key benefits

  • Faster time to market when going global
  • Reduced cost of localization
  • Smoother user experience