This page covers concepts and workflows necessary to localize a
Flutter application using the MaterialApp and CupertinoApp
classes, as most apps are written that way. However, applications
written using the lower level WidgetsApp class can also
be internationalized using the same classes and logic.

Sample internationalized apps

If you’d like to start out by reading the code for an internationalized
  Flutter app, here are two small examples. The first one is intended to
  be as simple as possible, and the second one uses the APIs and tools
  provided by the intl package.
  If Dart’s intl package is new to you,
  see Using the Dart intl tools.

Minimal internationalization

Internationalization based on the intl package

Introduction to localizations in Flutter

This section provides a tutorial on how to internationalize
a new Flutter application, along with any additional setup that a
target platform might require.