import 'dart:ui'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../../core/config/app_constants.dart'; /// Langues prises en charge par l'application. const List supportedLocales = [Locale('en'), Locale('fr')]; /// Gère la langue sélectionnée, persistée dans les préférences. class LocaleNotifier extends Notifier { @override Locale build() { _loadSaved(); return const Locale('fr'); } Future _loadSaved() async { final prefs = await SharedPreferences.getInstance(); final code = prefs.getString(AppConstants.prefsLocale); if (code != null && supportedLocales.any((l) => l.languageCode == code)) { state = Locale(code); } } Future setLocale(Locale locale) async { state = locale; final prefs = await SharedPreferences.getInstance(); await prefs.setString(AppConstants.prefsLocale, locale.languageCode); } } /// Langue active de l'application. final localeProvider = NotifierProvider(LocaleNotifier.new);