Product internationalization is a pretty vast area and depending on the nature of your product & markets you are considering, i18n can comprise of different operations and best practices. However, you can learn more about software internationalization on our blog.
Few points about internationalization 
Take localization into account in the early stages of development. Introducing multilingual support once you are rolling requires extra work on your part and makes you more likely to forget something important. Think about localization throughout your product as a whole, e.g., don’t allow the backend to send untranslated messages.
Make sure you handle string interpolation correctly from the very beginning. For example, don’t concatenate but use placeholders instead. Manage strings with various plural forms properly etc
Use plurals the right way, e.g., don’t use plural zero for an empty check.
The previous two points will help you prevent the most common problems when you start implementing more “exotic” languages, such as RTL languages or those without plurals.
Double-check that you handle date formats etc., correctly as well. Unfortunately, this is something that we can’t do for you - it’s a matter of proper implementation within your code.
Separate configuration from localization
Make sure your design is ready