diff --git a/packages/flutter_localizations/lib/src/l10n/date_localizations.dart b/packages/flutter_localizations/lib/src/l10n/date_localizations.dart
index b935e53..a44dda0 100644
--- a/packages/flutter_localizations/lib/src/l10n/date_localizations.dart
+++ b/packages/flutter_localizations/lib/src/l10n/date_localizations.dart
@@ -4718,6 +4718,179 @@
       r'''{1} {0}'''
     ],
   },
+  'gl': <String, dynamic>{
+    'NAME': r'''gl''',
+    'ERAS': <dynamic>[r'''a.C.''', r'''d.C.'''],
+    'ERANAMES': <dynamic>[r'''antes de Cristo''', r'''despois de Cristo'''],
+    'NARROWMONTHS': <dynamic>[
+      r'''x.''',
+      r'''f.''',
+      r'''m.''',
+      r'''a.''',
+      r'''m.''',
+      r'''x.''',
+      r'''x.''',
+      r'''a.''',
+      r'''s.''',
+      r'''o.''',
+      r'''n.''',
+      r'''d.'''
+    ],
+    'STANDALONENARROWMONTHS': <dynamic>[
+      r'''X''',
+      r'''F''',
+      r'''M''',
+      r'''A''',
+      r'''M''',
+      r'''X''',
+      r'''X''',
+      r'''A''',
+      r'''S''',
+      r'''O''',
+      r'''N''',
+      r'''D'''
+    ],
+    'MONTHS': <dynamic>[
+      r'''xaneiro''',
+      r'''febreiro''',
+      r'''marzo''',
+      r'''abril''',
+      r'''maio''',
+      r'''xuño''',
+      r'''xullo''',
+      r'''agosto''',
+      r'''setembro''',
+      r'''outubro''',
+      r'''novembro''',
+      r'''decembro'''
+    ],
+    'STANDALONEMONTHS': <dynamic>[
+      r'''Xaneiro''',
+      r'''Febreiro''',
+      r'''Marzo''',
+      r'''Abril''',
+      r'''Maio''',
+      r'''Xuño''',
+      r'''Xullo''',
+      r'''Agosto''',
+      r'''Setembro''',
+      r'''Outubro''',
+      r'''Novembro''',
+      r'''Decembro'''
+    ],
+    'SHORTMONTHS': <dynamic>[
+      r'''xan.''',
+      r'''feb.''',
+      r'''mar.''',
+      r'''abr.''',
+      r'''maio''',
+      r'''xuño''',
+      r'''xul.''',
+      r'''ago.''',
+      r'''set.''',
+      r'''out.''',
+      r'''nov.''',
+      r'''dec.'''
+    ],
+    'STANDALONESHORTMONTHS': <dynamic>[
+      r'''Xan.''',
+      r'''Feb.''',
+      r'''Mar.''',
+      r'''Abr.''',
+      r'''Maio''',
+      r'''Xuño''',
+      r'''Xul.''',
+      r'''Ago.''',
+      r'''Set.''',
+      r'''Out.''',
+      r'''Nov.''',
+      r'''Dec.'''
+    ],
+    'WEEKDAYS': <dynamic>[
+      r'''domingo''',
+      r'''luns''',
+      r'''martes''',
+      r'''mércores''',
+      r'''xoves''',
+      r'''venres''',
+      r'''sábado'''
+    ],
+    'STANDALONEWEEKDAYS': <dynamic>[
+      r'''Domingo''',
+      r'''Luns''',
+      r'''Martes''',
+      r'''Mércores''',
+      r'''Xoves''',
+      r'''Venres''',
+      r'''Sábado'''
+    ],
+    'SHORTWEEKDAYS': <dynamic>[
+      r'''dom.''',
+      r'''luns''',
+      r'''mar.''',
+      r'''mér.''',
+      r'''xov.''',
+      r'''ven.''',
+      r'''sáb.'''
+    ],
+    'STANDALONESHORTWEEKDAYS': <dynamic>[
+      r'''Dom.''',
+      r'''Luns''',
+      r'''Mar.''',
+      r'''Mér.''',
+      r'''Xov.''',
+      r'''Ven.''',
+      r'''Sáb.'''
+    ],
+    'NARROWWEEKDAYS': <dynamic>[
+      r'''d.''',
+      r'''l.''',
+      r'''m.''',
+      r'''m.''',
+      r'''x.''',
+      r'''v.''',
+      r'''s.'''
+    ],
+    'STANDALONENARROWWEEKDAYS': <dynamic>[
+      r'''D''',
+      r'''L''',
+      r'''M''',
+      r'''M''',
+      r'''X''',
+      r'''V''',
+      r'''S'''
+    ],
+    'SHORTQUARTERS': <dynamic>[r'''T1''', r'''T2''', r'''T3''', r'''T4'''],
+    'QUARTERS': <dynamic>[
+      r'''1.º trimestre''',
+      r'''2.º trimestre''',
+      r'''3.º trimestre''',
+      r'''4.º trimestre'''
+    ],
+    'AMPMS': <dynamic>[r'''a.m.''', r'''p.m.'''],
+    'DATEFORMATS': <dynamic>[
+      r"""EEEE, d 'de' MMMM 'de' y""",
+      r"""d 'de' MMMM 'de' y""",
+      r'''dd/MM/y''',
+      r'''dd/MM/yy'''
+    ],
+    'TIMEFORMATS': <dynamic>[
+      r'''HH:mm:ss zzzz''',
+      r'''HH:mm:ss z''',
+      r'''HH:mm:ss''',
+      r'''HH:mm'''
+    ],
+    'AVAILABLEFORMATS': null,
+    'FIRSTDAYOFWEEK': 0,
+    'WEEKENDRANGE': <dynamic>[5, 6],
+    'FIRSTWEEKCUTOFFDAY': 3,
+    'DATETIMEFORMATS': <dynamic>[
+      r"""{0} 'do' {1}""",
+      r"""{0} 'do' {1}""",
+      r'''{0}, {1}''',
+      r'''{0}, {1}'''
+    ],
+  },
   'gsw': <String, dynamic>{
     'NAME': r'''gsw''',
     'ERAS': <dynamic>[r'''v. Chr.''', r'''n. Chr.'''],
@@ -12781,6 +12954,52 @@
     'zzzz': r'''zzzz''',
     'ZZZZ': r'''ZZZZ''',
   },
