Flutter localization gotcha with iOS Emulator

Problem

When you use the intl package to get the current locale, it will always return English or 'en', when you use the iOS simulator.

Even when you set the language and region in the iOS settings, it will always return 'en'.

// This retrieves the current local
Intl.getCurrentLocale();  // returns 'en' using iOS Simulator

Solution

Came across this github issue.

And the solution was found.

Edit info.plist found in ios/Runner and add two configurations:

  1. Localizations

Add your supported languages or any languages that you need to test.

  1. Localized resources can be mixed

Set to YES.

For good measure, flutter clean and rebuild.