Merge pull request #88 from WDI-Ideas/jayeshjain25
language localization
This commit is contained in:
250
assets/language/ar.json
Normal file
250
assets/language/ar.json
Normal file
@@ -0,0 +1,250 @@
|
||||
{
|
||||
"splashVersionText": "التطبيق: v.",
|
||||
"splashCopyrightText": "© 2024 Tanami",
|
||||
"welcomeTitle1Text": "تانامي تقدم",
|
||||
"welcomeTitle2Text": "استثمر مع",
|
||||
"welcomeTitle3Text": "ابدأ الاستثمار اليوم",
|
||||
"welcomeDescription1Text": "الوصول إلى استثمارات خاصة عالمية حصرية من الدرجة الأولى",
|
||||
"welcomeDescription2Text": "خبراء استثمار ذوو خبرة مع سجل حافل طويل الأمد",
|
||||
"welcomeDescription3Text": "بمبلغ 1000 ريال سعودي فقط",
|
||||
"loginText": "تسجيل الدخول",
|
||||
"signUpText": "اشتراك",
|
||||
"welcomeText": "مرحبا بعودتك!",
|
||||
"pleaseEnterLoginDetails": "يرجى إدخال تفاصيل تسجيل الدخول الخاصة بك للبدء",
|
||||
"toGetYourAccountPleaseSetYourInfo": "للحصول على حسابك، يرجى تحديد معلوماتك",
|
||||
"countryOfResidence": "بلد الإقامة",
|
||||
"chooseCountry": "اختر الدولة",
|
||||
"phoneNumber": "رقم الهاتف",
|
||||
"password": "كلمة المرور",
|
||||
"enterPassword": "أدخل كلمة المرور",
|
||||
"invalidPhoneNo": "رقم الهاتف غير صالح",
|
||||
"enterPhoneNo": "أدخل رقم الهاتف",
|
||||
"invalidPassword": "كلمة المرور غير صالحة",
|
||||
"forgotPassword": "نسيت كلمة المرور",
|
||||
"getStartedToday": "ابدأ اليوم",
|
||||
"setupYourTanamiAccountToBegin": "قم بإعداد حساب تانامي الخاص بك لبدء الاستثمار في بضع خطوات بسيطة",
|
||||
"step1": "الخطوة 1",
|
||||
"step2": "الخطوة 2",
|
||||
"step3": "الخطوة 3",
|
||||
"enterYourCountryOfResidence": "أدخل بلد إقامتك ورقم هاتفك المحمول",
|
||||
"enterNameEmailPassword": "أدخل اسمك، بريدك الإلكتروني وكلمة المرور",
|
||||
"enterNameEmailUniquePassword": "أدخل اسمك وبريدك الإلكتروني واختر كلمة مرور فريدة",
|
||||
"enableBiometricAuthentication": "قم بتمكين المصادقة البيومترية واختر رمز PIN فريد للوصول بسهولة",
|
||||
"getStarted": "ابدأ",
|
||||
"welcome": "أهلا بك!",
|
||||
"selectYourCountryOfResidence": "حدد بلد إقامتك وأدخل رقم هاتفك المحمول",
|
||||
"nextText": "التالي",
|
||||
"backText": "رجوع",
|
||||
"firstNameText": "الاسم الأول",
|
||||
"lastNameText": "اسم العائلة",
|
||||
"emailText": "البريد الإلكتروني",
|
||||
"repeatPasswordText": "أعد إدخال كلمة المرور",
|
||||
"min8CharactersSpecialCharctersText": "الحد الأدنى 8 أحرف، تتطلب أحرف خاصة",
|
||||
"enterFirstName": "أدخل الاسم الأول",
|
||||
"enterLastName": "أدخل اسم العائلة",
|
||||
"enterEmail": "أدخل البريد الإلكتروني",
|
||||
"cantBeEmptyText": "لا يمكن أن يكون فارغا",
|
||||
"passwordMismatch": "عدم تطابق كلمة المرور",
|
||||
"iAgreeToThe": "أوافق على",
|
||||
"termsAndCondition": "الشروط والأحكام",
|
||||
"andThe": " و",
|
||||
"privacyPolicy": "سياسة الخصوصية",
|
||||
"bahrainCountryText": "البحرين",
|
||||
"kuwaitCountryText": "الكويت",
|
||||
"omanCountryText": "عمان",
|
||||
"qatarCountryText": "قطر",
|
||||
"saudiArabiaCountryText": "المملكة العربية السعودية",
|
||||
"uaeCountryText": "الإمارات العربية المتحدة",
|
||||
"confirmSelectionText": "تأكيد الاختيار",
|
||||
"portfolioText": "قيمة المحفظة",
|
||||
"portfolio": "قيمة المحفظة: ",
|
||||
"investmentamount": "مبلغ الاستثمار",
|
||||
"currentval": "التقييم الحالي",
|
||||
"totalreturn": "إجمالي العائد",
|
||||
"disttodate": "التوزيعات حتى الآن",
|
||||
"includeddocs": "وثائق الاستثمار",
|
||||
"videosTitle": "فيديوهات",
|
||||
"academyText": "الأكاديمية",
|
||||
"exitText": "خروج",
|
||||
"cancelText": "إلغاء",
|
||||
"areYouSureYouWantToExitText": "هل أنت متأكد أنك تريد الخروج؟",
|
||||
"faqTitle": "الأسئلة الشائعة:",
|
||||
"unlockText": "افتح",
|
||||
"tanamiAppIsLocked": "تطبيق تانامي مقفل",
|
||||
"securityMssgText": "لأمانك، يمكنك استخدام تطبيق تانامي فقط عندما يكون مفتوحًا",
|
||||
"faceIdText": "معرف الوجه",
|
||||
"appAskPermissionText": "يطلب تطبيق تانامي الإذن لاستخدام معرف الوجه (أو بصمة الإصبع)",
|
||||
"checkYourMessages": "تحقق من رسائلك",
|
||||
"referToSameOtpMessage": "أدخل الكود المكون من 6 أرقام المرسل إلى هاتفك المحمول",
|
||||
"resendSms": "إعادة إرسال الرسائل القصيرة",
|
||||
"otpVerifiedSucessfully": "تم التحقق من OTP بنجاح!",
|
||||
"otpVerifiedFailed": "فشل التحقق من OTP:",
|
||||
"pinCode": "رمز PIN",
|
||||
"createPinCode": "إنشاء رمز PIN",
|
||||
"changePinCode": "تغيير رمز PIN",
|
||||
"confirmPinCode": "تأكيد رمز PIN",
|
||||
"incorrectPinCode": "رمز PIN غير صحيح. حاول مرة اخرى.",
|
||||
"welcomeBackText": "مرحبا بعودتك",
|
||||
"userYourAppPinToLoginEnterTanami": "استخدم رمز PIN لتسجيل الدخول إلى تانامي",
|
||||
"forgotPinCode": "نسيت رمز PIN",
|
||||
"notificationText": "إشعار",
|
||||
"allowNotificationText": "السماح بالإشعار",
|
||||
"toRestorePinYouWillBeLoggedOut": "لاستعادة رمز PIN ستتم تسجيل خروجك",
|
||||
"allowText": "السماح",
|
||||
"declineText": "رفض",
|
||||
"almostHere": "تقريبًا هنا...",
|
||||
"completeAcc": "أكمل ملف الحساب في 3 دقائق لبدء الاستثمار",
|
||||
"restorePasswordText": "استعادة كلمة المرور",
|
||||
"toRestorePasswordPleaseEnterPhoneNumber": "لاستعادة كلمة المرور، يرجى إدخال رقم الهاتف",
|
||||
"createNewPasswordText": "إنشاء كلمة مرور جديدة",
|
||||
"submitText": "إرسال",
|
||||
"walletTitle": "رصيد المحفظة",
|
||||
"walletText": "محفظة",
|
||||
"day": "اليوم",
|
||||
"filterTitle": "مرشحات",
|
||||
"onHold": "قيد الانتظار",
|
||||
"deposit": "إيداع",
|
||||
"withdraw": "سحب",
|
||||
"withdrawal": "انسحاب",
|
||||
"yield": "عائد",
|
||||
"refund": "استرداد",
|
||||
"investment": "استثمار",
|
||||
"walletDetailsTitle": "تفاصيل",
|
||||
"withdrawalScreenTitle": "أدخل تفاصيل البنك",
|
||||
"depositScreenTitle": "إخطار الإيداع",
|
||||
"status": "الحالة",
|
||||
"paymentMethod": "طريقة الدفع",
|
||||
"accountName": "اسم الحساب",
|
||||
"accountHolderName": "اسم صاحب الحساب/المستفيد",
|
||||
"iban": "رقم الحساب الدولي IBAN",
|
||||
"beneficiaryAddress": "عنوان المستفيد",
|
||||
"bankName": "اسم البنك",
|
||||
"branchAddress": "عنوان الفرع",
|
||||
"SWIFTcode": "رمز SWIFT/BIC",
|
||||
"refid": "معرف المرجع",
|
||||
"previewTitle": "تأكيد السحب",
|
||||
"info": "تم استلام طلب السحب الخاص بك وهو قيد المعالجة حاليًا.",
|
||||
"info1": "يرجى تأكيد مبلغ السحب والتحقق من دقة تفاصيل البنك الخاصة بك.",
|
||||
"workingDays": "تختلف أوقات المعالجة من 3-7 أيام عمل",
|
||||
"balance": "رصيد المحفظة",
|
||||
"withdrawTitle": "انسحاب",
|
||||
"depositTitle": "إيداع",
|
||||
"withdrawDetails": "تفاصيل السحب",
|
||||
"depositDetails": "تفاصيل الإيداع",
|
||||
"required": "الحقول بعلامة * مطلوبة",
|
||||
"withdrawAmt": "إجمالي مبلغ السحب:",
|
||||
"depositAmt": "إجمالي مبلغ الإيداع:",
|
||||
"info2": "يمكن أن يشمل الدفع رسوم التحويل من البنك الخاص بك",
|
||||
"info3": "لإتمام الدفع، يرجى استخدام تفاصيل الدفع ومعرف المرجع في بنكك",
|
||||
"next": "التالي",
|
||||
"depositNoti": "إنشاء إشعار إيداع",
|
||||
"payWithAppleText": "الدفع بواسطة Apple Pay",
|
||||
"submit": "إرسال الطلب",
|
||||
"Submit": "إرسال",
|
||||
"submitDeposit": "إرسال الإيداع",
|
||||
"cont": "استمر",
|
||||
"later": "لاحقا",
|
||||
"back": "العودة للتغيير",
|
||||
"clear": "مسح الكل",
|
||||
"bankTransfer": "التحويل المصرفي",
|
||||
"amtTrans": "مبلغ المعاملة",
|
||||
"date1": "الأحدث أولا",
|
||||
"date2": "الأقدم أولا",
|
||||
"all": "الكل",
|
||||
"byDate": "حسب التاريخ",
|
||||
"byAction": "حسب نوع الإجراء",
|
||||
"byStatus": "حسب الحالة",
|
||||
"settingsText": "الإعدادات",
|
||||
"experiencedInvestorText": "مستثمر متمرس؟",
|
||||
"removeInvestmentText": "إزالة حدود الاستثمار",
|
||||
"upgradeText": "قم بترقية حالة المستثمر الخاصة بك اليوم في بضع خطوات بسيطة للسماح بالاستثمارات التي تزيد عن 200,000 ريال سعودي",
|
||||
"generalText": "عام",
|
||||
"notificationsText": "الإخطارات",
|
||||
"languageText": "اللغة",
|
||||
"englishText": "الإنجليزية",
|
||||
"privacySettingsText": "إعدادات الخصوصية",
|
||||
"biometricText": "معرف بيومتري",
|
||||
"resetPasswordText": "إعادة تعيين كلمة المرور",
|
||||
"resetPinCodeText": "إعادة تعيين رمز PIN",
|
||||
"supportText": "الدعم",
|
||||
"contactAdminText": "الاتصال بالمشرف",
|
||||
"privacyPolicyText": "سياسة الخصوصية",
|
||||
"termsAndConditionText": "الشروط والأحكام",
|
||||
"faqText": "الأسئلة الشائعة",
|
||||
"logoutText": "تسجيل خروج",
|
||||
"deleteAccountText": "حذف الحساب",
|
||||
"areYouSureWantToLogoutText": "هل أنت متأكد أنك تريد تسجيل الخروج؟",
|
||||
"noText": "لا",
|
||||
"yesText": "نعم",
|
||||
"pinUpdatedSucess": "تم تحديث رمز PIN بنجاح!",
|
||||
"pinVerifiedSucess": "تم التحقق من رمز PIN بنجاح!",
|
||||
"passwordUpdatedSucess": "تم تحديث كلمة المرور بنجاح!",
|
||||
"changePasswordText": "تغيير كلمة المرور",
|
||||
"newPasswordText": "كلمة المرور الجديدة",
|
||||
"currentPsswordText": "كلمة المرور الحالية",
|
||||
"byPhoneText": "عبر الهاتف",
|
||||
"byEmailText": "بواسطة البريد الإلكتروني",
|
||||
"weAreHereToHelp": "نحن هنا للمساعدة!",
|
||||
"arabicText": "اللغة العربية",
|
||||
"chooseTheLanguageText": "اختر اللغة",
|
||||
"changingTheLanguageWillReloadApp": "سيؤدي تغيير اللغة إلى إعادة تحميل التطبيق",
|
||||
"weAreSadToSeeYouGo": "نحن حزينون لرؤيتك تذهب :(",
|
||||
"enterAdescription": "أدخل وصفا...",
|
||||
"toHelpUsImprovePleaseLetusKnowWhyYouWantToDeleteAccount": "لمساعدتنا على التحسين، يرجى إخبارنا لماذا تريد حذف حسابك",
|
||||
"charactersLeft": "الأحرف المتبقية",
|
||||
"iUnderstandAndAgreeThatmyDataWillBeDeleted": "أنا أفهم وأوافق على حذف بياناتي",
|
||||
"noIWantToStay": "لا، أريد البقاء",
|
||||
"pleaseEnteraDescription": "يرجى إدخال وصف",
|
||||
"pleaseCheckThisField": "يرجى التحقق من هذا الحقل",
|
||||
"weHaveReceivedYourRequestToDeleteAccount": "لقد تلقينا طلبك لحذف حسابك",
|
||||
"theRequestWillBeProcessed": "سيتم معالجة الطلب في غضون 72 ساعة",
|
||||
"closeText": "أغلق",
|
||||
"investText": "استثمر",
|
||||
"availableText": "متاح",
|
||||
"closedText": "مغلق",
|
||||
"completeYourVerification": "أكمل التحقق الخاص بك",
|
||||
"verifyYourAccountInUnderMinutesToStartInvestingToday": "تحقق من حسابك في أقل من 10 دقائق لبدء الاستثمار اليوم!",
|
||||
"closingDateText": "تاريخ الإغلاق",
|
||||
"closedDateText": "تاريخ الإغلاق",
|
||||
"fundedText": "ممول",
|
||||
"sponsorNameText": "اسم الراعي",
|
||||
"estimatedReturnText": "العائد المقدر",
|
||||
"originalEstimatedReturnText": "العائد المقدر الأصلي",
|
||||
"actualEstimatedReturnText": "العائد الفعلي",
|
||||
"actualReturnToDate": "العائد الفعلي حتى الآن",
|
||||
"holdingPeriodText": "فترة الحيازة",
|
||||
"payoutDateText": "تاريخ الدفع",
|
||||
"expectedExitDate": "تاريخ الخروج المتوقع",
|
||||
"minimumInvestmentText": "الحد الأدنى للاستثمار",
|
||||
"keyMeritsOfInvestmentText": "المزايا الرئيسية",
|
||||
"investmentDetailsText": "تفاصيل الاستثمار",
|
||||
"enterInvestmentAmountText": "أدخل مبلغ الاستثمار",
|
||||
"thisIsUsdInvestmentOpportunityText": "هذه فرصة استثمارية بالدولار الأمريكي. سيتم تحويل الأموال إلى الدولار الأمريكي بسعر x عند التأكيد",
|
||||
"choosePaymentMethodText": "اختر طريقة الدفع",
|
||||
"balanceText": "الرصيد",
|
||||
"applePayText": "Apple Pay",
|
||||
"gPayText": "Gpay Pay",
|
||||
"bankTransferText": "حول الأموال مباشرة من حسابك المصرفي إلى محفظة تانامي الخاصة بك.",
|
||||
"instantTransferFundsApplePayText": "تحويل فوري للأموال باستخدام Apple Pay!",
|
||||
"instantTransferFundsGpayPayText": "تحويل فوري للأموال باستخدام Gpay Pay!",
|
||||
"retailInvestirCanInvestMaxText": "يمكن للمستثمرين التجزئة استثمار حد أقصى قدره 200,000 ريال سعودي في هذه الفرصة.",
|
||||
"upgradeYourInvestorStatusToIncreaseText": "قم بترقية حالة المستثمر الخاصة بك لزيادة حد الاستثمار الخاص بك.",
|
||||
"currentExchangeText": "سعر الصرف الحالي",
|
||||
"feeText": "الرسوم",
|
||||
"processingFees": "رسوم المعالجة",
|
||||
"debitedAmountText": "المبلغ المخصوم",
|
||||
"totalInvestmentAmountText": "إجمالي مبلغ الاستثمار",
|
||||
"confirmInvestmentText": "تأكيد الاستثمار",
|
||||
"paymentMethodText": "طريقة الدفع",
|
||||
"totalDebitedAmountText": "إجمالي المبلغ المخصوم",
|
||||
"unableToProcessTransactionText": "غير قادر على معالجة المعاملة",
|
||||
"investmentOpportunityHasReachedMaxcapText": "وصلت فرصة الاستثمار إلى الحد الأقصى",
|
||||
"backToInvestmentText": "العودة إلى الاستثمار",
|
||||
"otpCheckIsFailedText": "فشل التحقق من OTP...",
|
||||
"pleaseTryAgainText": "الرجاء المحاولة مرة أخرى",
|
||||
"tryAgainText": "حاول مرة اخرى",
|
||||
"investmentConfirmationText": "تأكيد الاستثمار",
|
||||
"enterAmountText": "أدخل المبلغ",
|
||||
"pleaseEnterAmountText": "الرجاء إدخال المبلغ"
|
||||
}
|
||||
|
||||
250
assets/language/en.json
Normal file
250
assets/language/en.json
Normal file
@@ -0,0 +1,250 @@
|
||||
{
|
||||
"splashVersionText": "APP: v.",
|
||||
"splashCopyrightText": "© 2024 Tanami",
|
||||
"welcomeTitle1Text": "Tanami offers",
|
||||
"welcomeTitle2Text": "Invest alongside",
|
||||
"welcomeTitle3Text": "Start investing today",
|
||||
"welcomeDescription1Text": "access to best-in-class, exclusive, global private investments",
|
||||
"welcomeDescription2Text": "experienced investment experts with a long-standing track record",
|
||||
"welcomeDescription3Text": "with only SAR 1,000",
|
||||
"loginText": "Log In",
|
||||
"signUpText": "Sign Up",
|
||||
"welcomeText": "Welcome back!",
|
||||
"pleaseEnterLoginDetails": "Please enter your login details to get started",
|
||||
"toGetYourAccountPleaseSetYourInfo": "To get your account please set your info",
|
||||
"countryOfResidence": "Country of residence",
|
||||
"chooseCountry": "Choose country",
|
||||
"phoneNumber": "Phone number",
|
||||
"password": "Password",
|
||||
"enterPassword": "Enter Password",
|
||||
"invalidPhoneNo": "Invalid phone number",
|
||||
"enterPhoneNo": "Enter phone number",
|
||||
"invalidPassword": "Invalid password",
|
||||
"forgotPassword": "Forgot password",
|
||||
"getStartedToday": "Get started today",
|
||||
"setupYourTanamiAccountToBegin": "Setup your Tanami account to begin investing in a few simple steps",
|
||||
"step1": "Step 1",
|
||||
"step2": "Step 2",
|
||||
"step3": "Step 3",
|
||||
"enterYourCountryOfResidence": "Enter your country of residence and mobile number",
|
||||
"enterNameEmailPassword": "Enter your name, email and password",
|
||||
"enterNameEmailUniquePassword": "Enter your name and email and choose a unique password",
|
||||
"enableBiometricAuthentication": "Enable biometric authentication and select a unique pin code for easy access",
|
||||
"getStarted": "Get started",
|
||||
"welcome": "Welcome!",
|
||||
"selectYourCountryOfResidence": "Select your country of residence and enter your mobile number",
|
||||
"nextText": "Next",
|
||||
"backText": "Back",
|
||||
"firstNameText": "First Name",
|
||||
"lastNameText": "Last Name",
|
||||
"emailText": "Email",
|
||||
"repeatPasswordText": "Repeat Password",
|
||||
"min8CharactersSpecialCharctersText": "Min 8 characters, special characters required",
|
||||
"enterFirstName": "Enter first name",
|
||||
"enterLastName": "Enter last name",
|
||||
"enterEmail": "Enter email",
|
||||
"cantBeEmptyText": "Can't be empty",
|
||||
"passwordMismatch": "Password mismatch",
|
||||
"iAgreeToThe": "I agree to the",
|
||||
"termsAndCondition": "Terms & Conditions",
|
||||
"andThe": " and the",
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
"bahrainCountryText": "Bahrain",
|
||||
"kuwaitCountryText": "Kuwait",
|
||||
"omanCountryText": "Oman",
|
||||
"qatarCountryText": "Qatar",
|
||||
"saudiArabiaCountryText": "Saudi Arabia",
|
||||
"uaeCountryText": "United Arab Emirates",
|
||||
"confirmSelectionText": "Confirm selection",
|
||||
"portfolioText": "Portfolio Value",
|
||||
"portfolio": "Portfolio Value: ",
|
||||
"investmentamount": "Investment Amount",
|
||||
"currentval": "Current valuation",
|
||||
"totalreturn": "Total return",
|
||||
"disttodate": "Distributions to date",
|
||||
"includeddocs": "Investment Documents",
|
||||
"videosTitle": "Videos",
|
||||
"academyText": "Academy",
|
||||
"exitText": "Exit",
|
||||
"cancelText": "Cancel",
|
||||
"areYouSureYouWantToExitText": "Are you sure you want to Exit?",
|
||||
"faqTitle": "Frequently Asked Questions:",
|
||||
"unlockText": "Unlock",
|
||||
"tanamiAppIsLocked": "Tanami Capital is locked",
|
||||
"securityMssgText": "For your security, you can only use Tanami Capital when it's unlocked",
|
||||
"faceIdText": "Face Id",
|
||||
"appAskPermissionText": "Tanami App ask permission to use Face ID (or Fingerprint)",
|
||||
"checkYourMessages": "Check your messages",
|
||||
"referToSameOtpMessage": "Enter the 6-digit code sent to your mobile",
|
||||
"resendSms": "Resend SMS",
|
||||
"otpVerifiedSucessfully": "OTP Verified Successfully!",
|
||||
"otpVerifiedFailed": "OTP Verification Failed:",
|
||||
"pinCode": "Pin Code",
|
||||
"createPinCode": "Create Pin Code",
|
||||
"changePinCode": "Change Pin Code",
|
||||
"confirmPinCode": "Confirm Pin Code",
|
||||
"incorrectPinCode": "Incorrect PIN. Please try again.",
|
||||
"welcomeBackText": "Welcome back",
|
||||
"userYourAppPinToLoginEnterTanami": "Use your app PIN to login to enter Tanami",
|
||||
"forgotPinCode": "Forgot Pin Code",
|
||||
"notificationText": "Notification",
|
||||
"allowNotificationText": "Allow notification",
|
||||
"toRestorePinYouWillBeLoggedOut": "To restore PIN you will be Logged out",
|
||||
"allowText": "Allow",
|
||||
"declineText": "Decline",
|
||||
"almostHere": "Almost here...",
|
||||
"completeAcc": "Complete account profile in 3 minutes to start investing",
|
||||
"restorePasswordText": "Restore password",
|
||||
"toRestorePasswordPleaseEnterPhoneNumber": "To restore password please enter phone number",
|
||||
"createNewPasswordText": "Create new password",
|
||||
"submitText": "Submit",
|
||||
"walletTitle": "Wallet balance",
|
||||
"walletText": "Wallet",
|
||||
"day": "Today",
|
||||
"filterTitle": "Filters",
|
||||
"onHold": "On Hold",
|
||||
"deposit": "Deposit",
|
||||
"withdraw": "Withdraw",
|
||||
"withdrawal": "Withdrawal",
|
||||
"yield": "Yield",
|
||||
"refund": "Refund",
|
||||
"investment": "Investment",
|
||||
"walletDetailsTitle": "Details",
|
||||
"withdrawalScreenTitle": "Enter bank details",
|
||||
"depositScreenTitle": "Deposit notification",
|
||||
"status": "Status",
|
||||
"paymentMethod": "Payment Method",
|
||||
"accountName": "Account Name",
|
||||
"accountHolderName": "Account Holder Name/Beneficiary Name",
|
||||
"iban": "IBAN",
|
||||
"beneficiaryAddress": "Beneficiary Address",
|
||||
"bankName": "Bank Name",
|
||||
"branchAddress": "Branch Address",
|
||||
"SWIFTcode": "SWIFT/BIC code",
|
||||
"refid": "Reference ID",
|
||||
"previewTitle": "Withdrawal confirmation",
|
||||
"info": "Your withdrawal request has been received and is currently being processed.",
|
||||
"info1": "Please confirm the withdrawal amount and verify the accuracy of your bank details.",
|
||||
"workingDays": "Processing times vary from 3-7 working days",
|
||||
"balance": "Wallet Balance",
|
||||
"withdrawTitle": "Withdrawal",
|
||||
"depositTitle": "Deposit",
|
||||
"withdrawDetails": "Withdrawal details",
|
||||
"depositDetails": "Deposit details",
|
||||
"required": "Fields with * are required",
|
||||
"withdrawAmt": "Total Withdrawal amount:",
|
||||
"depositAmt": "Total Deposit amount:",
|
||||
"info2": "Payment can include transfer fee from your bank",
|
||||
"info3": "To accomplish payment please use payment details and Reference ID in tour Bank",
|
||||
"next": "Next",
|
||||
"depositNoti": "Create deposit notification",
|
||||
"payWithAppleText": "Pay with Apple Pay",
|
||||
"submit": "Submit request",
|
||||
"Submit": "Submit",
|
||||
"submitDeposit": "Submit deposit",
|
||||
"cont": "Continue",
|
||||
"later": "Later",
|
||||
"back": "Back to change",
|
||||
"clear": "Clear All",
|
||||
"bankTransfer": "Bank Transfer",
|
||||
"amtTrans": "Amount of transaction",
|
||||
"date1": "Newest first",
|
||||
"date2": "Oldest first",
|
||||
"all": "All",
|
||||
"byDate": "By date",
|
||||
"byAction": "By type of action",
|
||||
"byStatus": "By status",
|
||||
"settingsText": "Settings",
|
||||
"experiencedInvestorText": "Experienced investor?",
|
||||
"removeInvestmentText": "Remove investment thresholds",
|
||||
"upgradeText": "Upgrade your investor status today in a few simple steps to allows investments higher than SAR 200,000",
|
||||
"generalText": "General",
|
||||
"notificationsText": "Notifications",
|
||||
"languageText": "Language",
|
||||
"englishText": "English",
|
||||
"privacySettingsText": "Privacy Settings",
|
||||
"biometricText": "Biometric ID",
|
||||
"resetPasswordText": "Reset Password",
|
||||
"resetPinCodeText": "Reset PIN-code",
|
||||
"supportText": "Support",
|
||||
"contactAdminText": "Contact Admin",
|
||||
"privacyPolicyText": "Privacy Policy",
|
||||
"termsAndConditionText": "Terms & Conditions",
|
||||
"faqText": "FAQ",
|
||||
"logoutText": "Log Out",
|
||||
"deleteAccountText": "Delete account",
|
||||
"areYouSureWantToLogoutText": "Are you sure you want to Logout?",
|
||||
"noText": "No",
|
||||
"yesText": "Yes",
|
||||
"pinUpdatedSucess": "Pin updated Sucessfully !",
|
||||
"pinVerifiedSucess": "Pin verified Sucessfully !",
|
||||
"passwordUpdatedSucess": "Password updated Sucessfully !",
|
||||
"changePasswordText": "Change Password",
|
||||
"newPasswordText": "New Password",
|
||||
"currentPsswordText": "Current Password",
|
||||
"byPhoneText": "By phone",
|
||||
"byEmailText": "By-mail",
|
||||
"weAreHereToHelp": "We are here to help!",
|
||||
"arabicText": "اللغة العربية",
|
||||
"chooseTheLanguageText": "Choose the language",
|
||||
"changingTheLanguageWillReloadApp": "Changing the language will reload the application",
|
||||
"weAreSadToSeeYouGo": "We're sad to see you go :(",
|
||||
"enterAdescription": "Enter a description...",
|
||||
"toHelpUsImprovePleaseLetusKnowWhyYouWantToDeleteAccount": "To help us improve, please let us know why you want to delete your account",
|
||||
"charactersLeft": "characters left",
|
||||
"iUnderstandAndAgreeThatmyDataWillBeDeleted": "I understand and agree that my data will be deleted",
|
||||
"noIWantToStay": "No, i want to stay",
|
||||
"pleaseEnteraDescription": "Please enter a description",
|
||||
"pleaseCheckThisField": "Please check this field",
|
||||
"weHaveReceivedYourRequestToDeleteAccount": "We have received your request to delete your account",
|
||||
"theRequestWillBeProcessed": "The request will be processed within 72 hours",
|
||||
"closeText": "Close",
|
||||
"investText": "Invest",
|
||||
"availableText": "Available",
|
||||
"closedText": "Closed",
|
||||
"completeYourVerification": "Complete your verification",
|
||||
"verifyYourAccountInUnderMinutesToStartInvestingToday": "Verify your account in under 10 minutes to start investing today!",
|
||||
"closingDateText": "Closing Date",
|
||||
"closedDateText": "Closed Date",
|
||||
"fundedText": "funded",
|
||||
"sponsorNameText": "Sponsor name",
|
||||
"estimatedReturnText": "Estimated return",
|
||||
"originalEstimatedReturnText": "Original estimated return",
|
||||
"actualEstimatedReturnText": "Actual return",
|
||||
"actualReturnToDate": "Actual return to date",
|
||||
"holdingPeriodText": "Holding period",
|
||||
"payoutDateText": "Payout Date",
|
||||
"expectedExitDate": "Expected Exit Date",
|
||||
"minimumInvestmentText": "Minimum investment",
|
||||
"keyMeritsOfInvestmentText": "Key Merits",
|
||||
"investmentDetailsText": "Investment details",
|
||||
"enterInvestmentAmountText": "Enter investment amount",
|
||||
"thisIsUsdInvestmentOpportunityText": "This is a USD investment opportunity. Funds will be converted into USD at a rate of x upon confirmation",
|
||||
"choosePaymentMethodText": "Choose payment method",
|
||||
"balanceText": "Balance",
|
||||
"applePayText": "Apple Pay",
|
||||
"gPayText": "Gpay Pay",
|
||||
"bankTransferText": "Directly transfer funds from your bank account into your Tanami wallet.",
|
||||
"instantTransferFundsApplePayText": "Instant transfer of funds using Apple Pay!",
|
||||
"instantTransferFundsGpayPayText": "Instant transfer of funds using Gpay Pay!",
|
||||
"retailInvestirCanInvestMaxText": "Retail investors can invest a maximum of SAR 200,000 in this opportunity.",
|
||||
"upgradeYourInvestorStatusToIncreaseText": "Upgrade your investor status to increase your investment limit.",
|
||||
"currentExchangeText": "Current Exchange",
|
||||
"feeText": "Fee",
|
||||
"processingFees": "Processing fee",
|
||||
"debitedAmountText": "Debited amount",
|
||||
"totalInvestmentAmountText": "Total Investment amount",
|
||||
"confirmInvestmentText": "Confirm investment",
|
||||
"paymentMethodText": "Payment method",
|
||||
"totalDebitedAmountText": "Total debited amount",
|
||||
"unableToProcessTransactionText": "Unable to process transaction",
|
||||
"investmentOpportunityHasReachedMaxcapText": "Investment opportunity has reached maximum capacity",
|
||||
"backToInvestmentText": "Back to Investment",
|
||||
"otpCheckIsFailedText": "OTP Check is failed...",
|
||||
"pleaseTryAgainText": "Please try again",
|
||||
"tryAgainText": "Try again",
|
||||
"investmentConfirmationText": "Investment confirmation",
|
||||
"enterAmountText": "Enter Amount",
|
||||
"pleaseEnterAmountText": "Please Enter Amount"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// network_connectivity.dart
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:connectivity_plus/connectivity_plus.dart';
|
||||
@@ -22,13 +20,17 @@ class NetworkConnectivity {
|
||||
void initialize() {
|
||||
_subscription = _connectivity.onConnectivityChanged
|
||||
.listen((List<ConnectivityResult> result) {
|
||||
String status = result.toString();
|
||||
onStatusChange(status);
|
||||
if (result.isNotEmpty) {
|
||||
String status = result.toString();
|
||||
onStatusChange(status);
|
||||
|
||||
if (result[0] == ConnectivityResult.wifi ||
|
||||
result[0] == ConnectivityResult.mobile) {
|
||||
if (goRouter.canPop()) {
|
||||
goRouter.pop(true);
|
||||
if (result[0] == ConnectivityResult.wifi ||
|
||||
result[0] == ConnectivityResult.mobile) {
|
||||
if (goRouter.canPop()) {
|
||||
goRouter.pop(true);
|
||||
}
|
||||
} else {
|
||||
goRouter.pushNamed(RouteName.noInternetScreen);
|
||||
}
|
||||
} else {
|
||||
goRouter.pushNamed(RouteName.noInternetScreen);
|
||||
@@ -42,7 +44,8 @@ class NetworkConnectivity {
|
||||
Future<void> checkInternet() async {
|
||||
final connectivityResult = await _connectivity.checkConnectivity();
|
||||
|
||||
if (connectivityResult[0] != ConnectivityResult.none) {
|
||||
if (connectivityResult.isNotEmpty &&
|
||||
connectivityResult[0] != ConnectivityResult.none) {
|
||||
onStatusChange(connectivityResult.toString());
|
||||
} else {
|
||||
onStatusChange(connectivityResult.toString());
|
||||
|
||||
55
lib/core/utils/language/localizations_delegate.dart
Normal file
55
lib/core/utils/language/localizations_delegate.dart
Normal file
@@ -0,0 +1,55 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
class AppLocalizations {
|
||||
final Locale locale;
|
||||
|
||||
AppLocalizations(this.locale);
|
||||
|
||||
static AppLocalizations of(BuildContext context) {
|
||||
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
|
||||
}
|
||||
|
||||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||||
_AppLocalizationsDelegate();
|
||||
|
||||
late Map<String, String> _localizedStrings;
|
||||
|
||||
Future<bool> load() async {
|
||||
String jsonString = await rootBundle
|
||||
.loadString('assets/language/${locale.languageCode}.json');
|
||||
Map<String, dynamic> jsonMap = json.decode(jsonString);
|
||||
|
||||
_localizedStrings = jsonMap.map((key, value) {
|
||||
return MapEntry(key, value.toString());
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
String translate(String key) {
|
||||
return _localizedStrings[key] ?? key;
|
||||
}
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
extends LocalizationsDelegate<AppLocalizations> {
|
||||
const _AppLocalizationsDelegate();
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) {
|
||||
return ['en', 'ar'].contains(locale.languageCode);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<AppLocalizations> load(Locale locale) async {
|
||||
AppLocalizations localizations = AppLocalizations(locale);
|
||||
await localizations.load();
|
||||
return localizations;
|
||||
}
|
||||
|
||||
@override
|
||||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:local_auth/local_auth.dart';
|
||||
|
||||
@@ -23,13 +25,26 @@ class BiometricBloc extends Bloc<BiometricEvent, BiometricState> {
|
||||
AuthenticateBiometricEvent event, Emitter<BiometricState> emit) async {
|
||||
emit(BiometricAuthenticating());
|
||||
try {
|
||||
bool authenticated = await localAuthentication.authenticate(
|
||||
localizedReason: 'Please authenticate to access the app',
|
||||
options: const AuthenticationOptions(
|
||||
useErrorDialogs: true,
|
||||
stickyAuth: true,
|
||||
),
|
||||
);
|
||||
bool authenticated = false;
|
||||
if (Platform.isIOS) {
|
||||
authenticated = await localAuthentication.authenticate(
|
||||
localizedReason: 'Please authenticate to access the app',
|
||||
options: const AuthenticationOptions(
|
||||
useErrorDialogs: true,
|
||||
stickyAuth: true,
|
||||
biometricOnly: true,
|
||||
),
|
||||
);
|
||||
} else if (Platform.isAndroid) {
|
||||
authenticated = await localAuthentication.authenticate(
|
||||
localizedReason: 'Please authenticate to access the app',
|
||||
options: const AuthenticationOptions(
|
||||
useErrorDialogs: true,
|
||||
stickyAuth: true,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (authenticated) {
|
||||
emit(BiometricAuthenticated());
|
||||
} else {
|
||||
|
||||
@@ -8,10 +8,10 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import '../../../../core/routes/route_name.dart';
|
||||
import '../../../../core/routes/routes.dart';
|
||||
import '../../../../core/styles/app_images.dart';
|
||||
import '../../../../shared/components/device_locked_dialog.dart';
|
||||
import '../bloc/biometric_bloc.dart';
|
||||
import '../bloc/biometric_event.dart';
|
||||
import '../bloc/biometric_state.dart';
|
||||
import '../../../../shared/components/device_locked_dialog.dart';
|
||||
|
||||
class BiometricLayout extends StatelessWidget {
|
||||
const BiometricLayout({super.key});
|
||||
|
||||
@@ -44,14 +44,14 @@ class SplashScreen extends StatelessWidget {
|
||||
// Navigate to the WelcomeScreen using the goRouter
|
||||
goRouter.goNamed(RouteName.welcomeScreen);
|
||||
} else {
|
||||
// if (await secureStorageService.read('biometric') != null &&
|
||||
// await secureStorageService.read('biometric') == 'on') {
|
||||
// goRouter.goNamed(RouteName.biometricScreen);
|
||||
// } else {
|
||||
goRouter.goNamed(RouteName.pinScreen, pathParameters: {
|
||||
"fromScreen": "LoginedInUser",
|
||||
});
|
||||
// }
|
||||
if (await secureStorageService.read('biometric') != null &&
|
||||
await secureStorageService.read('biometric') == 'on') {
|
||||
goRouter.goNamed(RouteName.biometricScreen);
|
||||
} else {
|
||||
goRouter.goNamed(RouteName.pinScreen, pathParameters: {
|
||||
"fromScreen": "LoginedInUser",
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:local_auth/local_auth.dart';
|
||||
|
||||
import 'core/routes/routes.dart';
|
||||
import 'core/utils/connectivity/network_connectivity.dart';
|
||||
import 'core/utils/language/localizations_delegate.dart';
|
||||
import 'features/biometric/presentation/bloc/biometric_bloc.dart';
|
||||
import 'features/biometric/presentation/bloc/biometric_event.dart';
|
||||
import 'features/countrySelection/presentation/bloc/choose_country_bloc.dart';
|
||||
import 'shared/components/bloc/bottom_nav_bar/bottom_navigation_bloc.dart';
|
||||
import 'shared/components/bloc/language/lng_bloc.dart';
|
||||
import 'shared/components/bloc/language/lng_state.dart';
|
||||
|
||||
/* CREATED BY - JAYESH JAIN
|
||||
DATE - 24-05-2024
|
||||
@@ -81,17 +85,43 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||
BlocProvider(
|
||||
create: (_) =>
|
||||
BiometricBloc(LocalAuthentication())..add(CheckBiometricEvent()),
|
||||
)
|
||||
),
|
||||
BlocProvider(
|
||||
create: (_) => LocalizationBloc(),
|
||||
),
|
||||
],
|
||||
child: ScreenUtilInit(
|
||||
builder: (BuildContext context, Widget? child) => MaterialApp.router(
|
||||
title: 'Tanami Capital',
|
||||
theme: ThemeData(
|
||||
useMaterial3: true,
|
||||
),
|
||||
debugShowCheckedModeBanner: false,
|
||||
routerConfig: goRouter,
|
||||
),
|
||||
builder: (BuildContext context, Widget? child) =>
|
||||
BlocBuilder<LocalizationBloc, LocalizationState>(
|
||||
builder: (context, state) {
|
||||
return MaterialApp.router(
|
||||
title: 'Tanami Capital',
|
||||
locale: state.locale,
|
||||
supportedLocales: const [
|
||||
Locale('en', ''),
|
||||
Locale('ar', ''),
|
||||
],
|
||||
localizationsDelegates: const [
|
||||
AppLocalizations.delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
],
|
||||
localeResolutionCallback: (locale, supportedLocales) {
|
||||
for (var supportedLocale in supportedLocales) {
|
||||
if (supportedLocale.languageCode == locale?.languageCode) {
|
||||
return supportedLocale;
|
||||
}
|
||||
}
|
||||
return supportedLocales.first;
|
||||
},
|
||||
theme: ThemeData(
|
||||
useMaterial3: true,
|
||||
),
|
||||
debugShowCheckedModeBanner: false,
|
||||
routerConfig: goRouter,
|
||||
);
|
||||
}),
|
||||
designSize: const Size(390, 844),
|
||||
),
|
||||
);
|
||||
|
||||
13
lib/shared/components/bloc/language/lng_bloc.dart
Normal file
13
lib/shared/components/bloc/language/lng_bloc.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'lng_event.dart';
|
||||
import 'lng_state.dart';
|
||||
|
||||
class LocalizationBloc extends Bloc<LocalizationEvent, LocalizationState> {
|
||||
LocalizationBloc() : super(const LocalizationState(Locale('en'))) {
|
||||
on<ChangeLanguage>((event, emit) {
|
||||
emit(LocalizationState(event.locale));
|
||||
});
|
||||
}
|
||||
}
|
||||
18
lib/shared/components/bloc/language/lng_event.dart
Normal file
18
lib/shared/components/bloc/language/lng_event.dart
Normal file
@@ -0,0 +1,18 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
abstract class LocalizationEvent extends Equatable {
|
||||
const LocalizationEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class ChangeLanguage extends LocalizationEvent {
|
||||
final Locale locale;
|
||||
|
||||
const ChangeLanguage(this.locale);
|
||||
|
||||
@override
|
||||
List<Object> get props => [locale];
|
||||
}
|
||||
11
lib/shared/components/bloc/language/lng_state.dart
Normal file
11
lib/shared/components/bloc/language/lng_state.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class LocalizationState extends Equatable {
|
||||
final Locale locale;
|
||||
|
||||
const LocalizationState(this.locale);
|
||||
|
||||
@override
|
||||
List<Object> get props => [locale];
|
||||
}
|
||||
@@ -6,10 +6,14 @@
|
||||
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <flutter_localization/flutter_localization_plugin.h>
|
||||
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
|
||||
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||
|
||||
void fl_register_plugins(FlPluginRegistry* registry) {
|
||||
g_autoptr(FlPluginRegistrar) flutter_localization_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterLocalizationPlugin");
|
||||
flutter_localization_plugin_register_with_registrar(flutter_localization_registrar);
|
||||
g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
|
||||
flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#
|
||||
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
flutter_localization
|
||||
flutter_secure_storage_linux
|
||||
url_launcher_linux
|
||||
)
|
||||
|
||||
@@ -8,6 +8,7 @@ import Foundation
|
||||
import connectivity_plus
|
||||
import device_info_plus
|
||||
import firebase_core
|
||||
import flutter_localization
|
||||
import flutter_secure_storage_macos
|
||||
import package_info_plus
|
||||
import path_provider_foundation
|
||||
@@ -19,6 +20,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
|
||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
|
||||
FlutterLocalizationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalizationPlugin"))
|
||||
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
|
||||
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
|
||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||
|
||||
13
pubspec.lock
13
pubspec.lock
@@ -406,6 +406,19 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
flutter_localization:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_localization
|
||||
sha256: faaeb1eba307473032e2c2af737f36ced61fc98735608410d0a6d9c231b50912
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
flutter_localizations:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_plugin_android_lifecycle:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -93,6 +93,9 @@ dependencies:
|
||||
#Performance
|
||||
statsfl: ^2.3.0
|
||||
|
||||
#Localization
|
||||
flutter_localization: ^0.2.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
@@ -134,3 +137,5 @@ flutter:
|
||||
- assets/images/invest_screen/svg/
|
||||
- assets/images/no_internet/
|
||||
- assets/images/no_internet/png/
|
||||
- assets/language/en.json
|
||||
- assets/language/ar.json
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
|
||||
#include <firebase_core/firebase_core_plugin_c_api.h>
|
||||
#include <flutter_localization/flutter_localization_plugin_c_api.h>
|
||||
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
|
||||
#include <local_auth_windows/local_auth_plugin.h>
|
||||
#include <permission_handler_windows/permission_handler_windows_plugin.h>
|
||||
@@ -19,6 +20,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
|
||||
FirebaseCorePluginCApiRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
|
||||
FlutterLocalizationPluginCApiRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("FlutterLocalizationPluginCApi"));
|
||||
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
|
||||
LocalAuthPluginRegisterWithRegistrar(
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
connectivity_plus
|
||||
firebase_core
|
||||
flutter_localization
|
||||
flutter_secure_storage_windows
|
||||
local_auth_windows
|
||||
permission_handler_windows
|
||||
|
||||
Reference in New Issue
Block a user