+  'gl': <String, String>{
+    'd': r'''d''',
+    'E': r'''ccc''',
+    'EEEE': r'''cccc''',
+    'LLL': r'''LLL''',
+    'LLLL': r'''LLLL''',
+    'M': r'''L''',
+    'Md': r'''d/M''',
+    'MEd': r'''EEE, d/M''',
+    'MMM': r'''LLL''',
+    'MMMd': r"""d 'de' MMM""",
+    'MMMEd': r"""EEE, d 'de' MMM""",
+    'MMMM': r'''LLLL''',
+    'MMMMd': r"""d 'de' MMMM""",
+    'MMMMEEEEd': r"""EEEE, d 'de' MMMM""",
+    'QQQ': r'''QQQ''',
+    'QQQQ': r'''QQQQ''',
+    'y': r'''y''',
+    'yM': r'''M/y''',
+    'yMd': r'''d/M/y''',
+    'yMEd': r'''EEE, d/M/y''',
+    'yMMM': r"""MMM 'de' y""",
+    'yMMMd': r'''d/MM/y''',
+    'yMMMEd': r'''EEE, d/MM/y''',
+    'yMMMM': r"""MMMM 'de' y""",
+    'yMMMMd': r"""d 'de' MMMM 'de' y""",
+    'yMMMMEEEEd': r"""EEEE, d 'de' MMMM 'de' y""",
+    'yQQQ': r'''QQQ y''',
+    'yQQQQ': r"""QQQQ 'de' y""",
+    'H': r'''HH''',
+    'Hm': r'''HH:mm''',
+    'Hms': r'''HH:mm:ss''',
+    'j': r'''HH''',
+    'jm': r'''HH:mm''',
+    'jms': r'''HH:mm:ss''',
+    'jmv': r'''HH:mm v''',
+    'jmz': r'''HH:mm z''',
+    'jz': r'''HH z''',
+    'm': r'''m''',
+    'ms': r'''mm:ss''',
+    's': r'''s''',
+    'v': r'''v''',
+    'z': r'''z''',
+    'zzzz': r'''zzzz''',
+    'ZZZZ': r'''ZZZZ''',
+  },
   'gsw': <String, String>{
     'd': r'''d''',
     'E': r'''EEE''',
diff --git a/packages/flutter_localizations/lib/src/l10n/localizations.dart b/packages/flutter_localizations/lib/src/l10n/localizations.dart
index 2644592..30b13de 100644
--- a/packages/flutter_localizations/lib/src/l10n/localizations.dart
+++ b/packages/flutter_localizations/lib/src/l10n/localizations.dart
@@ -3042,120 +3042,6 @@
   String get remainingTextFieldCharacterCountOther => r'Quedan $remainingCount caracteres';
 }
 
