First of all, let's define some vocabulary. "Internationalization" is a long word, and there are at least three widely used abbreviations: "intl," "i18n" and "i10n." All of them mean the same thing.
Internationalization can be generally broken down into three main challenges: Detecting the user's locale, translating UI elements, titles as well as hints, and last but not least, serving locale-specific content such as dates, currencies and numbers. In this article, I am going to focus only on front-end part. We'll develop a simple universal React application with full internationalization support.