Flutter Dev نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 (معدل) السلام عليكم ورحمة الله وبركاته تحيه طيبه للجميع سابقا قبل الانتقال الى احدث اصدار من حزمة الترجمة easy_localization كنت اقوم بتخزين القيمة التي ارغب بستخدامها او اللغة من خلال السطر التالي: context.locale = Locale('en', 'US'); ولكن الان يظهر لدي ان هذا السطر قد تم تهميشه وقمت بمحاولة التخزين بشكل التالي حسب ما فهمت : context.setLocale(Locale('en', 'US')); ولكني احصل على المشكله التاليه : Null check operator used on a null value لا اعلم هل طريقة التخزين خطاء للغة ام ماذا هل يمكن الافاده لو تكرمتو void main() async { WidgetsFlutterBinding.ensureInitialized(); await EasyLocalization.ensureInitialized(); runApp(Applang()); } class Applang extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, locale: context.locale, home:EasyLocalization( saveLocale: true, supportedLocales: [Locale('en', 'US'), Locale('ar', 'SA')], path: 'assets/translations', fallbackLocale: Locale('en', 'US'), child: Splashs(), ) ); } } تم التعديل في 31 مايو 2021 بواسطة Wael Aljamal توضيح السؤال 1 اقتباس
1 Wael Aljamal نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ 27 دقائق مضت قال مروان مروان3: هذا الكود الذي احصل عليه بشكل عام على ما يبدو لا توجد مشكله فقط في اخطر سطر لنحاول هذه الخطوات: dependencies: easy_localization_loader: git: url: git://github.com/aissat/easy_localization_loader.git ref: overman-dev ثم الأمر: flutter pub upgrade وأضف الحقول الناقصة من التالي: EasyLocalization( supportedLocales: [Locale('en'), Locale('ar')], path: 'assets/translations', fallbackLocale: Locale('en'), saveLocale: false, useOnlyLangCode: true, child: Splashs(), ) //supportedLocales: [Locale('en', 'US'), Locale('ar', 'SA')], //fallbackLocale: Locale('en', 'US'), 1 اقتباس
1 Wael Aljamal نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 هل يمكنك تجريب تنفيذها كالتالي: context.locale = Locale('en', 'US'); فهي طريقة تعامل المكتية في أحدث إصدارها وهو 3.0.0 1 اقتباس
1 بلال زيادة نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 هل يمكنك تجربة استخدام التالي locale: Locale('هنا كود اللغة'), مثل locale: Locale('fa'), 1 اقتباس
1 بلال زيادة نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ 1 دقيقة مضت قال مروان مروان3: اهلا بك اخي لا يمكن وضعه بدون contextفي البداية لا. يمكن وضعه بدون استخدام context , ايضا يجب استخدام النسخة stable من فلاتر عن طريق الأمر التالي flutter channel stable flutter upgrade 1 اقتباس
1 Wael Aljamal نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ 4 دقائق مضت قال مروان مروان3: استخدم احدث اصدار نعم الاخير آخر أمرين لتنظيف الذاكرة المؤقتة للمكتبات لتجنب تضارب في عملهم. 1 اقتباس
1 بلال زيادة نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ 6 دقائق مضت قال مروان مروان3: هذا الكود الذي احصل عليه بشكل عام على ما يبدو لا توجد مشكله فقط في اخطر سطر I/flutter (31611): [🌎 Easy Localization] [DEBUG] Start I/flutter (31611): [🌎 Easy Localization] [DEBUG] Init state I/flutter (31611): [🌎 Easy Localization] [DEBUG] Build I/flutter (31611): [🌎 Easy Localization] [DEBUG] Init Localization Delegate I/flutter (31611): [🌎 Easy Localization] [DEBUG] Init provider I/flutter (31611): [🌎 Easy Localization] [WARNING] Localization key [] not found انا على channel stable ولكن بنسبه الى فلاتر ف استخدام اول اصدار من فلاتر 2 لتجنب المشاكل التي في الاخير لماذا لا تقوم بحفظ قيمة اللغة و من قم تقوم باستخدام Provider بجلبها سأقوم بوضع كود توضيحي لذلك return ChangeNotifierProvider<InitModel>( create: (context) => InitModel(), child: Consumer<InitModel>( builder: (context, value, child) { return MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => AuthProvider()), ChangeNotifierProvider(create: (_) => Cart()), ChangeNotifierProvider(create: (context) => OrdersProvider(), child: OrdersScreen(),), /*ChangeNotifierProxyProvider<AuthProvider, Orders>( create: null, update: (_, auth, previousOrders) => Orders(), ),*/ ], child: StreamProvider<ConnectivityStatus>( initialData: null, create: (context) => ConnectivityService().connectionStatusController.stream, child: MaterialApp( theme: value.darkMode == false ? lightMode : darkMode, debugShowCheckedModeBanner: false, localizationsDelegates: [ RefreshLocalizations.delegate, S.delegate, GlobalWidgetsLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, DefaultCupertinoLocalizations.delegate, ], supportedLocales: S.delegate.supportedLocales, //locale: Locale('fa'), locale: Locale(value.locale), localeResolutionCallback: (Locale locale, Iterable<Locale> supportedLocales) { return locale; }, initialRoute: '/splash', routes: <String, WidgetBuilder>{ "/home": (context) => HomePage(), "/init": (context) => InitApp(), "/splash": (context) => Splash(), "/login": (context) => LoginScreen(), "/register": (context) => RegisterScreen(), "/wishlist": (context) => WishlistScreen(), "/checkouts": (context) => HomePage(), "/onboardingscreen": (context) => OnboardingScreen(), "/products": (context) => Products(), "/languages": (context) => Languages(), "/cart": (context) => CartScreen(), "/orders": (context) => OrdersScreen(), "/profile": (context) => Profile(), '/userPage': (context) => UserPage(), '/verifyAddress': (context) => VerifyAddress(), }, ), ), ); }, ), ); 1 اقتباس
0 Flutter Dev نشر 30 مايو 2021 الكاتب أرسل تقرير نشر 30 مايو 2021 بتاريخ 1 دقيقة مضت قال Wael Aljamal: هل يمكنك تجريب تنفيذها كالتالي: context.locale = Locale('en', 'US'); هلا بيك اخي الكريم نعم بشكل هذا قد تم تهميش Locale التي هيا من بعد علامة = اقتباس
0 Wael Aljamal نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ 5 دقائق مضت قال مروان مروان3: نعم بشكل هذا قد تم تهميش Locale التي هيا من بعد علامة = هل يظهر أي نص توضيحي أعلى هذه التعليمة؟ بعد وضع مؤشر الفأرة عليها أو إخطار بجانبها؟ هل تستخدم الإصدار 3 من المكتبة؟ مستبعد حدوث مشكلة أرجو تجريب التالي للتأكد من حذف أي كاش قديم قد يسبب تضارب و مشاكل: flutter channel stable flutter upgrade flutter pub cache repair flutter clean 1 اقتباس
0 Flutter Dev نشر 30 مايو 2021 الكاتب أرسل تقرير نشر 30 مايو 2021 (معدل) بتاريخ 3 دقائق مضت قال بلال زيادة: هل يمكنك تجربة استخدام التالي locale: Locale('هنا كود اللغة'), اهلا بك اخي لا يمكن وضعه بدون contextفي البداية لدي سوال اخي الكريم الا توجد طريقة لوضع للغة الهاتف بشكل افتراضي ؟ للكود هذا : localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, locale: context.locale, بتاريخ 1 دقيقة مضت قال Wael Aljamal: هل يظهر أي نص توضيحي أعلى هذه التعليمة؟ بعد وضع مؤشر الفأرة عليها أو إخطار بجانبها؟ هل تستخدم الإصدار 3 من المكتبة؟ مستبعد حدوث مشكلة أرجو تجريب التالي للتأكد من حذف أي كاش قديم قد يسبب تضارب و مشاكل: flutter channel stable flutter upgrade flutter pub cache repair flutter clean استخدم احدث اصدار نعم الاخير لكن على ما يبدو ان اللغة يتم تخزينها ولكن لا يتم استراجعها للني اقوم بتخزينها في صفحة ومن بعدها انتقل الى الصفحه التاليه التي تحدث فيها المشكله هنا تكمن المشكله : localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, locale: context.locale, تم التعديل في 30 مايو 2021 بواسطة مروان مروان3 اقتباس
0 Flutter Dev نشر 30 مايو 2021 الكاتب أرسل تقرير نشر 30 مايو 2021 بتاريخ 1 دقيقة مضت قال Wael Aljamal: آخر أمرين لتنظيف الذاكرة المؤقتة للمكتبات لتجنب تضارب في عملهم. هذا الكود الذي احصل عليه بشكل عام على ما يبدو لا توجد مشكله فقط في اخطر سطر I/flutter (31611): [🌎 Easy Localization] [DEBUG] Start I/flutter (31611): [🌎 Easy Localization] [DEBUG] Init state I/flutter (31611): [🌎 Easy Localization] [DEBUG] Build I/flutter (31611): [🌎 Easy Localization] [DEBUG] Init Localization Delegate I/flutter (31611): [🌎 Easy Localization] [DEBUG] Init provider I/flutter (31611): [🌎 Easy Localization] [WARNING] Localization key [] not found بتاريخ 5 دقائق مضت قال بلال زيادة: لا. يمكن وضعه بدون استخدام context , ايضا يجب استخدام النسخة stable من فلاتر عن طريق الأمر التالي flutter channel stable flutter upgrade انا على channel stable ولكن بنسبه الى فلاتر ف استخدام اول اصدار من فلاتر 2 لتجنب المشاكل التي في الاخير 1 اقتباس
0 Flutter Dev نشر 30 مايو 2021 الكاتب أرسل تقرير نشر 30 مايو 2021 بتاريخ 1 ساعة قال بلال زيادة: لماذا لا تقوم بحفظ قيمة اللغة و من قم تقوم باستخدام Provider بجلبها سأقوم بوضع كود توضيحي لذلك return ChangeNotifierProvider<InitModel>( create: (context) => InitModel(), child: Consumer<InitModel>( builder: (context, value, child) { return MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => AuthProvider()), ChangeNotifierProvider(create: (_) => Cart()), ChangeNotifierProvider(create: (context) => OrdersProvider(), child: OrdersScreen(),), /*ChangeNotifierProxyProvider<AuthProvider, Orders>( create: null, update: (_, auth, previousOrders) => Orders(), ),*/ ], child: StreamProvider<ConnectivityStatus>( initialData: null, create: (context) => ConnectivityService().connectionStatusController.stream, child: MaterialApp( theme: value.darkMode == false ? lightMode : darkMode, debugShowCheckedModeBanner: false, localizationsDelegates: [ RefreshLocalizations.delegate, S.delegate, GlobalWidgetsLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, DefaultCupertinoLocalizations.delegate, ], supportedLocales: S.delegate.supportedLocales, //locale: Locale('fa'), locale: Locale(value.locale), localeResolutionCallback: (Locale locale, Iterable<Locale> supportedLocales) { return locale; }, initialRoute: '/splash', routes: <String, WidgetBuilder>{ "/home": (context) => HomePage(), "/init": (context) => InitApp(), "/splash": (context) => Splash(), "/login": (context) => LoginScreen(), "/register": (context) => RegisterScreen(), "/wishlist": (context) => WishlistScreen(), "/checkouts": (context) => HomePage(), "/onboardingscreen": (context) => OnboardingScreen(), "/products": (context) => Products(), "/languages": (context) => Languages(), "/cart": (context) => CartScreen(), "/orders": (context) => OrdersScreen(), "/profile": (context) => Profile(), '/userPage': (context) => UserPage(), '/verifyAddress': (context) => VerifyAddress(), }, ), ), ); }, ), ); كل الشكر لك اخي الكريم ولكني خبرتي شبه قليله في هذا الامر قمت بتغير الحزمة وبعض الاكود وتم حل المشكله ولله الحمد بتاريخ منذ ساعة مضت قال Wael Aljamal: لنحاول هذه الخطوات: dependencies: easy_localization_loader: git: url: git://github.com/aissat/easy_localization_loader.git ref: overman-dev ثم الأمر: flutter pub upgrade وأضف الحقول الناقصة من التالي: EasyLocalization( supportedLocales: [Locale('en'), Locale('ar')], path: 'assets/translations', fallbackLocale: Locale('en'), saveLocale: false, useOnlyLangCode: true, child: Splashs(), ) //supportedLocales: [Locale('en', 'US'), Locale('ar', 'SA')], //fallbackLocale: Locale('en', 'US'), كل الشكر لك اخي الكريم قمت باختصار هذا الاكود وستعمال هذا الطريقة مع شوية لفه ونجح الامر ولله الحمد كل الشكر لك 2 اقتباس
السؤال
Flutter Dev
السلام عليكم ورحمة الله وبركاته
تحيه طيبه للجميع
سابقا قبل الانتقال الى احدث اصدار من حزمة الترجمة easy_localization كنت اقوم بتخزين القيمة التي ارغب بستخدامها او اللغة من خلال السطر التالي:
context.locale = Locale('en', 'US');
ولكن الان يظهر لدي ان هذا السطر قد تم تهميشه وقمت بمحاولة التخزين بشكل التالي حسب ما فهمت :
context.setLocale(Locale('en', 'US'));
ولكني احصل على المشكله التاليه :
Null check operator used on a null value
لا اعلم هل طريقة التخزين خطاء للغة ام ماذا هل يمكن الافاده لو تكرمتو
void main() async { WidgetsFlutterBinding.ensureInitialized(); await EasyLocalization.ensureInitialized(); runApp(Applang()); } class Applang extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, locale: context.locale, home:EasyLocalization( saveLocale: true, supportedLocales: [Locale('en', 'US'), Locale('ar', 'SA')], path: 'assets/translations', fallbackLocale: Locale('en', 'US'), child: Splashs(), ) ); } }
توضيح السؤال
11 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.