-/// The translations for Spanish Castilian, as used in Greenland (`es_GL`).
-class MaterialLocalizationEsGl extends MaterialLocalizationEs {
-  /// Create an instance of the translation bundle for Spanish Castilian, as used in Greenland.
-  ///
-  /// For details on the meaning of the arguments, see [GlobalMaterialLocalizations].
-  const MaterialLocalizationEsGl({
-    String localeName = 'es_GL',
-    @required intl.DateFormat fullYearFormat,
-    @required intl.DateFormat mediumDateFormat,
-    @required intl.DateFormat longDateFormat,
-    @required intl.DateFormat yearMonthFormat,
-    @required intl.NumberFormat decimalFormat,
-    @required intl.NumberFormat twoDigitZeroPaddedFormat,
-  }) : super(
-    localeName: localeName,
-    fullYearFormat: fullYearFormat,
-    mediumDateFormat: mediumDateFormat,
-    longDateFormat: longDateFormat,
-    yearMonthFormat: yearMonthFormat,
-    decimalFormat: decimalFormat,
-    twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat,
-  );
-
-  @override
-  String get openAppDrawerTooltip => r'Abrir o menú de navegación';
-
-  @override
-  String get closeButtonTooltip => r'Pechar';
-
-  @override
-  String get nextMonthTooltip => r'Mes seguinte';
-
-  @override
-  String get nextPageTooltip => r'Páxina seguinte';
-
-  @override
-  String get previousPageTooltip => r'Páxina anterior';
-
-  @override
-  String get showMenuTooltip => r'Amosar menú';
-
-  @override
-  String get licensesPageTitle => r'Licenzas';
-
-  @override
-  String get pageRowsInfoTitleApproximateRaw => r'$firstRow‑$lastRow de unhas $rowCount';
-
-  @override
-  String get rowsPerPageTitle => r'Ringleiras por páxina:';
-
-  @override
-  String get tabLabelRaw => r'Pestana $tabIndex de $tabCount';
-
-  @override
-  String get selectedRowCountTitleZero => r'Non se seleccionaron elementos';
-
-  @override
-  String get selectedRowCountTitleOne => r'1 elemento seleccionado';
-
-  @override
-  String get selectedRowCountTitleOther => r'$selectedRowCount elementos seleccionados';
-
-  @override
-  String get closeButtonLabel => r'PECHAR';
-
-  @override
-  String get viewLicensesButtonLabel => r'VER LICENZAS';
-
-  @override
-  String get hideAccountsLabel => r'Ocultar contas';
-
-  @override
-  String get showAccountsLabel => r'Amosar contas';
-
-  @override
-  String get modalBarrierDismissLabel => r'Pechar';
-
-  @override
-  String get popupMenuLabel => r'Menú emerxente';
-
-  @override
-  String get dialogLabel => r'Cadro de diálogo';
-
-  @override
-  String get searchFieldLabel => r'Procurar';
-
-  @override
-  String get reorderItemToStart => r'Mover ao comezo';
-
-  @override
-  String get reorderItemToEnd => r'Mover ao fin';
-
-  @override
-  String get reorderItemUp => r'Mover arriba';
-
-  @override
-  String get reorderItemDown => r'Mover abaixo';
-
-  @override
-  String get reorderItemLeft => r'Mover a esquerda';
-
-  @override
-  String get reorderItemRight => r'Mover a dereita';
-
-  @override
-  String get collapsedIconTapHint => r'Amosar';
-
-  @override
-  String get remainingTextFieldCharacterCountOne => r'Queda 1 carácter.';
-
-  @override
-  String get remainingTextFieldCharacterCountOther => r'Quedan $remainingCount caracteres';
-}
-
 /// The translations for Spanish Castilian, as used in Guatemala (`es_GT`).
 class MaterialLocalizationEsGt extends MaterialLocalizationEs {
   /// Create an instance of the translation bundle for Spanish Castilian, as used in Guatemala.
@@ -5178,6 +5064,210 @@
   TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.frenchCanadian;
 }
 
