content: /// Generated file. Do not edit.
  ///
  /// Source: lib/i18n
  /// To regenerate, run: `dart run slang`
  
  // coverage:ignore-file
  // ignore_for_file: type=lint, unused_import
  
  import 'package:flutter/widgets.dart';
  import 'package:intl/intl.dart';
  import 'package:slang/generated.dart';
  import 'package:slang_flutter/slang_flutter.dart';
  export 'package:slang_flutter/slang_flutter.dart';
  
  import 'strings_ar.g.dart' deferred as l_ar;
  import 'strings_cs.g.dart' deferred as l_cs;
  import 'strings_de.g.dart' deferred as l_de;
  import 'strings_es.g.dart' deferred as l_es;
  import 'strings_fa.g.dart' deferred as l_fa;
  import 'strings_fr.g.dart' deferred as l_fr;
  import 'strings_he.g.dart' deferred as l_he;
  import 'strings_hu.g.dart' deferred as l_hu;
  import 'strings_it.g.dart' deferred as l_it;
  import 'strings_ja.g.dart' deferred as l_ja;
  import 'strings_pt_BR.g.dart' deferred as l_pt_BR;
  import 'strings_ru.g.dart' deferred as l_ru;
  import 'strings_tr.g.dart' deferred as l_tr;
  import 'strings_zh_Hans_CN.g.dart' deferred as l_zh_Hans_CN;
  import 'strings_zh_Hant_TW.g.dart' deferred as l_zh_Hant_TW;
  part 'strings_en.g.dart';
  
  /// Supported locales.
  ///
  /// Usage:
  /// - LocaleSettings.setLocale(AppLocale.en) // set locale
  /// - Locale locale = AppLocale.en.flutterLocale // get flutter locale from enum
  /// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
  enum AppLocale with BaseAppLocale<AppLocale, Translations> {
  	en(languageCode: 'en'),
  	ar(languageCode: 'ar'),
  	cs(languageCode: 'cs'),
  	de(languageCode: 'de'),
  	es(languageCode: 'es'),
  	fa(languageCode: 'fa'),
  	fr(languageCode: 'fr'),
  	he(languageCode: 'he'),
  	hu(languageCode: 'hu'),
  	it(languageCode: 'it'),
  	ja(languageCode: 'ja'),
  	ptBr(languageCode: 'pt', countryCode: 'BR'),
  	ru(languageCode: 'ru'),
  	tr(languageCode: 'tr'),
  	zhHansCn(languageCode: 'zh', scriptCode: 'Hans', countryCode: 'CN'),
  	zhHantTw(languageCode: 'zh', scriptCode: 'Hant', countryCode: 'TW');
  
  	const AppLocale({
  		required this.languageCode,
  		this.scriptCode, // ignore: unused_element, unused_element_parameter
  		this.countryCode, // ignore: unused_element, unused_element_parameter
  	});
  
  	@override final String languageCode;
  	@override final String? scriptCode;
  	@override final String? countryCode;
  
  	@override
  	Future<Translations> build({
  		Map<String, Node>? overrides,
  		PluralResolver? cardinalResolver,
  		PluralResolver? ordinalResolver,
  	}) async {
  		switch (this) {
  			case AppLocale.en:
  				return TranslationsEn(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ar:
  				await l_ar.loadLibrary();
  				return l_ar.TranslationsAr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.cs:
  				await l_cs.loadLibrary();
  				return l_cs.TranslationsCs(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.de:
  				await l_de.loadLibrary();
  				return l_de.TranslationsDe(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.es:
  				await l_es.loadLibrary();
  				return l_es.TranslationsEs(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.fa:
  				await l_fa.loadLibrary();
  				return l_fa.TranslationsFa(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.fr:
  				await l_fr.loadLibrary();
  				return l_fr.TranslationsFr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.he:
  				await l_he.loadLibrary();
  				return l_he.TranslationsHe(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.hu:
  				await l_hu.loadLibrary();
  				return l_hu.TranslationsHu(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.it:
  				await l_it.loadLibrary();
  				return l_it.TranslationsIt(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ja:
  				await l_ja.loadLibrary();
  				return l_ja.TranslationsJa(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ptBr:
  				await l_pt_BR.loadLibrary();
  				return l_pt_BR.TranslationsPtBr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ru:
  				await l_ru.loadLibrary();
  				return l_ru.TranslationsRu(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.tr:
  				await l_tr.loadLibrary();
  				return l_tr.TranslationsTr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.zhHansCn:
  				await l_zh_Hans_CN.loadLibrary();
  				return l_zh_Hans_CN.TranslationsZhHansCn(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.zhHantTw:
  				await l_zh_Hant_TW.loadLibrary();
  				return l_zh_Hant_TW.TranslationsZhHantTw(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  		}
  	}
  
  	@override
  	Translations buildSync({
  		Map<String, Node>? overrides,
  		PluralResolver? cardinalResolver,
  		PluralResolver? ordinalResolver,
  	}) {
  		switch (this) {
  			case AppLocale.en:
  				return TranslationsEn(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ar:
  				return l_ar.TranslationsAr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.cs:
  				return l_cs.TranslationsCs(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.de:
  				return l_de.TranslationsDe(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.es:
  				return l_es.TranslationsEs(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.fa:
  				return l_fa.TranslationsFa(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.fr:
  				return l_fr.TranslationsFr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.he:
  				return l_he.TranslationsHe(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.hu:
  				return l_hu.TranslationsHu(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.it:
  				return l_it.TranslationsIt(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ja:
  				return l_ja.TranslationsJa(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ptBr:
  				return l_pt_BR.TranslationsPtBr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.ru:
  				return l_ru.TranslationsRu(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.tr:
  				return l_tr.TranslationsTr(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.zhHansCn:
  				return l_zh_Hans_CN.TranslationsZhHansCn(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  			case AppLocale.zhHantTw:
  				return l_zh_Hant_TW.TranslationsZhHantTw(
  					overrides: overrides,
  					cardinalResolver: cardinalResolver,
  					ordinalResolver: ordinalResolver,
  				);
  		}
  	}
  
  	/// Gets current instance managed by [LocaleSettings].
  	Translations get translations => LocaleSettings.instance.getTranslations(this);
  }
  
  /// Method A: Simple
  ///
  /// No rebuild after locale change.
  /// Translation happens during initialization of the widget (call of t).
  /// Configurable via 'translate_var'.
  ///
  /// Usage:
  /// String a = t.someKey.anotherKey;
  Translations get t => LocaleSettings.instance.currentTranslations;
  
  /// Method B: Advanced
  ///
  /// All widgets using this method will trigger a rebuild when locale changes.
  /// Use this if you have e.g. a settings page where the user can select the locale during runtime.
  ///
  /// Step 1:
  /// wrap your App with
  /// TranslationProvider(
  /// 	child: MyApp()
  /// );
  ///
  /// Step 2:
  /// final t = Translations.of(context); // Get t variable.
  /// String a = t.someKey.anotherKey; // Use t variable.
  class TranslationProvider extends BaseTranslationProvider<AppLocale, Translations> {
  	TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance);
  
  	static InheritedLocaleData<AppLocale, Translations> of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context);
  }
  
  /// Method B shorthand via [BuildContext] extension method.
  /// Configurable via 'translate_var'.
  ///
  /// Usage (e.g. in a widget's build method):
  /// context.t.someKey.anotherKey
  extension BuildContextTranslationsExtension on BuildContext {
  	Translations get t => TranslationProvider.of(this).translations;
  }
  
  /// Manages all translation instances and the current locale
  class LocaleSettings extends BaseFlutterLocaleSettings<AppLocale, Translations> {
  	LocaleSettings._() : super(
  		utils: AppLocaleUtils.instance,
  		lazy: true,
  	);
  
  	static final instance = LocaleSettings._();
  
  	// static aliases (checkout base methods for documentation)
  	static AppLocale get currentLocale => instance.currentLocale;
  	static Stream<AppLocale> getLocaleStream() => instance.getLocaleStream();
  	static Future<AppLocale> setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
  	static Future<AppLocale> setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
  	static Future<AppLocale> useDeviceLocale() => instance.useDeviceLocale();
  	static Future<void> setPluralResolver({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolver(
  		language: language,
  		locale: locale,
  		cardinalResolver: cardinalResolver,
  		ordinalResolver: ordinalResolver,
  	);
  
  	// synchronous versions
  	static AppLocale setLocaleSync(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocaleSync(locale, listenToDeviceLocale: listenToDeviceLocale);
  	static AppLocale setLocaleRawSync(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRawSync(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
  	static AppLocale useDeviceLocaleSync() => instance.useDeviceLocaleSync();
  	static void setPluralResolverSync({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolverSync(
  		language: language,
  		locale: locale,
  		cardinalResolver: cardinalResolver,
  		ordinalResolver: ordinalResolver,
  	);
  }
  
  /// Provides utility functions without any side effects.
  class AppLocaleUtils extends BaseAppLocaleUtils<AppLocale, Translations> {
  	AppLocaleUtils._() : super(
  		baseLocale: AppLocale.en,
  		locales: AppLocale.values,
  	);
  
  	static final instance = AppLocaleUtils._();
  
  	// static aliases (checkout base methods for documentation)
  	static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
  	static AppLocale parseLocaleParts({required String languageCode, String? scriptCode, String? countryCode}) => instance.parseLocaleParts(languageCode: languageCode, scriptCode: scriptCode, countryCode: countryCode);
  	static AppLocale findDeviceLocale() => instance.findDeviceLocale();
  	static List<Locale> get supportedLocales => instance.supportedLocales;
  	static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
  }
  