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 بتاريخ On 30/5/2021 at 18:55 قال مروان مروان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 بتاريخ On 30/5/2021 at 18:48 قال مروان مروان3: اهلا بك اخي لا يمكن وضعه بدون contextفي البداية أظهر المزيد لا. يمكن وضعه بدون استخدام context , ايضا يجب استخدام النسخة stable من فلاتر عن طريق الأمر التالي flutter channel stable flutter upgrade 1 اقتباس
1 Wael Aljamal نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ On 30/5/2021 at 18:48 قال مروان مروان3: استخدم احدث اصدار نعم الاخير أظهر المزيد آخر أمرين لتنظيف الذاكرة المؤقتة للمكتبات لتجنب تضارب في عملهم. 1 اقتباس
1 بلال زيادة نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ On 30/5/2021 at 18:55 قال مروان مروان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 بتاريخ On 30/5/2021 at 18:37 قال Wael Aljamal: هل يمكنك تجريب تنفيذها كالتالي: context.locale = Locale('en', 'US'); أظهر المزيد هلا بيك اخي الكريم نعم بشكل هذا قد تم تهميش Locale التي هيا من بعد علامة = اقتباس
0 Wael Aljamal نشر 30 مايو 2021 أرسل تقرير نشر 30 مايو 2021 بتاريخ On 30/5/2021 at 18:39 قال مروان مروان3: نعم بشكل هذا قد تم تهميش Locale التي هيا من بعد علامة = أظهر المزيد هل يظهر أي نص توضيحي أعلى هذه التعليمة؟ بعد وضع مؤشر الفأرة عليها أو إخطار بجانبها؟ هل تستخدم الإصدار 3 من المكتبة؟ مستبعد حدوث مشكلة أرجو تجريب التالي للتأكد من حذف أي كاش قديم قد يسبب تضارب و مشاكل: flutter channel stable flutter upgrade flutter pub cache repair flutter clean 1 اقتباس
0 Flutter Dev نشر 30 مايو 2021 الكاتب أرسل تقرير نشر 30 مايو 2021 (معدل) بتاريخ On 30/5/2021 at 18:45 قال بلال زيادة: هل يمكنك تجربة استخدام التالي locale: Locale('هنا كود اللغة'), أظهر المزيد اهلا بك اخي لا يمكن وضعه بدون contextفي البداية لدي سوال اخي الكريم الا توجد طريقة لوضع للغة الهاتف بشكل افتراضي ؟ للكود هذا : localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, locale: context.locale, بتاريخ On 30/5/2021 at 18:47 قال 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 بتاريخ On 30/5/2021 at 18:53 قال 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 بتاريخ On 30/5/2021 at 18:51 قال بلال زيادة: لا. يمكن وضعه بدون استخدام context , ايضا يجب استخدام النسخة stable من فلاتر عن طريق الأمر التالي flutter channel stable flutter upgrade أظهر المزيد انا على channel stable ولكن بنسبه الى فلاتر ف استخدام اول اصدار من فلاتر 2 لتجنب المشاكل التي في الاخير 1 اقتباس
0 Flutter Dev نشر 30 مايو 2021 الكاتب أرسل تقرير نشر 30 مايو 2021 بتاريخ On 30/5/2021 at 19:03 قال بلال زيادة: لماذا لا تقوم بحفظ قيمة اللغة و من قم تقوم باستخدام 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(), }, ), ), ); }, ), ); أظهر المزيد كل الشكر لك اخي الكريم ولكني خبرتي شبه قليله في هذا الامر قمت بتغير الحزمة وبعض الاكود وتم حل المشكله ولله الحمد بتاريخ On 30/5/2021 at 19:31 قال 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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.