/// Generated file. Do not edit. /// /// Source: lib/i18n /// To regenerate, run: `dart run slang` /// /// Locales: 2 /// Strings: 20 (10 per locale) /// /// Built on 2025-04-02 at 18:04 UTC // 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_en.g.dart' deferred as l_en; part 'strings_ru.g.dart'; /// Supported locales. /// /// Usage: /// - LocaleSettings.setLocale(AppLocale.ru) // set locale /// - Locale locale = AppLocale.ru.flutterLocale // get flutter locale from enum /// - if (LocaleSettings.currentLocale == AppLocale.ru) // locale check enum AppLocale with BaseAppLocale { ru(languageCode: 'ru'), en(languageCode: 'en'); 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 build({ Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, }) async { switch (this) { case AppLocale.ru: return TranslationsRu( overrides: overrides, cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); case AppLocale.en: await l_en.loadLibrary(); return l_en.TranslationsEn( overrides: overrides, cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); } } @override Translations buildSync({ Map? overrides, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver, }) { switch (this) { case AppLocale.ru: return TranslationsRu( overrides: overrides, cardinalResolver: cardinalResolver, ordinalResolver: ordinalResolver, ); case AppLocale.en: return l_en.TranslationsEn( 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; /// String b = t['someKey.anotherKey']; // Only for edge cases! 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. /// String b = t['someKey.anotherKey']; // Only for edge cases! class TranslationProvider extends BaseTranslationProvider { TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance); static InheritedLocaleData of(BuildContext context) => InheritedLocaleData.of(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 { 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 getLocaleStream() => instance.getLocaleStream(); static Future setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale); static Future setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale); static Future useDeviceLocale() => instance.useDeviceLocale(); static Future 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 { AppLocaleUtils._() : super( baseLocale: AppLocale.ru, 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 get supportedLocales => instance.supportedLocales; static List get supportedLocalesRaw => instance.supportedLocalesRaw; }