Clean project: remove test files, debug logs, and add documentation

This commit is contained in:
dahoud
2025-10-05 13:41:33 +00:00
parent 96a17eadbd
commit 291847924c
438 changed files with 65754 additions and 32713 deletions

View File

@@ -0,0 +1,102 @@
/// Provider pour gérer la locale de l'application
library locale_provider;
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../utils/logger.dart';
/// Provider pour la gestion de la locale
class LocaleProvider extends ChangeNotifier {
static const String _localeKey = 'app_locale';
Locale _locale = const Locale('fr');
/// Locale actuelle
Locale get locale => _locale;
/// Locales supportées
static const List<Locale> supportedLocales = [
Locale('fr'),
Locale('en'),
];
/// Initialiser la locale depuis les préférences
Future<void> initialize() async {
try {
final prefs = await SharedPreferences.getInstance();
final localeCode = prefs.getString(_localeKey);
if (localeCode != null) {
_locale = Locale(localeCode);
AppLogger.info('Locale chargée: $localeCode');
} else {
AppLogger.info('Locale par défaut: fr');
}
notifyListeners();
} catch (e, stackTrace) {
AppLogger.error(
'Erreur lors du chargement de la locale',
error: e,
stackTrace: stackTrace,
);
}
}
/// Changer la locale
Future<void> setLocale(Locale locale) async {
if (!supportedLocales.contains(locale)) {
AppLogger.warning('Locale non supportée: ${locale.languageCode}');
return;
}
if (_locale == locale) {
return;
}
try {
_locale = locale;
notifyListeners();
final prefs = await SharedPreferences.getInstance();
await prefs.setString(_localeKey, locale.languageCode);
AppLogger.info('Locale changée: ${locale.languageCode}');
AppLogger.userAction('Change language', data: {'locale': locale.languageCode});
} catch (e, stackTrace) {
AppLogger.error(
'Erreur lors du changement de locale',
error: e,
stackTrace: stackTrace,
);
}
}
/// Basculer entre FR et EN
Future<void> toggleLocale() async {
final newLocale = _locale.languageCode == 'fr'
? const Locale('en')
: const Locale('fr');
await setLocale(newLocale);
}
/// Obtenir le nom de la langue actuelle
String get currentLanguageName {
switch (_locale.languageCode) {
case 'fr':
return 'Français';
case 'en':
return 'English';
default:
return 'Français';
}
}
/// Vérifier si la locale est française
bool get isFrench => _locale.languageCode == 'fr';
/// Vérifier si la locale est anglaise
bool get isEnglish => _locale.languageCode == 'en';
}