// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widget_previews.dart'; import 'package:flutter/widgets.dart'; PreviewLocalizationsData forLocale(String locale) { return PreviewLocalizationsData( locale: Locale(locale), localizationsDelegates: AppLocalizations.localizationsDelegates, supportedLocales: AppLocalizations.supportedLocales, ); } // These classes were originally generated by flutter gen-l10n for the // gen_l10n_example application. abstract class AppLocalizations { AppLocalizations(String locale) : // This isn't canonicalized, otherwise we'd need to depend on package:intl // just for testing and we don't particularly care about this value. localeName = locale; final String localeName; static AppLocalizations? of(BuildContext context) { return Localizations.of(context, AppLocalizations); } static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); static const List> localizationsDelegates = >[ delegate, // The following delegates should also technically be included, but we // omit them to avoid the dependency on package:flutter_localizations // just for testing. // // GlobalMaterialLocalizations.delegate, // GlobalCupertinoLocalizations.delegate, // GlobalWidgetsLocalizations.delegate, ]; static const List supportedLocales = [ Locale('en'), Locale('es'), ]; String get helloWorld; } class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupAppLocalizations(locale)); } @override bool isSupported(Locale locale) => ['en', 'es'].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { // Lookup logic when only language code is specified. switch (locale.languageCode) { case 'en': return AppLocalizationsEn(); case 'es': return AppLocalizationsEs(); } throw FlutterError( 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' 'an issue with the localizations generation tool. Please file an issue ' 'on GitHub with a reproducible sample app and the gen-l10n configuration ' 'that was used.', ); } /// The translations for English (`en`). class AppLocalizationsEn extends AppLocalizations { AppLocalizationsEn([super.locale = 'en']); @override String get helloWorld => 'Hello World!'; } /// The translations for Spanish Castilian (`es`). class AppLocalizationsEs extends AppLocalizations { AppLocalizationsEs([super.locale = 'es']); @override String get helloWorld => '¡Hola Mundo!'; }