---
title: "Why does Flutter say the application's locale is not supported by all of its localization delegates?"
description: "At least one delegate type has no delegate that supports the resolved locale, usually because the `flutter_localizations` delegates are missing. Pass `GlobalMaterialLocalizations.delegates` (or the generated `AppLocalizations.localizationsDelegates`) to `MaterialApp.localizationsDelegates`."
category: flutter
date: 2026-10-09
canonical: https://localizely.com/i18n-questions/flutter/why-does-flutter-say-the-locale-is-not-supported-by-all-localization-delegates/
---

# 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`](https://api.flutter.dev/flutter/widgets/LocalizationsDelegate/isSupported.html) 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:

```bash
flutter pub add flutter_localizations:"{sdk: flutter}"
```

```dart
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`](https://api.flutter.dev/flutter/flutter_localizations/GlobalMaterialLocalizations-class.html) (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`](https://api.flutter.dev/flutter/flutter_localizations/kMaterialSupportedLanguages.html) or [`kCupertinoSupportedLanguages`](https://api.flutter.dev/flutter/flutter_localizations/kCupertinoSupportedLanguages.html).
- 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`.

Source: https://localizely.com/i18n-questions/flutter/why-does-flutter-say-the-locale-is-not-supported-by-all-localization-delegates/
