load method
Implementation
Future<void> load({String? fallbackLocale}) async {
final storage = await DefaultKeyValueStorage.getInstance();
final storedTheme = storage.getString(_catalogThemeModeStorageKey);
final storedLanguage = storage.getString(_catalogDisplayLanguageStorageKey);
_themeMode = switch (storedTheme) {
'light' => CatalogThemeMode.light,
'dark' => CatalogThemeMode.dark,
_ => CatalogThemeMode.system,
};
if (storedLanguage != null && storedLanguage.trim().isNotEmpty) {
_displayLanguage = CatalogDisplayLanguage.fromCode(storedLanguage);
} else {
// Use fallback locale if provided, otherwise use platform locale
if (fallbackLocale != null && fallbackLocale.trim().isNotEmpty) {
_displayLanguage = CatalogDisplayLanguage.fromCode(fallbackLocale);
} else {
final platformLocale = PlatformDispatcher.instance.locale;
_displayLanguage = CatalogDisplayLanguage.fromCode(
platformLocale.countryCode == null || platformLocale.countryCode!.isEmpty
? platformLocale.languageCode
: '${platformLocale.languageCode}-${platformLocale.countryCode}',
);
}
}
_loaded = true;
notifyListeners();
}