adding multilingual support

This commit is contained in:
Azmat-7860
2026-10-03 15:04:48 +05:30
parent 3785ea1e45
commit 0d7785b242
51 changed files with 3007 additions and 250 deletions
+10 -2
View File
@@ -7,14 +7,18 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import 'core/providers/dynamic_theme_provider.dart';
import 'core/providers/locale_provider.dart';
import 'core/providers/theme_provider.dart';
import 'core/theme/app_theme.dart';
import 'l10n/app_localizations.dart';
import 'routes/app_routes.dart';
import 'utils/managers/user_manager.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await UserManager().initialize();
final localeProvider = LocaleProvider();
await localeProvider.initialize();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
runApp(MultiProvider(
@@ -24,6 +28,7 @@ void main() async {
ChangeNotifierProvider(create: (context) => SystemParamsViewModel()),
ChangeNotifierProvider(create: (context) => ThemeProvider()),
ChangeNotifierProvider(create: (context) => DynamicThemeProvider()),
ChangeNotifierProvider.value(value: localeProvider),
],
child: const MyApp(),
));
@@ -63,8 +68,8 @@ class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer2<ThemeProvider, DynamicThemeProvider>(
builder: (context, themeProvider, dynamicThemeProvider, child) {
return Consumer3<ThemeProvider, DynamicThemeProvider, LocaleProvider>(
builder: (context, themeProvider, dynamicThemeProvider, localeProvider, child) {
final theme = AppTheme.getTheme(context);
// Set system UI overlay style
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
@@ -86,6 +91,9 @@ class MyApp extends StatelessWidget {
initialRoute: RouteNames.splashView,
onGenerateRoute: AppRoutes.generateRoutes,
navigatorKey: navigatorKey,
locale: localeProvider.locale,
supportedLocales: AppLocalizations.supportedLocales,
localizationsDelegates: AppLocalizations.localizationsDelegates,
builder: (context, child) {
return MediaQuery(
data: MediaQuery.of(context).copyWith(