import 'dart:ui' show PlatformDispatcher; import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'app.dart'; import 'core/locale/language_provider.dart'; import 'core/storage/local_preferences.dart'; import 'core/storage/local_preferences_provider.dart'; import 'firebase_options.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); final sharedPreferences = await SharedPreferences.getInstance(); // Detect system language on first launch. const supportedLanguageCodes = { 'en', 'ru', 'es', 'de', 'fr', 'it', 'pt', 'zh', 'ja', 'ko', 'ar', 'hi', }; final systemLanguageCode = PlatformDispatcher.instance.locale.languageCode; final initialLanguage = supportedLanguageCodes.contains(systemLanguageCode) ? systemLanguageCode : 'en'; runApp( ProviderScope( overrides: [ localPreferencesProvider.overrideWithValue( LocalPreferences(sharedPreferences), ), languageProvider.overrideWith((ref) => initialLanguage), ], child: const App(), ), ); }