import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../l10n/app_strings.dart'; const _kLocaleKey = 'app_locale'; class LocaleNotifier extends StateNotifier { LocaleNotifier(Locale initial) : super(initial); Future setLocale(Locale locale) async { state = locale; final prefs = await SharedPreferences.getInstance(); await prefs.setString(_kLocaleKey, locale.languageCode); } static Future load() async { final prefs = await SharedPreferences.getInstance(); final code = prefs.getString(_kLocaleKey) ?? 'tr'; return Locale(code); } } final localeProvider = StateNotifierProvider( (ref) => LocaleNotifier(const Locale('tr')), ); final stringsProvider = Provider((ref) { final locale = ref.watch(localeProvider); return AppStrings.of(locale.languageCode); }); const supportedLocales = [ Locale('tr'), Locale('en'), Locale('ru'), Locale('ar'), Locale('de'), ];