+/// The translations for Galician (`gl`).
+class MaterialLocalizationGl extends GlobalMaterialLocalizations {
+  /// Create an instance of the translation bundle for Galician.
+  ///
+  /// For details on the meaning of the arguments, see [GlobalMaterialLocalizations].
+  const MaterialLocalizationGl({
+    String localeName = 'gl',
+    @required intl.DateFormat fullYearFormat,
+    @required intl.DateFormat mediumDateFormat,
+    @required intl.DateFormat longDateFormat,
+    @required intl.DateFormat yearMonthFormat,
+    @required intl.NumberFormat decimalFormat,
+    @required intl.NumberFormat twoDigitZeroPaddedFormat,
+  }) : super(
+    localeName: localeName,
+    fullYearFormat: fullYearFormat,
+    mediumDateFormat: mediumDateFormat,
+    longDateFormat: longDateFormat,
+    yearMonthFormat: yearMonthFormat,
+    decimalFormat: decimalFormat,
+    twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat,
+  );
+
+  @override
+  String get aboutListTileTitleRaw => r'Sobre $applicationName';
+
+  @override
+  String get alertDialogLabel => r'Alerta';
+
+  @override
+  String get anteMeridiemAbbreviation => r'A.M.';
+
+  @override
+  String get backButtonTooltip => r'Atrás';
+
+  @override
+  String get cancelButtonLabel => r'CANCELAR';
+
+  @override
+  String get closeButtonLabel => r'PECHAR';
+
+  @override
+  String get closeButtonTooltip => r'Pechar';
+
+  @override
+  String get collapsedIconTapHint => r'Amosar';
+
+  @override
+  String get continueButtonLabel => r'CONTINUAR';
+
+  @override
+  String get copyButtonLabel => r'COPIAR';
+
+  @override
+  String get cutButtonLabel => r'CORTAR';
+
+  @override
+  String get deleteButtonTooltip => r'Eliminar';
+
+  @override
+  String get dialogLabel => r'Cadro de diálogo';
+
+  @override
+  String get drawerLabel => r'Menú de navegación';
+
+  @override
+  String get expandedIconTapHint => r'Ocultar';
+
+  @override
+  String get hideAccountsLabel => r'Ocultar contas';
+
+  @override
+  String get licensesPageTitle => r'Licenzas';
+
+  @override
+  String get modalBarrierDismissLabel => r'Pechar';
+
+  @override
+  String get nextMonthTooltip => r'Mes seguinte';
+
+  @override
+  String get nextPageTooltip => r'Páxina seguinte';
+
+  @override
+  String get okButtonLabel => r'ACEPTAR';
+
+  @override
+  String get openAppDrawerTooltip => r'Abrir o menú de navegación';
+
+  @override
+  String get pageRowsInfoTitleRaw => r'$firstRow‑$lastRow de $rowCount';
+
+  @override
+  String get pageRowsInfoTitleApproximateRaw => r'$firstRow‑$lastRow de unhas $rowCount';
+
+  @override
+  String get pasteButtonLabel => r'PEGAR';
+
+  @override
+  String get popupMenuLabel => r'Menú emerxente';
+
+  @override
+  String get postMeridiemAbbreviation => r'P.M.';
+
+  @override
+  String get previousMonthTooltip => r'Mes anterior';
+
+  @override
+  String get previousPageTooltip => r'Páxina anterior';
+
+  @override
+  String get refreshIndicatorSemanticLabel => r'Actualizar';
+
+  @override
+  String get remainingTextFieldCharacterCountFew => null;
+
+  @override
+  String get remainingTextFieldCharacterCountMany => null;
+
+  @override
+  String get remainingTextFieldCharacterCountOne => r'Queda 1 carácter.';
+
+  @override
+  String get remainingTextFieldCharacterCountOther => r'Quedan $remainingCount caracteres';
+
+  @override
+  String get remainingTextFieldCharacterCountTwo => null;
+
+  @override
+  String get remainingTextFieldCharacterCountZero => r'TBD';
+
+  @override
+  String get reorderItemDown => r'Mover abaixo';
+
+  @override
+  String get reorderItemLeft => r'Mover a esquerda';
+
+  @override
+  String get reorderItemRight => r'Mover a dereita';
+
+  @override
+  String get reorderItemToEnd => r'Mover ao fin';
+
+  @override
+  String get reorderItemToStart => r'Mover ao comezo';
+
+  @override
+  String get reorderItemUp => r'Mover arriba';
+
+  @override
+  String get rowsPerPageTitle => r'Ringleiras por páxina:';
+
+  @override
+  ScriptCategory get scriptCategory => ScriptCategory.englishLike;
+
+  @override
+  String get searchFieldLabel => r'Procurar';
+
+  @override
+  String get selectAllButtonLabel => r'SELECCIONAR TODO';
+
+  @override
+  String get selectedRowCountTitleFew => null;
+
+  @override
+  String get selectedRowCountTitleMany => null;
+
+  @override
+  String get selectedRowCountTitleOne => r'1 elemento seleccionado';
+
+  @override
+  String get selectedRowCountTitleOther => r'$selectedRowCount elementos seleccionados';
+
+  @override
+  String get selectedRowCountTitleTwo => null;
+
+  @override
+  String get selectedRowCountTitleZero => r'Non se seleccionaron elementos';
+
+  @override
+  String get showAccountsLabel => r'Amosar contas';
+
+  @override
+  String get showMenuTooltip => r'Amosar menú';
+
+  @override
+  String get signedInLabel => r'Sesión iniciada';
+
+  @override
+  String get tabLabelRaw => r'Pestana $tabIndex de $tabCount';
+
+  @override
+  TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.H_colon_mm;
+
+  @override
+  String get timePickerHourModeAnnouncement => r'Seleccionar horas';
+
+  @override
+  String get timePickerMinuteModeAnnouncement => r'Seleccionar minutos';
+
+  @override
+  String get viewLicensesButtonLabel => r'VER LICENZAS';
+}
+
 /// The translations for Swiss German Alemannic Alsatian (`gsw`).
 class MaterialLocalizationGsw extends GlobalMaterialLocalizations {
   /// Create an instance of the translation bundle for Swiss German Alemannic Alsatian.
@@ -12867,6 +12957,7 @@
   'fi', // Finnish
   'fil', // Filipino Pilipino
   'fr', // French
+  'gl', // Galician
   'gsw', // Swiss German Alemannic Alsatian
   'he', // Hebrew
   'hi', // Hindi
@@ -12923,12 +13014,13 @@
 ///  * `de` - German (plus one country variation)
 ///  * `el` - Modern Greek
 ///  * `en` - English (plus 7 country variations)
-///  * `es` - Spanish Castilian (plus 21 country variations)
+///  * `es` - Spanish Castilian (plus 20 country variations)
 ///  * `et` - Estonian
 ///  * `fa` - Persian
 ///  * `fi` - Finnish
 ///  * `fil` - Filipino Pilipino
 ///  * `fr` - French (plus one country variation)
+///  * `gl` - Galician
 ///  * `gsw` - Swiss German Alemannic Alsatian
 ///  * `he` - Hebrew
 ///  * `hi` - Hindi
@@ -13036,8 +13128,6 @@
           return MaterialLocalizationEsDo(fullYearFormat: fullYearFormat, mediumDateFormat: mediumDateFormat, longDateFormat: longDateFormat, yearMonthFormat: yearMonthFormat, decimalFormat: decimalFormat, twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat);
         case 'EC':
           return MaterialLocalizationEsEc(fullYearFormat: fullYearFormat, mediumDateFormat: mediumDateFormat, longDateFormat: longDateFormat, yearMonthFormat: yearMonthFormat, decimalFormat: decimalFormat, twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat);
-        case 'GL':
-          return MaterialLocalizationEsGl(fullYearFormat: fullYearFormat, mediumDateFormat: mediumDateFormat, longDateFormat: longDateFormat, yearMonthFormat: yearMonthFormat, decimalFormat: decimalFormat, twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat);
         case 'GT':
           return MaterialLocalizationEsGt(fullYearFormat: fullYearFormat, mediumDateFormat: mediumDateFormat, longDateFormat: longDateFormat, yearMonthFormat: yearMonthFormat, decimalFormat: decimalFormat, twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat);
         case 'HN':
@@ -13080,6 +13170,8 @@
       }
       return MaterialLocalizationFr(fullYearFormat: fullYearFormat, mediumDateFormat: mediumDateFormat, longDateFormat: longDateFormat, yearMonthFormat: yearMonthFormat, decimalFormat: decimalFormat, twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat);
     }
+    case 'gl':
+      return MaterialLocalizationGl(fullYearFormat: fullYearFormat, mediumDateFormat: mediumDateFormat, longDateFormat: longDateFormat, yearMonthFormat: yearMonthFormat, decimalFormat: decimalFormat, twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat);
     case 'gsw':
       return MaterialLocalizationGsw(fullYearFormat: fullYearFormat, mediumDateFormat: mediumDateFormat, longDateFormat: longDateFormat, yearMonthFormat: yearMonthFormat, decimalFormat: decimalFormat, twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat);
     case 'he':
diff --git a/packages/flutter_localizations/lib/src/l10n/material_es_GL.arb b/packages/flutter_localizations/lib/src/l10n/material_gl.arb
similarity index 100%
rename from packages/flutter_localizations/lib/src/l10n/material_es_GL.arb
rename to packages/flutter_localizations/lib/src/l10n/material_gl.arb
