Localizely logo
  • Home
  • Getting started
  • How it works
  • Pricing
  • FAQ
Sign up

I18n questions · Flutter

Why does Flutter say the application's locale is not supported by all of its localization delegates? 

Because, for the locale the app resolved, at least one kind of localizations (Material, Cupertino, Widgets, or your own class) has no delegate in localizationsDelegates whose isSupported returns true. In most apps the delegates from flutter_localizations were never added, so only the English-only defaults that MaterialApp registers itself are present.

The check runs in debug mode after locale resolution and is reported through FlutterError.reportError, so the app keeps running. For a MaterialApp with supportedLocales: [Locale('en'), Locale('de')], no localizationsDelegates, and a device set to German, the output is:

Warning: This application's locale, de, is not supported by all of its localization delegates.
• A MaterialLocalizations delegate that supports the de locale was not found.
• A CupertinoLocalizations delegate that supports the de locale was not found.
The declared supported locales for this app are: en, de

The missing localizations are missing for real: Flutter only loads delegates that support the locale, so the next Material widget that needs them throws No MaterialLocalizations found., and a Cupertino widget such as CupertinoDatePicker throws No CupertinoLocalizations found.. The same warning with only the Cupertino line appears when you registered GlobalMaterialLocalizations.delegate and GlobalWidgetsLocalizations.delegate but not GlobalCupertinoLocalizations.delegate.

The fix is to register all three global delegates. flutter_localizations ships inside the Flutter SDK, so it is added as an SDK dependency:

flutter pub add flutter_localizations:"{sdk: flutter}"
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

MaterialApp(
  localizationsDelegates: GlobalMaterialLocalizations.delegates,
  supportedLocales: const [Locale('en'), Locale('de')],
  home: const MyHomePage(),
);

GlobalMaterialLocalizations.delegates (plural) is the list of GlobalCupertinoLocalizations.delegate, GlobalMaterialLocalizations.delegate and GlobalWidgetsLocalizations.delegate. If you use flutter gen-l10n, the generated AppLocalizations.localizationsDelegates already contains your delegate plus these three, so pass that instead.

Less common causes, each named in the warning:

  • A locale in supportedLocales whose language is not in kMaterialSupportedLanguages or kCupertinoSupportedLanguages.
  • Your own LocalizationsDelegate whose isSupported returns false for a locale you declared; then the bullet names your class.
  • A localeResolutionCallback that returns a locale outside supportedLocales.

Published Oct 9, 2026 · Markdown version

Related Flutter internationalization questions:

Flutter internationalization tutorial:

Learn about internationalization in Flutter
Localizely logo
About
Free tools
Boring stuff
  • Privacy Policy
  • Terms of Service
  • Cookie Policy
Newsletter
Copyrights 2026 © Localizely