Internationalization is an important part in the process of developing modern apps. It is absolutely necessary when you develop a multi-language app but it is also a good practice to prepare your app for proper internationalization even though you support only one language at the moment.
In general, internationalization is the process of designing and architecting your source code in a way that makes it easy to localize. The target is to structure your application so that it can be adapted for other languages or regions without having to change major parts of your source code. By translating text or adding locale-specific date formatting you are performing a localization of your internationalized application.
Translation of strings is only one aspect of localization but it might be the first obvious thing to do if you prepare your app for multiple languages.
There are major advantages using the principles, patterns and structures of proper internationalization in a single-language-app but it boils down to one significant point: retrieving any language-specific, hardcoded strings from source code by inserting another level of abstraction.
The target is to replace all strings with placeholders and move the strings to separate Files (for example *.arb or *.po-Files). These files are saved in a human-readable format and can be viewed in a text editor by developers and translators.
Internationalization with Flutter
The good news is: internationalization in Flutter is possible and well supported.
The bad news is: if you are doing it from scratch it is rather complex and it takes some time to get your head around it.
Even with the help of the packages flutter_localizations and intl it is quite complex because you have to create arb-Files at the right place, implement delegates and so on…
If you are developing your Flutter-application with Android Studio then internationalization becomes VERY easy.
There is a plugin for Android Studio
which is called flutter_intl
which is easy to use and creates all the boilderplate-code that is necessary for proper internationalization.
1. Install flutter_intl in Android Studio