1- import 'dart:ui' as ui;
1+
22import 'package:flutter/material.dart' ;
33import 'package:flutter_localizations/flutter_localizations.dart' ;
44import 'package:flutter_riverpod/flutter_riverpod.dart' ;
@@ -10,6 +10,8 @@ import 'package:mostro_mobile/generated/l10n.dart';
1010import 'package:mostro_mobile/features/auth/notifiers/auth_state.dart' ;
1111import 'package:mostro_mobile/services/lifecycle_manager.dart' ;
1212import 'package:mostro_mobile/shared/providers/app_init_provider.dart' ;
13+ import 'package:mostro_mobile/features/settings/settings_provider.dart' ;
14+ import 'package:mostro_mobile/shared/notifiers/locale_notifier.dart' ;
1315
1416class MostroApp extends ConsumerStatefulWidget {
1517 const MostroApp ({super .key});
@@ -47,15 +49,19 @@ class _MostroAppState extends ConsumerState<MostroApp> {
4749 });
4850 });
4951
50- final systemLocale = ui.PlatformDispatcher .instance.locale;
52+ // Watch both system locale and settings for changes
53+ final systemLocale = ref.watch (systemLocaleProvider);
54+ final settings = ref.watch (settingsProvider);
5155
5256 return MaterialApp .router (
5357 title: 'Mostro' ,
5458 theme: AppTheme .theme,
5559 darkTheme: AppTheme .theme,
5660 routerConfig: goRouter,
57- // Force Spanish locale for testing if device is Spanish
58- locale: systemLocale.languageCode == 'es' ? const Locale ('es' ) : null ,
61+ // Use language override from settings if available, otherwise let callback handle detection
62+ locale: settings.selectedLanguage != null
63+ ? Locale (settings.selectedLanguage! )
64+ : systemLocale,
5965 localizationsDelegates: const [
6066 S .delegate,
6167 GlobalMaterialLocalizations .delegate,
@@ -64,6 +70,7 @@ class _MostroAppState extends ConsumerState<MostroApp> {
6470 ],
6571 supportedLocales: S .supportedLocales,
6672 localeResolutionCallback: (locale, supportedLocales) {
73+ // Use the current system locale from our provider
6774 final deviceLocale = locale ?? systemLocale;
6875
6976 // Check for Spanish language code (es) - includes es_AR, es_ES, etc.
@@ -78,8 +85,8 @@ class _MostroAppState extends ConsumerState<MostroApp> {
7885 }
7986 }
8087
81- // If no match found, return English as fallback
82- return const Locale ('en ' );
88+ // If no match found, return Spanish as fallback
89+ return const Locale ('es ' );
8390 },
8491 );
8592 },
0 commit comments