move i18n

This commit is contained in:
55nknown 2022-10-31 14:50:26 +01:00
parent f39b9ffeb6
commit 4467267e61

View File

@ -74,82 +74,82 @@ class App extends StatelessWidget {
final kreta = KretaClient(user: user, settings: settings, status: status); final kreta = KretaClient(user: user, settings: settings, status: status);
final timetable = TimetableProvider(user: user, database: database, kreta: kreta); final timetable = TimetableProvider(user: user, database: database, kreta: kreta);
return I18n( return MultiProvider(
initialLocale: Locale(settings.language, settings.language.toUpperCase()), providers: [
child: MultiProvider( ChangeNotifierProvider<SettingsProvider>(create: (_) => settings),
providers: [ ChangeNotifierProvider<UserProvider>(create: (_) => user),
ChangeNotifierProvider<SettingsProvider>(create: (_) => settings), ChangeNotifierProvider<StatusProvider>(create: (_) => status),
ChangeNotifierProvider<UserProvider>(create: (_) => user), Provider<KretaClient>(create: (_) => kreta),
ChangeNotifierProvider<StatusProvider>(create: (_) => status), Provider<DatabaseProvider>(create: (context) => database),
Provider<KretaClient>(create: (_) => kreta), ChangeNotifierProvider<ThemeModeObserver>(create: (context) => ThemeModeObserver(initialTheme: settings.theme)),
Provider<DatabaseProvider>(create: (context) => database), ChangeNotifierProvider<NewsProvider>(create: (context) => NewsProvider(context: context)),
ChangeNotifierProvider<ThemeModeObserver>(create: (context) => ThemeModeObserver(initialTheme: settings.theme)), ChangeNotifierProvider<UpdateProvider>(create: (context) => UpdateProvider(context: context)),
ChangeNotifierProvider<NewsProvider>(create: (context) => NewsProvider(context: context)),
ChangeNotifierProvider<UpdateProvider>(create: (context) => UpdateProvider(context: context)),
// User data providers // User data providers
ChangeNotifierProvider<GradeProvider>(create: (context) => GradeProvider(context: context)), ChangeNotifierProvider<GradeProvider>(create: (context) => GradeProvider(context: context)),
ChangeNotifierProvider<TimetableProvider>(create: (_) => timetable), ChangeNotifierProvider<TimetableProvider>(create: (_) => timetable),
ChangeNotifierProvider<ExamProvider>(create: (context) => ExamProvider(context: context)), ChangeNotifierProvider<ExamProvider>(create: (context) => ExamProvider(context: context)),
ChangeNotifierProvider<HomeworkProvider>(create: (context) => HomeworkProvider(context: context)), ChangeNotifierProvider<HomeworkProvider>(create: (context) => HomeworkProvider(context: context)),
ChangeNotifierProvider<MessageProvider>(create: (context) => MessageProvider(context: context)), ChangeNotifierProvider<MessageProvider>(create: (context) => MessageProvider(context: context)),
ChangeNotifierProvider<NoteProvider>(create: (context) => NoteProvider(context: context)), ChangeNotifierProvider<NoteProvider>(create: (context) => NoteProvider(context: context)),
ChangeNotifierProvider<EventProvider>(create: (context) => EventProvider(context: context)), ChangeNotifierProvider<EventProvider>(create: (context) => EventProvider(context: context)),
ChangeNotifierProvider<AbsenceProvider>(create: (context) => AbsenceProvider(context: context)), ChangeNotifierProvider<AbsenceProvider>(create: (context) => AbsenceProvider(context: context)),
ChangeNotifierProvider<GradeCalculatorProvider>(create: (context) => GradeCalculatorProvider(context)), ChangeNotifierProvider<GradeCalculatorProvider>(create: (context) => GradeCalculatorProvider(context)),
ChangeNotifierProvider<LiveCardProvider>(create: (context) => LiveCardProvider(lessonProvider: timetable, settingsProvider: settings)) ChangeNotifierProvider<LiveCardProvider>(create: (context) => LiveCardProvider(lessonProvider: timetable, settingsProvider: settings))
], ],
child: Consumer<ThemeModeObserver>( child: Consumer<ThemeModeObserver>(
builder: (context, themeMode, child) { builder: (context, themeMode, child) {
return FutureBuilder<CorePalette?>( return FutureBuilder<CorePalette?>(
future: DynamicColorPlugin.getCorePalette(), future: DynamicColorPlugin.getCorePalette(),
builder: (context, snapshot) { builder: (context, snapshot) {
corePalette = snapshot.data; corePalette = snapshot.data;
return MaterialApp( return MaterialApp(
builder: (context, child) { builder: (context, child) {
// Limit font size scaling to 1.0 // Limit font size scaling to 1.0
double textScaleFactor = min(MediaQuery.of(context).textScaleFactor, 1.0); double textScaleFactor = min(MediaQuery.of(context).textScaleFactor, 1.0);
return MediaQuery( return I18n(
initialLocale: Locale(settings.language, settings.language.toUpperCase()),
child: MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: textScaleFactor), data: MediaQuery.of(context).copyWith(textScaleFactor: textScaleFactor),
child: child ?? Container(), child: child ?? Container(),
); ),
}, );
title: "Filc Napló", },
debugShowCheckedModeBanner: false, title: "Filc Napló",
theme: AppTheme.lightTheme(context, palette: corePalette), debugShowCheckedModeBanner: false,
darkTheme: AppTheme.darkTheme(context, palette: corePalette), theme: AppTheme.lightTheme(context, palette: corePalette),
themeMode: themeMode.themeMode, darkTheme: AppTheme.darkTheme(context, palette: corePalette),
localizationsDelegates: const [ themeMode: themeMode.themeMode,
GlobalMaterialLocalizations.delegate, localizationsDelegates: const [
GlobalWidgetsLocalizations.delegate, GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate,
], GlobalCupertinoLocalizations.delegate,
supportedLocales: const [ ],
Locale('en', 'EN'), supportedLocales: const [
Locale('hu', 'HU'), Locale('en', 'EN'),
Locale('de', 'DE'), Locale('hu', 'HU'),
], Locale('de', 'DE'),
localeListResolutionCallback: (locales, supported) { ],
Locale locale = const Locale('hu', 'HU'); localeListResolutionCallback: (locales, supported) {
Locale locale = const Locale('hu', 'HU');
for (var loc in locales ?? []) { for (var loc in locales ?? []) {
if (supported.contains(loc)) { if (supported.contains(loc)) {
locale = loc; locale = loc;
break; break;
}
} }
}
return locale; return locale;
}, },
onGenerateRoute: (settings) => rootNavigator(settings), onGenerateRoute: (settings) => rootNavigator(settings),
initialRoute: user.getUsers().isNotEmpty ? "navigation" : "login", initialRoute: user.getUsers().isNotEmpty ? "navigation" : "login",
); );
}, },
); );
}, },
),
), ),
); );
} }