diff --git a/packages/flutter_localizations/lib/src/material_localizations.dart b/packages/flutter_localizations/lib/src/material_localizations.dart
index 4dcb82e..40f0567 100644
--- a/packages/flutter_localizations/lib/src/material_localizations.dart
+++ b/packages/flutter_localizations/lib/src/material_localizations.dart
@@ -14,6 +14,10 @@
 import 'l10n/localizations.dart' show TranslationBundle, translationBundleForLocale;
 import 'widgets_localizations.dart';
 
+// Watch out: the supported locales list in the doc comment below must be kept
+// in sync with the list we test, see test/translations_test.dart, and of course
+// the acutal list of supported locales in _MaterialLocalizationsDelegate.
+
 /// Localized strings for the material widgets.
 ///
 /// To include the localizations provided by this class in a [MaterialApp],
@@ -493,22 +497,29 @@
 class _MaterialLocalizationsDelegate extends LocalizationsDelegate<MaterialLocalizations> {
   const _MaterialLocalizationsDelegate();
 
+  // Watch out: this list must match the one in the GlobalMaterialLocalizations
+  // class doc and the list we test, see test/translations_test.dart.
   static const List<String> _supportedLanguages = const <String>[
     'ar', // Arabic
     'de', // German
     'en', // English
     'es', // Spanish
-    'fa', // Farsi
+    'fa', // Farsi (Persian)
     'fr', // French
     'he', // Hebrew
     'it', // Italian
     'ja', // Japanese
+    'ko', // Korean
+    'nl', // Dutch
+    'pl', // Polish
     'ps', // Pashto
     'pt', // Portugese
     'ro', // Romanian
     'ru', // Russian
+    'th', // Thai
+    'tr', // Turkish
     'ur', // Urdu
-    'zh', // Simplified Chinese
+    'zh', // Chinese (simplified)
   ];
 
   @override
diff --git a/packages/flutter_localizations/test/translations_test.dart b/packages/flutter_localizations/test/translations_test.dart
index 18f342d..d058732 100644
--- a/packages/flutter_localizations/test/translations_test.dart
+++ b/packages/flutter_localizations/test/translations_test.dart
@@ -7,6 +7,8 @@
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
+  // Watch out: this list must be kept in sync with the comment at the top of
+  // GlobalMaterialLocalizations.
   final List<String> languages = <String>[
     'ar', // Arabic
     'de', // German
@@ -33,6 +35,9 @@
   for (String language in languages) {
     testWidgets('translations exist for $language', (WidgetTester tester) async {
       final Locale locale = new Locale(language, '');
+
+      expect(GlobalMaterialLocalizations.delegate.isSupported(locale), isTrue);
+
       final MaterialLocalizations localizations = new GlobalMaterialLocalizations(locale);
 
       expect(localizations.openAppDrawerTooltip, isNotNull);
