Merge pull request #89 from WDI-Ideas/jayeshjain25

language localization
This commit is contained in:
Jayesh jain
2024-07-10 07:33:08 +05:30
committed by GitHub
58 changed files with 561 additions and 425 deletions

View File

@@ -1,72 +1,68 @@
class AppText {
//Splash
static const String splashVersionText = "APP: v.";
static const String splashCopyrightText = '© 2024 Tanami';
static const String splashVersionText = "splashVersionText";
static const String splashCopyrightText = "splashCopyrightText";
//Welcome
static const String welcomeTitle1Text = "Tanami offers";
static const String welcomeTitle2Text = "Invest alongside";
static const String welcomeTitle3Text = "Start investing today ";
static const String welcomeDescription1Text =
"access to best-in-class, exclusive, global private investments";
static const String welcomeDescription2Text =
"experienced investment experts with a long-standing track record";
static const String welcomeDescription3Text = "with only SAR 1,000";
static const String loginText = "Log In";
static const String signUpText = "Sign Up";
static const String welcomeTitle1Text = "welcomeTitle1Text";
static const String welcomeTitle2Text = "welcomeTitle2Text";
static const String welcomeTitle3Text = "welcomeTitle3Text";
static const String welcomeDescription1Text = "welcomeDescription1Text";
static const String welcomeDescription2Text = "welcomeDescription2Text";
static const String welcomeDescription3Text = "welcomeDescription3Text";
static const String loginText = "loginText";
static const String signUpText = "signUpText";
//Login
static const String welcomeText = "Welcome back!";
static const String pleaseEnterLoginDetails =
"Please enter your login details to get started";
static const String welcomeText = "welcomeText";
static const String pleaseEnterLoginDetails = "pleaseEnterLoginDetails";
static const String toGetYourAccountPleaseSetYourInfo =
"To get your account please set your info";
static const String countryOfResidence = "Country of residence";
static const String chooseCountry = "Choose country";
static const String phoneNumber = "Phone number";
static const String password = "Password";
static const String enterPassword = "Enter Password";
static const String invalidPhoneNo = "Invalid phone number";
static const String enterPhoneNo = "Enter phone number";
static const String invalidPassword = "Invalid password";
static const String forgotPassword = "Forgot password";
"toGetYourAccountPleaseSetYourInfo";
static const String countryOfResidence = "countryOfResidence";
static const String chooseCountry = "chooseCountry";
static const String phoneNumber = "phoneNumber";
static const String password = "password";
static const String enterPassword = "enterPassword";
static const String invalidPhoneNo = "invalidPhoneNo";
static const String enterPhoneNo = "enterPhoneNo";
static const String invalidPassword = "invalidPassword";
static const String forgotPassword = "forgotPassword";
//Register
static const String getStartedToday = "Get started today";
static const String getStartedToday = "getStartedToday";
static const String setupYourTanamiAccountToBegin =
"Setup your Tanami account to begin investing in a few simple steps";
static const String step1 = "Step 1";
static const String step2 = "Step 2";
static const String step3 = "Step 3";
"setupYourTanamiAccountToBegin";
static const String step1 = "step1";
static const String step2 = "step2";
static const String step3 = "step3";
static const String enterYourCountryOfResidence =
"Enter your country of residence and mobile number";
static const String enterNameEmailPassword =
"Enter your name, email and password";
"enterYourCountryOfResidence";
static const String enterNameEmailPassword = "enterNameEmailPassword";
static const String enterNameEmailUniquePassword =
"Enter your name and email and choose a unique password";
"enterNameEmailUniquePassword";
static const String enableBiometricAuthentication =
"Enable biometric authentication and select a unique pin code for easy access";
static const String getStarted = "Get started";
static const String welcome = "Welcome!";
"enableBiometricAuthentication";
static const String getStarted = "getStarted";
static const String welcome = "welcome";
static const String selectYourCountryOfResidence =
"Select your country of residence and enter your mobile number";
static const String nextText = "Next";
static const String backText = "Back";
static const String firstNameText = "First Name";
static const String lastNameText = "Last Name";
static const String emailText = "Email";
static const String repeatPasswordText = "Repeat Password";
"selectYourCountryOfResidence";
static const String nextText = "nextText";
static const String backText = "backText";
static const String firstNameText = "firstNameText";
static const String lastNameText = "lastNameText";
static const String emailText = "emailText";
static const String repeatPasswordText = "repeatPasswordText";
static const String min8CharactersSpecialCharctersText =
"Min 8 characters, special characters required";
static const String enterFirstName = "Enter first name";
static const String enterLastName = "Enter last name";
static const String enterEmail = "Enter email";
static const String cantBeEmptyText = "Can't be empty";
static const String passwordMismatch = "Password mismatch";
static const String iAgreeToThe = "I agree to the ";
static const String termsAndCondition = "Terms & Conditions";
static const String andThe = " and the";
static const String privacyPolicy = "Privacy Policy";
"min8CharactersSpecialCharctersText";
static const String enterFirstName = "enterFirstName";
static const String enterLastName = "enterLastName";
static const String enterEmail = "enterEmail";
static const String cantBeEmptyText = "cantBeEmptyText";
static const String passwordMismatch = "passwordMismatch";
static const String iAgreeToThe = "iAgreeToThe";
static const String termsAndCondition = "termsAndCondition";
static const String andThe = "andThe";
static const String privacyPolicy = "privacyPolicy";
//Country Name
static const String bahrainCountryText = "Bahrain";
@@ -75,255 +71,242 @@ class AppText {
static const String qatarCountryText = "Qatar";
static const String saudiArabiaCountryText = "Saudi Arabia";
static const String uaeCountryText = "United Arab Emirates";
static const String confirmSelectionText = "Confirm selection";
static const String confirmSelectionText = "confirmSelectionText";
//Portfolio
static const String portfolioText = "Portfolio Value";
static const String portfolio = "Portfolio Value: ";
static const String investmentamount = "Investment Amount";
static const String currentval = "Current valuation";
static const String totalreturn = "Total return";
static const String disttodate = "Distributions to date";
static const String includeddocs = "Investment Documents";
static const String portfolioText = "portfolioText";
static const String portfolio = "portfolio";
static const String investmentamount = "investmentamount";
static const String currentval = "currentval";
static const String totalreturn = "totalreturn";
static const String disttodate = "disttodate";
static const String includeddocs = "includeddocs";
//Academy
static const String videosTitle = "Videos";
static const String academyText = "Academy";
static const String videosTitle = "videosTitle";
static const String academyText = "academyText";
//Dialog
static const String exitText = "Exit";
static const String cancelText = "Cancel";
static const String exitText = "exitText";
static const String cancelText = "cancelText";
static const String areYouSureYouWantToExitText =
"Are you sure you want to Exit?";
"areYouSureYouWantToExitText";
//FAQ
static const String faqTitle = "Frequently Asked Questions:";
static const String faqTitle = "faqTitle";
//Security
static const String unlockText = "Unlock";
static const String tanamiAppIsLocked = "Tanami Capital is locked";
static const String securityMssgText =
"For your security, you can only use Tanami Capital when it's unlocked";
static const String faceIdText = "Face Id";
static const String appAskPermissionText =
"Tanami App ask permission to use Face ID (or Fingerprint)";
static const String unlockText = "unlockText";
static const String tanamiAppIsLocked = "tanamiAppIsLocked";
static const String securityMssgText = "securityMssgText";
static const String faceIdText = "faceIdText";
static const String appAskPermissionText = "appAskPermissionText";
//OTP
static const String checkYourMessages = "Check your messages";
static const String referToSameOtpMessage =
"Enter the 6-digit code sent to your mobile";
static const String resendSms = "Resend SMS";
static const String otpVerifiedSucessfully = "OTP Verified Successfully!";
static const String otpVerifiedFailed = "OTP Verification Failed:";
static const String checkYourMessages = "checkYourMessages";
static const String referToSameOtpMessage = "referToSameOtpMessage";
static const String resendSms = "resendSms";
static const String otpVerifiedSucessfully = "otpVerifiedSucessfully";
static const String otpVerifiedFailed = "otpVerifiedFailed";
//Pin Code
static const String pinCode = "Pin Code";
static const String createPinCode = "Create Pin Code";
static const String changePinCode = "Change Pin Code";
static const String confirmPinCode = "Confirm Pin Code";
static const String incorrectPinCode = "Incorrect PIN. Please try again.";
static const String welcomeBackText = "Welcome back";
static const String pinCode = "pinCode";
static const String createPinCode = "createPinCode";
static const String changePinCode = "changePinCode";
static const String confirmPinCode = "confirmPinCode";
static const String incorrectPinCode = "incorrectPinCode";
static const String welcomeBackText = "welcomeBackText";
static const String userYourAppPinToLoginEnterTanami =
"Use your app PIN to login to enter Tanami";
static const String forgotPinCode = "Forgot Pin Code";
static const String notificationText = "Notification";
static const String allowNotificationText = "Allow notification";
"userYourAppPinToLoginEnterTanami";
static const String forgotPinCode = "forgotPinCode";
static const String notificationText = "notificationText";
static const String allowNotificationText = "allowNotificationText";
static const String toRestorePinYouWillBeLoggedOut =
"To restore PIN you will be Logged out";
static const String allowText = "Allow";
static const String declineText = "Decline";
"toRestorePinYouWillBeLoggedOut";
static const String allowText = "allowText";
static const String declineText = "declineText";
//Forgot Password
static const String almostHere = 'Almost here...';
static const String completeAcc =
'Complete account profile in 3 minutes to start investing';
static const String almostHere = "almostHere";
static const String completeAcc = "completeAcc";
//Forgot Password
static const String restorePasswordText = "Restore password";
static const String restorePasswordText = "restorePasswordText";
static const String toRestorePasswordPleaseEnterPhoneNumber =
"To restore password please enter phone number";
static const String createNewPasswordText = "Create new password";
static const String submitText = "Submit";
"toRestorePasswordPleaseEnterPhoneNumber";
static const String createNewPasswordText = "createNewPasswordText";
static const String submitText = "submitText";
//Wallet
static const String walletTitle = "Wallet balance";
static const String walletText = "Wallet";
static const String day = "Today";
static const String filterTitle = "Filters";
static const String onHold = "On Hold";
static const String deposit = "Deposit";
static const String withdraw = "Withdraw";
static const String withdrawal = "Withdrawal";
static const String yield = "Yield";
static const String refund = "Refund";
static const String investment = "Investment";
static const String walletDetailsTitle = "Details";
static const String withdrawalScreenTitle = 'Enter bank details';
static const String depositScreenTitle = 'Deposit notification';
static const String status = "Status";
static const String paymentMethod = "Payment Method";
static const String accountName = "Account Name";
static const String accountHolderName =
'Account Holder Name/Beneficiary Name';
static const String iban = "IBAN";
static const String beneficiaryAddress = "Beneficiary Address";
static const String bankName = "Bank Name";
static const String branchAddress = "Branch Address";
static const String SWIFTcode = "SWIFT/BIC code";
static const String refid = "Reference ID";
static const String previewTitle = "Withdrawal confirmation";
static const String info =
'Your withdrawal request has been received and is currently being processed.';
static const String info1 =
'Please confirm the withdrawal amount and verify the accuracy of your bank details.';
static const String workingDays =
'Processing times vary from 3-7 working days';
static const String balance = 'Wallet Balance';
static const String withdrawTitle = 'Withdrawal';
static const String depositTitle = 'Deposit';
static const String withdrawDetails = 'Withdrawal details';
static const String depositDetails = 'Deposit details';
static const String required = 'Fields with * are required';
static const String withdrawAmt = 'Total Withdrawal amount:';
static const String depositAmt = 'Total Deposit amount:';
static const String info2 =
'Payment can include transfer fee from your bank ';
static const String info3 =
'To accomplish payment please use payment details and Reference ID in tour Bank';
static const String next = 'Next';
static const String depositNoti = 'Create deposit notification';
static const String payWithAppleText = 'Pay with Apple Pay';
static const String submit = 'Submit request';
static const String Submit = 'Submit';
static const String submitDeposit = 'Submit deposit';
static const String cont = 'Continue';
static const String later = 'Later';
static const String back = 'Back to change';
static const String clear = 'Clear All';
static const String bankTransfer = 'Bank Transfer';
static const String amtTrans = 'Amount of transaction';
static const String date1 = 'Newest first';
static const String date2 = 'Oldest first';
static const String all = 'All';
static const String byDate = 'By date';
static const String byAction = 'By type of action';
static const String byStatus = 'By status';
static const String walletTitle = "walletTitle";
static const String walletText = "walletText";
static const String day = "day";
static const String filterTitle = "filterTitle";
static const String onHold = "onHold";
static const String deposit = "deposit";
static const String withdraw = "withdraw";
static const String withdrawal = "withdrawal";
static const String yield = "yield";
static const String refund = "refund";
static const String investment = "investment";
static const String walletDetailsTitle = "walletDetailsTitle";
static const String withdrawalScreenTitle = "withdrawalScreenTitle";
static const String depositScreenTitle = "depositScreenTitle";
static const String status = "status";
static const String paymentMethod = "paymentMethod";
static const String accountName = "accountName";
static const String accountHolderName = "accountHolderName";
static const String iban = "iban";
static const String beneficiaryAddress = "beneficiaryAddress";
static const String bankName = "bankName";
static const String branchAddress = "branchAddress";
static const String SWIFTcode = "SWIFTcode";
static const String refid = "refid";
static const String previewTitle = "previewTitle";
static const String info = "info";
static const String info1 = "info1";
static const String workingDays = "workingDays";
static const String balance = "balance";
static const String withdrawTitle = "withdrawTitle";
static const String depositTitle = "depositTitle";
static const String withdrawDetails = "withdrawDetails";
static const String depositDetails = "depositDetails";
static const String required = "required";
static const String withdrawAmt = "withdrawAmt";
static const String depositAmt = "depositAmt";
static const String info2 = "info2";
static const String info3 = "info3";
static const String next = "next";
static const String depositNoti = "depositNoti";
static const String payWithAppleText = "payWithAppleText";
static const String submit = "submit";
static const String Submit = "Submit";
static const String submitDeposit = "submitDeposit";
static const String cont = "cont";
static const String later = "later";
static const String back = "back";
static const String clear = "clear";
static const String bankTransfer = "bankTransfer";
static const String amtTrans = "amtTrans";
static const String date1 = "date1";
static const String date2 = "date2";
static const String all = "all";
static const String byDate = "byDate";
static const String byAction = "byAction";
static const String byStatus = "byStatus";
//Settings
static const String settingsText = "Settings";
static const String experiencedInvestorText = "Experienced investor?";
static const String removeInvestmentText = "Remove investment thresholds";
static const String upgradeText =
"Upgrade your investor status today in a few simple steps to allows investments higher than SAR 200,000";
static const String generalText = "General";
static const String notificationsText = "Notifications";
static const String languageText = "Language";
static const String settingsText = "settingsText";
static const String experiencedInvestorText = "experiencedInvestorText";
static const String removeInvestmentText = "removeInvestmentText";
static const String upgradeText = "upgradeText";
static const String generalText = "generalText";
static const String notificationsText = "notificationsText";
static const String languageText = "languageText";
static const String englishText = "English";
static const String privacySettingsText = "Privacy Settings";
static const String biometricText = "Biometric ID";
static const String resetPasswordText = "Reset Password";
static const String resetPinCodeText = "Reset PIN-code";
static const String supportText = "Support";
static const String contactAdminText = "Contact Admin";
static const String privacyPolicyText = "Privacy Policy";
static const String termsAndConditionText = "Terms & Conditions";
static const String faqText = "FAQ";
static const String logoutText = "Log Out";
static const String deleteAccountText = "Delete account";
static const String areYouSureWantToLogoutText =
"Are you sure you want to Logout?";
static const String noText = "No";
static const String yesText = "Yes";
static const String pinUpdatedSucess = "Pin updated Sucessfully !";
static const String pinVerifiedSucess = "Pin verified Sucessfully !";
static const String passwordUpdatedSucess = "Password updated Sucessfully !";
static const String changePasswordText = "Change Password";
static const String newPasswordText = "New Password";
static const String currentPsswordText = "Current Password";
static const String privacySettingsText = "privacySettingsText";
static const String biometricText = "biometricText";
static const String resetPasswordText = "resetPasswordText";
static const String resetPinCodeText = "resetPinCodeText";
static const String supportText = "supportText";
static const String contactAdminText = "contactAdminText";
static const String privacyPolicyText = "privacyPolicyText";
static const String termsAndConditionText = "termsAndConditionText";
static const String faqText = "faqText";
static const String logoutText = "logoutText";
static const String deleteAccountText = "deleteAccountText";
static const String areYouSureWantToLogoutText = "areYouSureWantToLogoutText";
static const String noText = "noText";
static const String yesText = "yesText";
static const String pinUpdatedSucess = "pinUpdatedSucess";
static const String pinVerifiedSucess = "pinVerifiedSucess";
static const String passwordUpdatedSucess = "passwordUpdatedSucess";
static const String changePasswordText = "changePasswordText";
static const String newPasswordText = "newPasswordText";
static const String currentPsswordText = "currentPsswordText";
//Contact Admin
static const String byPhoneText = "By phone";
static const String byEmailText = "By-mail";
static const String weAreHereToHelp = "We are here to help!";
static const String byPhoneText = "byPhoneText";
static const String byEmailText = "byEmailText";
static const String weAreHereToHelp = "weAreHereToHelp";
//Language Screen
static const String arabicText = "اللغة العربية";
static const String chooseTheLanguageText = "Choose the language";
static const String chooseTheLanguageText = "chooseTheLanguageText";
static const String changingTheLanguageWillReloadApp =
"Changing the language will reload the application";
"changingTheLanguageWillReloadApp";
//Delete Screen
static const String weAreSadToSeeYouGo = "We're sad to see you go :(";
static const String enterAdescription = "Enter a description...";
static const String weAreSadToSeeYouGo = "weAreSadToSeeYouGo";
static const String enterAdescription = "enterAdescription";
static const String toHelpUsImprovePleaseLetusKnowWhyYouWantToDeleteAccount =
"To help us improve, please let us know why you want to delete your account";
static const String charactersLeft = "characters left";
"toHelpUsImprovePleaseLetusKnowWhyYouWantToDeleteAccount";
static const String charactersLeft = "charactersLeft";
static const String iUnderstandAndAgreeThatmyDataWillBeDeleted =
"I understand and agree that my data will be deleted";
static const String noIWantToStay = "No, i want to stay";
static const String pleaseEnteraDescription = "Please enter a description";
static const String pleaseCheckThisField = "Please check this field";
"iUnderstandAndAgreeThatmyDataWillBeDeleted";
static const String noIWantToStay = "noIWantToStay";
static const String pleaseEnteraDescription = "pleaseEnteraDescription";
static const String pleaseCheckThisField = "pleaseCheckThisField";
static const String weHaveReceivedYourRequestToDeleteAccount =
"We have received your request to delete your account";
static const String theRequestWillBeProcessed =
"The request will be processed within 72 hours";
static const closeText = "Close";
"weHaveReceivedYourRequestToDeleteAccount";
static const String theRequestWillBeProcessed = "theRequestWillBeProcessed";
static const String closeText = "closeText";
//Invest
static const String investText = "Invest";
static const String availableText = "Available";
static const String closedText = "Closed";
static const String completeYourVerification = "Complete your verification";
static const String investText = "investText";
static const String availableText = "availableText";
static const String closedText = "closedText";
static const String completeYourVerification = "completeYourVerification";
static const String verifyYourAccountInUnderMinutesToStartInvestingToday =
"Verify your account in under 10 minutes to start investing today!";
static const String closingDateText = "Closing Date";
static const String closedDateText = "Closed Date";
static const String fundedText = "funded";
static const String sponsorNameText = "Sponsor name";
static const String estimatedReturnText = "Estimated return";
static const String originalEstimatedReturnText = "Original estimated return";
static const String actualEstimatedReturnText = "Actual return";
static const String actualReturnToDate = "Actual return to date";
static const String holdingPeriodText = "Holding period";
static const String payoutDateText = "Payout Date";
static const String expectedExitDate = "Expected Exit Date";
static const String minimumInvestmentText = "Minimum investment";
static const String keyMeritsOfInvestmentText = "Key Merits";
static const String investmentDetailsText = "Investment details";
static const String enterInvestmentAmountText = "Enter investment amount";
"verifyYourAccountInUnderMinutesToStartInvestingToday";
static const String closingDateText = "closingDateText";
static const String closedDateText = "closedDateText";
static const String fundedText = "fundedText";
static const String sponsorNameText = "sponsorNameText";
static const String estimatedReturnText = "estimatedReturnText";
static const String originalEstimatedReturnText =
"originalEstimatedReturnText";
static const String actualEstimatedReturnText = "actualEstimatedReturnText";
static const String actualReturnToDate = "actualReturnToDate";
static const String holdingPeriodText = "holdingPeriodText";
static const String payoutDateText = "payoutDateText";
static const String expectedExitDate = "expectedExitDate";
static const String minimumInvestmentText = "minimumInvestmentText";
static const String keyMeritsOfInvestmentText = "keyMeritsOfInvestmentText";
static const String investmentDetailsText = "investmentDetailsText";
static const String enterInvestmentAmountText = "enterInvestmentAmountText";
static const String thisIsUsdInvestmentOpportunityText =
"This is a USD investment opportunity. Funds will be converted into USD at a rate of x upon confirmation";
static const String choosePaymentMethodText = "Choose payment method";
static const String balanceText = "Balance";
static const String applePayText = "Apple Pay";
static const String gPayText = "Gpay Pay";
static const String bankTransferText =
"Directly transfer funds from your bank account into your Tanami wallet.";
"thisIsUsdInvestmentOpportunityText";
static const String choosePaymentMethodText = "choosePaymentMethodText";
static const String balanceText = "balanceText";
static const String applePayText = "applePayText";
static const String gPayText = "gPayText";
static const String bankTransferText = "bankTransferText";
static const String instantTransferFundsApplePayText =
"Instant transfer of funds using Apple Pay!";
"instantTransferFundsApplePayText";
static const String instantTransferFundsGpayPayText =
"Instant transfer of funds using Gpay Pay!";
"instantTransferFundsGpayPayText";
static const String retailInvestirCanInvestMaxText =
"Retail investors can invest a maximum of SAR 200,000 in this opportunity.";
"retailInvestirCanInvestMaxText";
static const String upgradeYourInvestorStatusToIncreaseText =
"Upgrade your investor status to increase your investment limit.";
static const String currentExchangeText = "Current Exchange";
static const String feeText = "Fee";
static const String processingFees = "Processing fee";
static const String debitedAmountText = "Debited amount";
static const String totalInvestmentAmountText = "Total Investment amount";
static const String confirmInvestmentText = "Confirm investment";
static const String paymentMethodText = "Payment method";
static const String totalDebitedAmountText = "Total debited amount";
"upgradeYourInvestorStatusToIncreaseText";
static const String currentExchangeText = "currentExchangeText";
static const String feeText = "feeText";
static const String processingFees = "processingFees";
static const String debitedAmountText = "debitedAmountText";
static const String totalInvestmentAmountText = "totalInvestmentAmountText";
static const String confirmInvestmentText = "confirmInvestmentText";
static const String paymentMethodText = "paymentMethodText";
static const String totalDebitedAmountText = "totalDebitedAmountText";
static const String unableToProcessTransactionText =
"Unable to process transaction";
"unableToProcessTransactionText";
static const String investmentOpportunityHasReachedMaxcapText =
"Investment opportunity has reached maximum capacity";
static const String backToInvestmentText = "Back to Investment";
static const String otpCheckIsFailedText = "OTP Check is failed...";
static const String pleaseTryAgainText = "Please try again";
static const String tryAgainText = "Try again";
static const String investmentConfirmationText = "Investment confirmation";
static const String enterAmountText = "Enter Amount";
static const String pleaseEnterAmountText = "Please Enter Amount";
"investmentOpportunityHasReachedMaxcapText";
static const String backToInvestmentText = "backToInvestmentText";
static const String otpCheckIsFailedText = "otpCheckIsFailedText";
static const String pleaseTryAgainText = "pleaseTryAgainText";
static const String tryAgainText = "tryAgainText";
static const String investmentConfirmationText = "investmentConfirmationText";
static const String enterAmountText = "enterAmountText";
static const String pleaseEnterAmountText = "pleaseEnterAmountText";
}

View File

@@ -19,7 +19,7 @@ class SettingsLayout extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
kycCard(),
kycCard(context),
const Gap(15),
const GeneralSettingsSection(),
const Gap(15),

View File

@@ -9,6 +9,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/bloc/toggle/toggle_bloc.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../../core/utils/language/localizations_delegate.dart';
import '../../../../../shared/components/toggle_widget.dart';
import 'settings_list_tile_item.dart';
@@ -17,6 +18,7 @@ class GeneralSettingsSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Padding(
padding: const EdgeInsets.symmetric(
horizontal: 16,
@@ -25,7 +27,7 @@ class GeneralSettingsSection extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextWidget().text14W600(
AppText.generalText,
localizations.translate(AppText.generalText),
clr: AppColor.hintTextColor,
),
const Gap(5),
@@ -33,7 +35,7 @@ class GeneralSettingsSection extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
TextWidget().text14W600(
AppText.allowNotificationText,
localizations.translate(AppText.allowNotificationText),
clr: AppColor.textLabelColor,
),
BlocProvider(
@@ -47,7 +49,7 @@ class GeneralSettingsSection extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
TextWidget().text14W600(
AppText.biometricText,
localizations.translate(AppText.biometricText),
clr: AppColor.textLabelColor,
),
BlocProvider(
@@ -62,8 +64,8 @@ class GeneralSettingsSection extends StatelessWidget {
goRouter.pushNamed(RouteName.languageChangeScreen);
},
icon: AppImages.languageIcon,
title: AppText.languageText,
trailing: AppText.englishText,
title: localizations.translate(AppText.languageText),
trailing: localizations.translate(AppText.englishText),
),
const Gap(10),
const Divider(

View File

@@ -6,7 +6,10 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
Widget kycCard() {
import '../../../../../core/utils/language/localizations_delegate.dart';
Widget kycCard(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Padding(
padding: const EdgeInsets.symmetric(
horizontal: 16,
@@ -49,11 +52,11 @@ Widget kycCard() {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextWidget().text14W600(
AppText.removeInvestmentText,
localizations.translate(AppText.removeInvestmentText),
clr: AppColor.kycCardTextColor,
),
TextWidget().text11W500(
AppText.upgradeText,
localizations.translate(AppText.upgradeText),
clr: AppColor.kycCardTextColor,
),
],

View File

@@ -7,6 +7,7 @@ import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../../core/routes/route_name.dart';
import '../../../../../core/routes/routes.dart';
import '../../../../../core/utils/language/localizations_delegate.dart';
import 'settings_list_tile_item.dart';
class PrivacySettingsSection extends StatelessWidget {
@@ -14,6 +15,7 @@ class PrivacySettingsSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Padding(
padding: const EdgeInsets.symmetric(
horizontal: 16,
@@ -22,7 +24,7 @@ class PrivacySettingsSection extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextWidget().text14W600(
AppText.privacySettingsText,
localizations.translate(AppText.privacySettingsText),
clr: AppColor.hintTextColor,
),
const Gap(5),
@@ -33,7 +35,7 @@ class PrivacySettingsSection extends StatelessWidget {
);
},
icon: AppImages.resetPasswordIcon,
title: AppText.resetPasswordText,
title: localizations.translate(AppText.resetPasswordText),
trailing: "",
),
const Gap(8),
@@ -44,7 +46,7 @@ class PrivacySettingsSection extends StatelessWidget {
});
},
icon: AppImages.resetPinIcon,
title: AppText.resetPinCodeText,
title: localizations.translate(AppText.resetPinCodeText),
trailing: "",
),
const Gap(10),

View File

@@ -7,6 +7,7 @@ import 'package:tanami_app/core/routes/routes.dart';
import '../../../../../core/styles/app_color.dart';
import '../../../../../core/styles/app_text.dart';
import '../../../../../core/utils/language/localizations_delegate.dart';
import '../../../../../shared/components/button_widget.dart';
import '../../../../../shared/components/log_out_dialog.dart';
@@ -15,6 +16,7 @@ class SettingsBottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
children: [
const Gap(36),
@@ -29,7 +31,7 @@ class SettingsBottomSection extends StatelessWidget {
function: () {
buildprofilelogoutdialog(context);
},
text: AppText.logoutText,
text: localizations.translate(AppText.logoutText),
clr: AppColor.primaryColor2,
),
),
@@ -43,7 +45,7 @@ class SettingsBottomSection extends StatelessWidget {
function: () {
goRouter.pushNamed(RouteName.deleteAccountScreen);
},
text: AppText.deleteAccountText,
text: localizations.translate(AppText.deleteAccountText),
clr: AppColor.plainWhite,
),
),

View File

@@ -4,6 +4,8 @@ import 'package:gap/gap.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import '../../../../../core/utils/language/localizations_delegate.dart';
class SettingsListItem extends StatelessWidget {
final String icon;
final String title;
@@ -20,6 +22,7 @@ class SettingsListItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Container(
padding: const EdgeInsets.symmetric(
vertical: 8.0,
@@ -32,7 +35,7 @@ class SettingsListItem extends StatelessWidget {
onTap: onTapFunc,
leading: SvgPicture.asset(icon),
title: Text(
title,
localizations.translate(title),
style: GoogleFonts.dmSans(
fontSize: 14,
fontWeight: FontWeight.w600,
@@ -42,7 +45,7 @@ class SettingsListItem extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
children: [
Text(
trailing,
localizations.translate(trailing),
style: GoogleFonts.dmSans(
fontSize: 15,
fontWeight: FontWeight.w500,

View File

@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../../core/utils/language/localizations_delegate.dart';
import 'settings_list_tile_item.dart';
class SupportSettingsSection extends StatelessWidget {
@@ -14,6 +15,7 @@ class SupportSettingsSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Padding(
padding: const EdgeInsets.symmetric(
horizontal: 16,
@@ -22,7 +24,7 @@ class SupportSettingsSection extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextWidget().text14W600(
AppText.supportText,
localizations.translate(AppText.supportText),
clr: AppColor.hintTextColor,
),
const Gap(8),

View File

@@ -5,6 +5,7 @@ import 'package:google_fonts/google_fonts.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../bloc/change_password_bloc.dart';
import 'change_password_layout.dart';
@@ -13,6 +14,7 @@ class ChangePasswordScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Scaffold(
backgroundColor: AppColor.plainWhite,
appBar: AppBar(
@@ -21,7 +23,7 @@ class ChangePasswordScreen extends StatelessWidget {
scrolledUnderElevation: 0.0,
centerTitle: true,
title: Text(
AppText.changePasswordText,
localizations.translate(AppText.changePasswordText),
style: GoogleFonts.dmSans(
color: const Color(0xFF272727),
fontSize: 20.sp,

View File

@@ -8,6 +8,7 @@ import 'package:tanami_app/shared/components/toast_message.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/button_widget.dart';
import '../bloc/change_password_bloc.dart';
import '../bloc/change_password_event.dart';
@@ -20,6 +21,7 @@ class RestorePasswordBottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
mainAxisSize: MainAxisSize.min,
children: [
@@ -77,7 +79,7 @@ class RestorePasswordBottomSection extends StatelessWidget {
)
: null;
},
text: AppText.submitText,
text: localizations.translate(AppText.submitText),
clr: isButtonEnabled
? AppColor.primaryColor2
: AppColor.inactiveBtnColor,
@@ -92,7 +94,7 @@ class RestorePasswordBottomSection extends StatelessWidget {
function: () {
goRouter.pop();
},
text: AppText.cancelText,
text: localizations.translate(AppText.cancelText),
),
const Gap(10),
],

View File

@@ -6,6 +6,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
import '../../../../core/routes/route_name.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/password_field/password_visibility_bloc.dart';
import '../../../../shared/components/button_widget.dart';
import '../../../../shared/components/form_label_textfield.dart';
@@ -17,6 +18,7 @@ class RestorePasswordForm extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final restorePasswordBloc = context.read<ChangePasswordBloc>();
// Reset fields when the screen is built
@@ -37,8 +39,8 @@ class RestorePasswordForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.enterPassword,
title: AppText.currentPsswordText,
hintText: localizations.translate(AppText.enterPassword),
title: localizations.translate(AppText.currentPsswordText),
type: AppText.password.toLowerCase(),
textEditingController:
restorePasswordBloc.currentPasswordTextField,
@@ -48,8 +50,8 @@ class RestorePasswordForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.enterPassword,
title: AppText.newPasswordText,
hintText: localizations.translate(AppText.enterPassword),
title: localizations.translate(AppText.newPasswordText),
type: AppText.password.toLowerCase(),
textEditingController: restorePasswordBloc.passwordTextField,
),
@@ -58,8 +60,8 @@ class RestorePasswordForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.enterPassword,
title: AppText.repeatPasswordText,
hintText: localizations.translate(AppText.enterPassword),
title: localizations.translate(AppText.repeatPasswordText),
type: AppText.password.toLowerCase(),
textEditingController:
restorePasswordBloc.repeatPasswordTextField,
@@ -73,7 +75,8 @@ class RestorePasswordForm extends StatelessWidget {
goRouter.pushNamed(
RouteName.forgotPasswordPhoneVerificationScreen);
},
text: TextWidget().text15W400(AppText.forgotPassword,
text: TextWidget().text15W400(
localizations.translate(AppText.forgotPassword),
clr: AppColor.forgotPassButtonColor,
textDecoration: TextDecoration.underline),
),

View File

@@ -19,8 +19,8 @@ class ContactAdminScreen extends StatelessWidget {
),
body: ListView(
children: [
topSection(),
bottomSection(),
topSection(context),
bottomSection(context),
],
),
);

View File

@@ -6,9 +6,11 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/core/utils/url_launcher/url_launcher.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/text_widget.dart';
Widget bottomSection() {
Widget bottomSection(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Padding(
padding: const EdgeInsets.all(22.0),
child: Column(
@@ -16,7 +18,7 @@ Widget bottomSection() {
const Gap(50.0),
contactOption(
icon: AppImages.byPhoneIcon,
title: AppText.byPhoneText,
title: localizations.translate(AppText.byPhoneText),
subtitle: '+973 12345678',
onTap: () {
launchPhone('+973 12345678');
@@ -25,7 +27,7 @@ Widget bottomSection() {
const Gap(16.0),
contactOption(
icon: AppImages.byMailIcon,
title: AppText.byEmailText,
title: localizations.translate(AppText.byEmailText),
subtitle: 'info@tanamicapital.com',
onTap: () {
launchEmail('info@tanamicapital.com');

View File

@@ -5,9 +5,11 @@ import 'package:gap/gap.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_images.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/text_widget.dart';
Widget topSection() {
Widget topSection(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
children: [
const Gap(85),
@@ -18,7 +20,7 @@ Widget topSection() {
),
const Gap(24),
TextWidget().text17W700(
AppText.weAreHereToHelp,
localizations.translate(AppText.weAreHereToHelp),
clr: AppColor.textLabelColor,
),
const Gap(10),

View File

@@ -5,6 +5,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/appbar_widget.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/button_widget.dart';
import '../widgets/country_selection_list.dart';
@@ -13,6 +14,7 @@ class ChooseCountryLayout extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Scaffold(
backgroundColor: AppColor.plainWhite,
bottomNavigationBar: Container(
@@ -27,13 +29,13 @@ class ChooseCountryLayout extends StatelessWidget {
function: () {
goRouter.pop();
},
text: AppText.confirmSelectionText,
text: localizations.translate(AppText.confirmSelectionText),
clr: AppColor.primaryColor2,
),
),
appBar: const AppBarWidget(
appBar: AppBarWidget(
height: 75,
titleTxt: AppText.chooseCountry,
titleTxt: localizations.translate(AppText.chooseCountry),
),
body: const CountrySelectionList(),
);

View File

@@ -6,6 +6,7 @@ import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_bloc.dart';
import '../bloc/delete_account_bloc.dart';
@@ -14,6 +15,7 @@ class DeleteAccountScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Scaffold(
backgroundColor: AppColor.plainWhite,
appBar: AppBar(
@@ -21,7 +23,7 @@ class DeleteAccountScreen extends StatelessWidget {
elevation: 0,
scrolledUnderElevation: 0,
title: TextWidget().text20W700(
AppText.deleteAccountText,
localizations.translate(AppText.deleteAccountText),
clr: AppColor.plainBlack,
),
centerTitle: true,

View File

@@ -6,6 +6,7 @@ import 'package:gap/gap.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_bloc.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_event.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_state.dart';
@@ -19,6 +20,7 @@ import 'delete_account_dialog.dart';
Widget bottomSection(BuildContext context) {
final deleteAccountBloc = context.read<DeleteAccountBloc>();
var localizations = AppLocalizations.of(context);
return Column(
mainAxisSize: MainAxisSize.min,
@@ -35,7 +37,7 @@ Widget bottomSection(BuildContext context) {
function: () {
goRouter.pop();
},
text: AppText.noIWantToStay,
text: localizations.translate(AppText.noIWantToStay),
clr: AppColor.primaryColor2,
),
),
@@ -83,7 +85,7 @@ Widget bottomSection(BuildContext context) {
}
}
},
text: AppText.deleteAccountText,
text: localizations.translate(AppText.deleteAccountText),
clr: AppColor.plainWhite,
),
);

View File

@@ -4,6 +4,7 @@ import 'package:tanami_app/core/routes/routes.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/text_widget.dart';
class AccountDeletionDialog extends StatelessWidget {
@@ -11,6 +12,7 @@ class AccountDeletionDialog extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return AlertDialog(
backgroundColor: AppColor.plainWhite,
shape: RoundedRectangleBorder(
@@ -29,7 +31,8 @@ class AccountDeletionDialog extends StatelessWidget {
},
),
TextWidget().text17W700(
AppText.weHaveReceivedYourRequestToDeleteAccount,
localizations
.translate(AppText.weHaveReceivedYourRequestToDeleteAccount),
clr: AppColor.textLabelColor,
),
],
@@ -38,7 +41,7 @@ class AccountDeletionDialog extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
children: [
TextWidget().text15W500(
AppText.theRequestWillBeProcessed,
localizations.translate(AppText.theRequestWillBeProcessed),
clr: AppColor.hintTextColor,
),
const Gap(20),
@@ -46,7 +49,8 @@ class AccountDeletionDialog extends StatelessWidget {
onTap: () {
goRouter.pop();
},
child: TextWidget().text14W500(AppText.closeText,
child: TextWidget().text14W500(
localizations.translate(AppText.closeText),
textDecoration: TextDecoration.underline,
clr: AppColor.otpTextColor),
),

View File

@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_bloc.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_state.dart';
import '../../../../shared/components/checkbox_widget.dart';
@@ -21,6 +22,7 @@ class FormSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final deleteAccountBloc = context.read<DeleteAccountBloc>();
return Form(
key: deleteAccountBloc.formKey,
@@ -44,11 +46,12 @@ class FormSection extends StatelessWidget {
deleteAccountBloc.descriptionTextField.text,
));
},
hintText: AppText.enterAdescription,
hintText:
localizations.translate(AppText.enterAdescription),
textEditingController:
deleteAccountBloc.descriptionTextField,
title: AppText
.toHelpUsImprovePleaseLetusKnowWhyYouWantToDeleteAccount,
title: localizations.translate(AppText
.toHelpUsImprovePleaseLetusKnowWhyYouWantToDeleteAccount),
type: "description",
);
},
@@ -58,11 +61,11 @@ class FormSection extends StatelessWidget {
builder: (context, state) {
if (state is TextUpdated) {
return TextWidget().text14W400(
"${state.charactersLeft} ${AppText.charactersLeft}",
"${state.charactersLeft} ${localizations.translate(AppText.charactersLeft)}",
clr: AppColor.descriptionText);
}
return TextWidget().text14W400(
"350 ${AppText.charactersLeft}",
"350 ${localizations.translate(AppText.charactersLeft)}",
clr: AppColor.descriptionText);
},
),
@@ -82,7 +85,8 @@ class FormSection extends StatelessWidget {
child: SizedBox(
width: 0.85.sw,
child: TextWidget().text14W500(
AppText.iUnderstandAndAgreeThatmyDataWillBeDeleted,
localizations.translate(
AppText.iUnderstandAndAgreeThatmyDataWillBeDeleted),
clr: AppColor.charcoalColor,
txtAlign: TextAlign.start,
),
@@ -97,7 +101,7 @@ class FormSection extends StatelessWidget {
child: SizedBox(
width: 0.75.sw,
child: TextWidget().text14W500(
AppText.pleaseCheckThisField,
localizations.translate(AppText.pleaseCheckThisField),
clr: AppColor.txtErrorColor,
txtAlign: TextAlign.start,
),

View File

@@ -6,6 +6,8 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class TopSection extends StatelessWidget {
const TopSection({
super.key,
@@ -13,6 +15,7 @@ class TopSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -24,7 +27,7 @@ class TopSection extends StatelessWidget {
),
const Gap(30),
TextWidget().text20W700(
AppText.weAreSadToSeeYouGo,
localizations.translate(AppText.weAreSadToSeeYouGo),
clr: AppColor.charcoalColor,
),
],

View File

@@ -6,6 +6,7 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/appbar_widget.dart';
class FAQScreen extends StatefulWidget {
@@ -20,6 +21,7 @@ class _AccountappState extends State<FAQScreen> {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Scaffold(
backgroundColor: AppColor.plainWhite,
appBar: const AppBarWidget(
@@ -35,7 +37,7 @@ class _AccountappState extends State<FAQScreen> {
Padding(
padding: EdgeInsets.only(left: 16.w, top: 23.h),
child: Text(
AppText.faqTitle,
localizations.translate(AppText.faqTitle),
style: GoogleFonts.dmSans(
fontSize: 18.sp,
color: AppColor.charcoalColor,

View File

@@ -9,6 +9,7 @@ import '../../../../core/routes/route_name.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/button_widget.dart';
import '../../../../shared/components/text_widget.dart';
import '../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
@@ -23,6 +24,7 @@ class RestorePasswordBottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final radioBloc = context.read<RadioBloc>();
return Column(
children: [
@@ -75,7 +77,7 @@ class RestorePasswordBottomSection extends StatelessWidget {
)
: null;
},
text: AppText.submitText,
text: localizations.translate(AppText.submitText),
clr: isButtonEnabled
? AppColor.primaryColor2
: AppColor.inactiveBtnColor,
@@ -88,7 +90,8 @@ class RestorePasswordBottomSection extends StatelessWidget {
function: () {
goRouter.pop();
},
text: TextWidget().text14W700(AppText.backText,
text: TextWidget().text14W700(
localizations.translate(AppText.backText),
clr: AppColor.textLabelColor,
textDecoration: TextDecoration.underline)),
],

View File

@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/features/forgotPassword/presentation/bloc/restore_password_bloc.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/password_field/password_visibility_bloc.dart';
import '../../../../shared/components/form_label_textfield.dart';
@@ -12,6 +13,7 @@ class RestorePasswordForm extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final restorePasswordBloc = context.read<RestorePasswordBloc>();
// Reset fields when the screen is built
@@ -32,7 +34,7 @@ class RestorePasswordForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.enterPassword,
hintText: localizations.translate(AppText.enterPassword),
title: "New Password",
type: AppText.password.toLowerCase(),
textEditingController: restorePasswordBloc.passwordTextField,
@@ -42,8 +44,8 @@ class RestorePasswordForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.repeatPasswordText,
title: AppText.repeatPasswordText,
hintText: localizations.translate(AppText.repeatPasswordText),
title: localizations.translate(AppText.repeatPasswordText),
type: AppText.password.toLowerCase(),
textEditingController:
restorePasswordBloc.repeatPasswordTextField,

View File

@@ -9,6 +9,7 @@ import '../../../../core/routes/route_name.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/button_widget.dart';
import '../../../../shared/components/text_widget.dart';
import '../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
@@ -23,6 +24,7 @@ class RestorePasswordPhoneVerificationBottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final radioBloc = context.read<RadioBloc>();
return Column(
children: [
@@ -78,7 +80,7 @@ class RestorePasswordPhoneVerificationBottomSection extends StatelessWidget {
)
: null;
},
text: AppText.nextText,
text: localizations.translate(AppText.nextText),
clr: isButtonEnabled
? AppColor.primaryColor2
: AppColor.inactiveBtnColor,
@@ -91,7 +93,8 @@ class RestorePasswordPhoneVerificationBottomSection extends StatelessWidget {
function: () {
goRouter.pop();
},
text: TextWidget().text14W700(AppText.backText,
text: TextWidget().text14W700(
localizations.translate(AppText.backText),
clr: AppColor.textLabelColor,
textDecoration: TextDecoration.underline)),
],

View File

@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/core/utils/constant/country_flag_data.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/form_label_textfield.dart';
import '../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
import '../../../countrySelection/presentation/bloc/choose_country_state.dart';
@@ -14,6 +15,7 @@ class RestorePasswordPhoneVerificationForm extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final restorePasswordBloc =
context.read<RestorePasswordPhoneVerificationBloc>();
@@ -54,8 +56,8 @@ class RestorePasswordPhoneVerificationForm extends StatelessWidget {
width: 20,
height: 20,
),
hintText: AppText.chooseCountry,
title: AppText.countryOfResidence,
hintText: localizations.translate(AppText.chooseCountry),
title: localizations.translate(AppText.countryOfResidence),
type: "country selection",
textEditingController:
restorePasswordBloc.countrySelectionTextField,
@@ -70,7 +72,7 @@ class RestorePasswordPhoneVerificationForm extends StatelessWidget {
height: 20,
),
hintText: "+0 (000) 000 00 00",
title: AppText.phoneNumber,
title: localizations.translate(AppText.phoneNumber),
type: "phone number",
textEditingController:
restorePasswordBloc.phoneNumberTextField,

View File

@@ -6,6 +6,8 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class RestorePasswordPhoneVerificationTopSection extends StatelessWidget {
const RestorePasswordPhoneVerificationTopSection({
super.key,
@@ -13,6 +15,7 @@ class RestorePasswordPhoneVerificationTopSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -24,14 +27,15 @@ class RestorePasswordPhoneVerificationTopSection extends StatelessWidget {
),
const Gap(60),
TextWidget().text20W700(
AppText.restorePasswordText,
localizations.translate(AppText.restorePasswordText),
clr: AppColor.charcoalColor,
),
const Gap(10),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 75),
child: TextWidget().text14W500(
AppText.toRestorePasswordPleaseEnterPhoneNumber,
localizations
.translate(AppText.toRestorePasswordPleaseEnterPhoneNumber),
clr: AppColor.smokeGrayColor,
),
),

View File

@@ -6,6 +6,8 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class RestorePasswordTopSection extends StatelessWidget {
const RestorePasswordTopSection({
super.key,
@@ -13,6 +15,7 @@ class RestorePasswordTopSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -24,14 +27,14 @@ class RestorePasswordTopSection extends StatelessWidget {
),
const Gap(60),
TextWidget().text20W700(
AppText.restorePasswordText,
localizations.translate(AppText.restorePasswordText),
clr: AppColor.charcoalColor,
),
const Gap(10),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 75),
child: TextWidget().text14W500(
AppText.createNewPasswordText,
localizations.translate(AppText.createNewPasswordText),
clr: AppColor.smokeGrayColor,
),
),

View File

@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/appbar_widget.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../widgets/bottom_section.dart';
import '../widgets/language_change_list.dart';
@@ -15,12 +16,13 @@ class LanguageChangeLayout extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Scaffold(
backgroundColor: AppColor.plainWhite,
bottomNavigationBar: bottomSection(),
appBar: const AppBarWidget(
bottomNavigationBar: bottomSection(context),
appBar: AppBarWidget(
height: 75,
titleTxt: AppText.languageText,
titleTxt: localizations.translate(AppText.languageText),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
@@ -40,7 +42,8 @@ class LanguageChangeLayout extends StatelessWidget {
SizedBox(
width: 0.8.sw,
child: TextWidget().text12W500(
AppText.changingTheLanguageWillReloadApp,
localizations
.translate(AppText.changingTheLanguageWillReloadApp),
clr: AppColor.languageTextColor,
),
)

View File

@@ -1,14 +1,19 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:gap/gap.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/language/lng_bloc.dart';
import '../../../../shared/components/bloc/language/lng_event.dart';
import '../../../../shared/components/button_widget.dart';
import '../../../../shared/components/text_widget.dart';
Widget bottomSection() {
Widget bottomSection(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
mainAxisSize: MainAxisSize.min,
children: [
@@ -22,9 +27,15 @@ Widget bottomSection() {
child: ButtonWidget().elevatedBtn(
txtClr: AppColor.plainWhite,
function: () {
var newLocale =
context.read<LocalizationBloc>().state.locale.languageCode ==
'en'
? const Locale('ar')
: const Locale('en');
context.read<LocalizationBloc>().add(ChangeLanguage(newLocale));
goRouter.pop();
},
text: AppText.submitText,
text: localizations.translate(AppText.submitText),
clr: AppColor.primaryColor2,
),
),
@@ -32,7 +43,8 @@ Widget bottomSection() {
function: () {
goRouter.pop();
},
text: TextWidget().text14W700(AppText.backText,
text: TextWidget().text14W700(
localizations.translate(AppText.backText),
clr: AppColor.textLabelColor,
textDecoration: TextDecoration.underline)),
const Gap(20),

View File

@@ -10,6 +10,7 @@ import '../../../../core/routes/route_name.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/button_widget.dart';
import '../../../../shared/components/text_widget.dart';
import '../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
@@ -26,6 +27,7 @@ class BottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
SecureStorageService secureStorageService = SecureStorageService();
final radioBloc = context.read<RadioBloc>();
return Column(
@@ -38,7 +40,8 @@ class BottomSection extends StatelessWidget {
goRouter
.pushNamed(RouteName.forgotPasswordPhoneVerificationScreen);
},
text: TextWidget().text15W400(AppText.forgotPassword,
text: TextWidget().text15W400(
localizations.translate(AppText.forgotPassword),
clr: AppColor.forgotPassButtonColor,
textDecoration: TextDecoration.underline)),
),
@@ -98,7 +101,7 @@ class BottomSection extends StatelessWidget {
)
: null;
},
text: AppText.loginText,
text: localizations.translate(AppText.loginText),
clr: isButtonEnabled
? AppColor.primaryColor2
: AppColor.inactiveBtnColor,
@@ -120,8 +123,8 @@ class BottomSection extends StatelessWidget {
clr: AppColor.plainWhite,
borderClr: AppColor.txtBorderColor,
text: fromScreen == "forgot-pin"
? AppText.backText
: AppText.signUpText,
? localizations.translate(AppText.backText)
: localizations.translate(AppText.signUpText),
),
const Gap(15),
],

View File

@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/core/utils/constant/country_flag_data.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/password_field/password_visibility_bloc.dart';
import '../../../../shared/components/form_label_textfield.dart';
import '../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
@@ -15,6 +16,7 @@ class LoginForm extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final loginBloc = context.read<LoginBloc>();
// Reset fields when the screen is built
@@ -53,8 +55,8 @@ class LoginForm extends StatelessWidget {
width: 20,
height: 20,
),
hintText: AppText.chooseCountry,
title: AppText.countryOfResidence,
hintText: localizations.translate(AppText.chooseCountry),
title: localizations.translate(AppText.countryOfResidence),
type: "country selection",
textEditingController: loginBloc.countrySelectionTextField,
),
@@ -68,7 +70,7 @@ class LoginForm extends StatelessWidget {
height: 20,
),
hintText: "+0 (000) 000 00 00",
title: AppText.phoneNumber,
title: localizations.translate(AppText.phoneNumber),
type: "phone number",
textEditingController: loginBloc.phoneNumberTextField,
),
@@ -76,8 +78,8 @@ class LoginForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.enterPassword,
title: AppText.password,
hintText: localizations.translate(AppText.enterPassword),
title: localizations.translate(AppText.password),
type: "password",
textEditingController: loginBloc.passwordTextField,
),

View File

@@ -6,6 +6,8 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class TopSection extends StatelessWidget {
final String fromScreen;
const TopSection({
@@ -15,6 +17,7 @@ class TopSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -26,7 +29,7 @@ class TopSection extends StatelessWidget {
),
const Gap(60),
TextWidget().text20W700(
AppText.welcomeText,
localizations.translate(AppText.welcomeText),
clr: AppColor.charcoalColor,
),
const Gap(10),
@@ -34,8 +37,9 @@ class TopSection extends StatelessWidget {
padding: const EdgeInsets.symmetric(horizontal: 75),
child: TextWidget().text14W500(
fromScreen == "forgot-pin"
? AppText.toGetYourAccountPleaseSetYourInfo
: AppText.pleaseEnterLoginDetails,
? localizations
.translate(AppText.toGetYourAccountPleaseSetYourInfo)
: localizations.translate(AppText.pleaseEnterLoginDetails),
clr: AppColor.smokeGrayColor,
),
),

View File

@@ -9,6 +9,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/loader.dart';
import 'package:tanami_app/shared/components/toast_message.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../bloc/otp_bloc.dart';
import '../bloc/otp_event.dart';
import '../bloc/otp_state.dart';
@@ -22,6 +23,7 @@ class OtpFillSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return BlocConsumer<OtpBloc, OtpState>(
listener: (context, state) {
if (state is OtpSubmitting) {
@@ -32,7 +34,7 @@ class OtpFillSection extends StatelessWidget {
successToastMessage(
context,
AppText.otpVerifiedSucessfully,
localizations.translate(AppText.otpVerifiedSucessfully),
);
if (fromScreen == "forgot-password") {
@@ -48,8 +50,8 @@ class OtpFillSection extends StatelessWidget {
}
} else if (state is OtpSubmissionFailure) {
goRouter.pop();
errorToastMessage(
context, '${AppText.otpVerifiedFailed} ${state.error}');
errorToastMessage(context,
'${localizations.translate(AppText.otpVerifiedFailed)} ${state.error}');
}
},
builder: (context, state) {

View File

@@ -5,6 +5,7 @@ import 'package:gap/gap.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_images.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/text_widget.dart';
class OtpTopSection extends StatelessWidget {
@@ -12,6 +13,7 @@ class OtpTopSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -23,14 +25,14 @@ class OtpTopSection extends StatelessWidget {
),
const Gap(125),
TextWidget().text20W700(
AppText.checkYourMessages,
localizations.translate(AppText.checkYourMessages),
clr: AppColor.charcoalColor,
),
const Gap(25),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 35),
child: TextWidget().text14W500(
AppText.referToSameOtpMessage,
localizations.translate(AppText.referToSameOtpMessage),
clr: AppColor.smokeGrayColor,
),
),

View File

@@ -5,6 +5,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import 'package:tanami_app/shared/components/toast_message.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../bloc/timer/timer_bloc.dart';
import '../bloc/timer/timer_state.dart';
@@ -13,6 +14,7 @@ class ResendOtpSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return BlocBuilder<TimerBloc, TimerState>(
builder: (context, state) {
return Padding(
@@ -29,7 +31,7 @@ class ResendOtpSection extends StatelessWidget {
successToastMessage(context, "OTP Resend Sucessfully !");
},
child: TextWidget().text14W500(
AppText.resendSms,
localizations.translate(AppText.resendSms),
clr: AppColor.plainBlack,
textDecoration: TextDecoration.underline,
),

View File

@@ -11,6 +11,7 @@ import '../../../../core/routes/route_name.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/button_widget.dart';
import '../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
import '../bloc/register_bloc.dart';
@@ -22,6 +23,7 @@ class RegisterBottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final radioBloc = context.read<RadioBloc>();
return Column(
children: [
@@ -79,7 +81,7 @@ class RegisterBottomSection extends StatelessWidget {
)
: null;
},
text: AppText.nextText,
text: localizations.translate(AppText.nextText),
clr: isButtonEnabled
? AppColor.primaryColor2
: AppColor.inactiveBtnColor,
@@ -95,7 +97,7 @@ class RegisterBottomSection extends StatelessWidget {
radioBloc.resetSelection();
goRouter.pop();
},
text: AppText.backText,
text: localizations.translate(AppText.backText),
)
],
);

View File

@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/core/utils/constant/country_flag_data.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/form_label_textfield.dart';
import '../../../countrySelection/presentation/bloc/choose_country_bloc.dart';
import '../../../countrySelection/presentation/bloc/choose_country_state.dart';
@@ -14,6 +15,7 @@ class RegisterForm extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final loginBloc = context.read<RegisterBloc>();
int selectedCountry = -1;
return BlocConsumer<RadioBloc, RadioState>(listener: (context, state) {
@@ -49,8 +51,8 @@ class RegisterForm extends StatelessWidget {
width: 20,
height: 20,
),
hintText: AppText.chooseCountry,
title: AppText.countryOfResidence,
hintText: localizations.translate(AppText.chooseCountry),
title: localizations.translate(AppText.countryOfResidence),
type: "country selection",
textEditingController: loginBloc.countrySelectionTextField,
),
@@ -64,7 +66,7 @@ class RegisterForm extends StatelessWidget {
height: 20,
),
hintText: "+0 (000) 000 00 00",
title: AppText.phoneNumber,
title: localizations.translate(AppText.phoneNumber),
type: "phone number",
textEditingController: loginBloc.phoneNumberTextField,
),

View File

@@ -7,12 +7,14 @@ import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/shared/components/button_widget.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class RegisterStepBottomSection extends StatelessWidget {
const RegisterStepBottomSection({super.key});
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Padding(
padding: const EdgeInsets.symmetric(vertical: 40.0),
child: Column(
@@ -29,7 +31,7 @@ class RegisterStepBottomSection extends StatelessWidget {
RouteName.registerScreen,
);
},
text: AppText.getStarted,
text: localizations.translate(AppText.getStarted),
txtClr: AppColor.plainWhite,
clr: AppColor.primaryColor2,
),
@@ -43,7 +45,7 @@ class RegisterStepBottomSection extends StatelessWidget {
"fromScreen": "registerStep",
});
},
text: AppText.loginText,
text: localizations.translate(AppText.loginText),
)
],
),

View File

@@ -6,11 +6,14 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class RegisterStepTopSection extends StatelessWidget {
const RegisterStepTopSection({super.key});
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -22,14 +25,14 @@ class RegisterStepTopSection extends StatelessWidget {
),
const Gap(30),
TextWidget().text20W700(
AppText.getStartedToday,
localizations.translate(AppText.getStartedToday),
clr: AppColor.charcoalColor,
),
const Gap(10),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 75),
child: TextWidget().text14W500(
AppText.setupYourTanamiAccountToBegin,
localizations.translate(AppText.setupYourTanamiAccountToBegin),
clr: AppColor.smokeGrayColor,
),
),

View File

@@ -6,11 +6,14 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class RegisterTopSection extends StatelessWidget {
const RegisterTopSection({super.key});
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -22,14 +25,14 @@ class RegisterTopSection extends StatelessWidget {
),
const Gap(60),
TextWidget().text20W700(
AppText.welcome,
localizations.translate(AppText.welcome),
clr: AppColor.charcoalColor,
),
const Gap(10),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 75),
child: TextWidget().text14W500(
AppText.selectYourCountryOfResidence,
localizations.translate(AppText.selectYourCountryOfResidence),
clr: AppColor.smokeGrayColor,
),
),

View File

@@ -16,6 +16,7 @@ import 'package:tanami_app/shared/components/toast_message.dart';
import '../../../../core/routes/routes.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_bloc.dart';
import '../../../../shared/components/bloc/checkbox/checkbox_state.dart';
import '../../../../shared/components/button_widget.dart';
@@ -29,6 +30,7 @@ class RegisterUserBottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
children: [
const Gap(40),
@@ -39,7 +41,7 @@ class RegisterUserBottomSection extends StatelessWidget {
Expanded(
child: RichText(
text: TextSpan(
text: AppText.iAgreeToThe,
text: localizations.translate(AppText.iAgreeToThe),
style: GoogleFonts.dmSans(
color: AppColor.charcoalColor,
fontSize: 14,
@@ -53,20 +55,21 @@ class RegisterUserBottomSection extends StatelessWidget {
fontWeight: FontWeight.w500,
decoration: TextDecoration.underline,
),
text: AppText.termsAndCondition,
text:
localizations.translate(AppText.termsAndCondition),
recognizer: TapGestureRecognizer()
..onTap = () => log('Tap Here onTap'),
),
const TextSpan(
text: AppText.andThe,
style: TextStyle(
TextSpan(
text: localizations.translate(AppText.andThe),
style: const TextStyle(
color: AppColor.charcoalColor,
fontSize: 14,
fontWeight: FontWeight.w500,
),
),
TextSpan(
text: AppText.privacyPolicy,
text: localizations.translate(AppText.privacyPolicy),
recognizer: TapGestureRecognizer()
..onTap = () => log('Tap Here onTap'),
style: const TextStyle(
@@ -152,7 +155,7 @@ class RegisterUserBottomSection extends StatelessWidget {
)
: null;
},
text: AppText.nextText,
text: localizations.translate(AppText.nextText),
clr: isButtonEnabled
? AppColor.primaryColor2
: AppColor.inactiveBtnColor,
@@ -166,7 +169,7 @@ class RegisterUserBottomSection extends StatelessWidget {
function: () {
goRouter.pop();
},
text: AppText.backText,
text: localizations.translate(AppText.backText),
borderClr: AppColor.txtBorderColor,
),
],

View File

@@ -3,6 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:gap/gap.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/bloc/password_field/password_visibility_bloc.dart';
import '../../../../shared/components/form_label_textfield.dart';
import '../bloc/register_user_bloc.dart';
@@ -12,6 +13,7 @@ class RegisterUserForm extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final registerUserBloc = context.read<RegisterUserBloc>();
return Form(
@@ -27,22 +29,22 @@ class RegisterUserForm extends StatelessWidget {
children: [
const Gap(50),
FormLabelTextField(
hintText: AppText.enterFirstName,
title: AppText.firstNameText,
type: AppText.firstNameText,
hintText: localizations.translate(AppText.enterFirstName),
title: localizations.translate(AppText.firstNameText),
type: localizations.translate(AppText.firstNameText),
textEditingController: registerUserBloc.firstNameTextField,
),
const Gap(12),
FormLabelTextField(
hintText: AppText.enterLastName,
title: AppText.lastNameText,
hintText: localizations.translate(AppText.enterLastName),
title: localizations.translate(AppText.lastNameText),
type: AppText.lastNameText,
textEditingController: registerUserBloc.lastNameTextField,
),
const Gap(12),
FormLabelTextField(
hintText: AppText.enterEmail,
title: AppText.emailText,
hintText: localizations.translate(AppText.enterEmail),
title: localizations.translate(AppText.emailText),
type: AppText.emailText,
textEditingController: registerUserBloc.emailTextField,
),
@@ -50,8 +52,8 @@ class RegisterUserForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.enterPassword,
title: AppText.password,
hintText: localizations.translate(AppText.enterPassword),
title: localizations.translate(AppText.password),
type: AppText.password.toLowerCase(),
textEditingController: registerUserBloc.passwordTextField,
),
@@ -60,8 +62,8 @@ class RegisterUserForm extends StatelessWidget {
BlocProvider(
create: (_) => PasswordVisibilityBloc(),
child: FormLabelTextField(
hintText: AppText.repeatPasswordText,
title: AppText.repeatPasswordText,
hintText: localizations.translate(AppText.repeatPasswordText),
title: localizations.translate(AppText.repeatPasswordText),
type: AppText.password.toLowerCase(),
textEditingController:
registerUserBloc.repeatPasswordTextField,

View File

@@ -6,11 +6,14 @@ import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class RegisterUserTopSection extends StatelessWidget {
const RegisterUserTopSection({super.key});
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -24,7 +27,7 @@ class RegisterUserTopSection extends StatelessWidget {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 75),
child: TextWidget().text14W500(
AppText.enterNameEmailUniquePassword,
localizations.translate(AppText.enterNameEmailUniquePassword),
clr: AppColor.smokeGrayColor,
),
),

View File

@@ -3,6 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../core/utils/secure/secure_storage_service.dart';
import '../../../../shared/components/appbar_widget.dart';
import '../bloc/pin_bloc.dart';
@@ -13,12 +14,13 @@ class ConfirmPinScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final secureStorageService = SecureStorageService();
return Scaffold(
backgroundColor: AppColor.plainWhite,
appBar: const AppBarWidget(
appBar: AppBarWidget(
height: 75,
titleTxt: AppText.createPinCode,
titleTxt: localizations.translate(AppText.createPinCode),
showLeading: true,
),
resizeToAvoidBottomInset: true,

View File

@@ -3,6 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import '../../../../core/styles/app_color.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../core/utils/secure/secure_storage_service.dart';
import '../../../../shared/components/appbar_widget.dart';
import '../../../../shared/components/exit_app_dialog.dart';
@@ -15,6 +16,7 @@ class PinScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final secureStorageService = SecureStorageService();
return WillPopScope(
onWillPop: () async {
@@ -31,8 +33,8 @@ class PinScreen extends StatelessWidget {
? AppBarWidget(
height: 75,
titleTxt: fromScreen == "reset-pin"
? AppText.changePinCode
: AppText.createPinCode,
? localizations.translate(AppText.changePinCode)
: localizations.translate(AppText.createPinCode),
showLeading: fromScreen == "reset-pin" ? true : false,
)
: null,

View File

@@ -6,12 +6,14 @@ import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/styles/app_images.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class ConfirmPinTopSection extends StatelessWidget {
const ConfirmPinTopSection({super.key});
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
children: [
const Gap(70),
@@ -22,7 +24,7 @@ class ConfirmPinTopSection extends StatelessWidget {
),
const Gap(40),
TextWidget().text14W500(
AppText.confirmPinCode,
localizations.translate(AppText.confirmPinCode),
clr: AppColor.textLabelColor,
)
],

View File

@@ -8,7 +8,10 @@ import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/button_widget.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
void forgotPinDialog(BuildContext context) {
var localizations = AppLocalizations.of(context);
showDialog(
context: context,
builder: (BuildContext context) {
@@ -26,7 +29,8 @@ void forgotPinDialog(BuildContext context) {
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
TextWidget().text17W700(AppText.notificationText,
TextWidget().text17W700(
localizations.translate(AppText.notificationText),
clr: AppColor.plainBlack),
const Gap(25),
Padding(
@@ -34,7 +38,8 @@ void forgotPinDialog(BuildContext context) {
horizontal: 25,
),
child: TextWidget().text15W500(
AppText.toRestorePinYouWillBeLoggedOut,
localizations
.translate(AppText.toRestorePinYouWillBeLoggedOut),
clr: AppColor.hintTextColor,
),
),
@@ -44,7 +49,7 @@ void forgotPinDialog(BuildContext context) {
height: 55.h,
child: ButtonWidget().elevatedBtn(
txtClr: AppColor.plainWhite,
text: AppText.allowText,
text: localizations.translate(AppText.allowText),
clr: AppColor.primaryColor2,
function: () {
goRouter.pushNamed(RouteName.loginScreen, pathParameters: {
@@ -57,7 +62,7 @@ void forgotPinDialog(BuildContext context) {
const Gap(10),
ButtonWidget().textBtn(
text: TextWidget().text14W700(
AppText.declineText,
localizations.translate(AppText.declineText),
textDecoration: TextDecoration.underline,
clr: AppColor.textLabelColor,
),

View File

@@ -11,6 +11,7 @@ import 'package:tanami_app/features/securePin/presentation/widgets/forgot_pin_di
import 'package:tanami_app/shared/components/text_widget.dart';
import 'package:tanami_app/shared/components/toast_message.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../bloc/pin_bloc.dart';
class PinKey extends StatelessWidget {
@@ -22,6 +23,7 @@ class PinKey extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
@@ -32,11 +34,13 @@ class PinKey extends StatelessWidget {
state.error.isEmpty &&
!state.verifiedOnce) {
if (fromScreen == "login" || fromScreen == "LoginedInUser") {
successToastMessage(context, AppText.pinVerifiedSucess);
successToastMessage(context,
localizations.translate(AppText.pinVerifiedSucess));
goRouter.pushNamed(RouteName.mainScreen);
} else if (fromScreen == "reset-pin") {
log("Running this");
successToastMessage(context, AppText.pinUpdatedSucess);
successToastMessage(
context, localizations.translate(AppText.pinUpdatedSucess));
goRouter.pop();
} else {
context.read<PinBloc>().add(SavePinPressed());
@@ -81,7 +85,7 @@ class PinKey extends StatelessWidget {
right: 50,
),
child: TextWidget().text15W500(
AppText.forgotPinCode,
localizations.translate(AppText.forgotPinCode),
clr: AppColor.hintTextColor,
textDecoration: TextDecoration.underline,
),

View File

@@ -6,6 +6,7 @@ import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../core/styles/app_images.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
class PinTopSection extends StatelessWidget {
final String fromScreen;
@@ -16,6 +17,7 @@ class PinTopSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
children: [
const Gap(70),
@@ -33,29 +35,31 @@ class PinTopSection extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
TextWidget().text14W500(AppText.welcomeBackText,
TextWidget().text14W500(
localizations.translate(AppText.welcomeBackText),
clr: AppColor.smokeGrayColor),
TextWidget()
.text14W700(", Jayesh", clr: AppColor.plainBlack),
],
),
TextWidget().text14W500(
AppText.userYourAppPinToLoginEnterTanami,
localizations
.translate(AppText.userYourAppPinToLoginEnterTanami),
clr: AppColor.smokeGrayColor),
const Gap(25),
TextWidget().text14W400(
AppText.pinCode,
localizations.translate(AppText.pinCode),
clr: AppColor.textLabelColor,
)
],
)
: fromScreen == "forgot-pin" || fromScreen == "reset-pin"
? TextWidget().text14W500(
AppText.changePinCode,
localizations.translate(AppText.changePinCode),
clr: AppColor.textLabelColor,
)
: TextWidget().text14W500(
AppText.createPinCode,
localizations.translate(AppText.createPinCode),
clr: AppColor.textLabelColor,
)
],

View File

@@ -2,15 +2,18 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/text_widget.dart';
import '../bloc/app_version/app_version_bloc.dart';
import '../bloc/app_version/app_version_state.dart';
import '../../../../shared/components/text_widget.dart';
class BottomVersionWidget extends StatelessWidget {
const BottomVersionWidget({super.key});
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
// A BlocBuilder widget that builds the UI based on the state of the AppVersionBloc
return BlocBuilder<AppVersionBloc, AppVersionState>(
builder: (context, state) {
@@ -30,8 +33,9 @@ class BottomVersionWidget extends StatelessWidget {
children: [
// Display the application version text
TextWidget().text12W400(
'${AppText.splashVersionText}${state.version}'),
TextWidget().text12W400(AppText.splashCopyrightText),
'${localizations.translate(AppText.splashVersionText)}${state.version}'),
TextWidget().text12W400(
localizations.translate(AppText.splashCopyrightText)),
],
));
// If the state is AppVersionError, display an error message

View File

@@ -2,10 +2,12 @@ import 'package:flutter/material.dart';
import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import 'build_onboarding_page_widget.dart';
Widget buildPage(
BuildContext context, int index, PageController pageController) {
var localizations = AppLocalizations.of(context);
switch (index) {
case 0:
return buildOnboardingPage(
@@ -13,8 +15,8 @@ Widget buildPage(
index: index,
context,
imageAsset: AppImages.firstWelcome,
title: AppText.welcomeTitle1Text,
description: AppText.welcomeDescription1Text,
title: localizations.translate(AppText.welcomeTitle1Text),
description: localizations.translate(AppText.welcomeDescription1Text),
);
case 1:
return buildOnboardingPage(
@@ -22,8 +24,8 @@ Widget buildPage(
index: index,
context,
imageAsset: AppImages.secondWelcome,
title: AppText.welcomeTitle2Text,
description: AppText.welcomeDescription2Text,
title: localizations.translate(AppText.welcomeTitle2Text),
description: localizations.translate(AppText.welcomeDescription2Text),
);
case 2:
return buildOnboardingPage(
@@ -31,8 +33,8 @@ Widget buildPage(
index: index,
context,
imageAsset: AppImages.thirdWelcome,
title: AppText.welcomeTitle3Text,
description: AppText.welcomeDescription3Text,
title: localizations.translate(AppText.welcomeTitle3Text),
description: localizations.translate(AppText.welcomeDescription3Text),
isLastPage: true,
);
default:

View File

@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/shared/components/button_widget.dart';
import '../../../../core/styles/app_text.dart';
import '../../../../core/utils/language/localizations_delegate.dart';
import '../../../../shared/components/text_widget.dart';
class LoginSignUpButton extends StatelessWidget {
@@ -14,6 +15,7 @@ class LoginSignUpButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Padding(
padding: const EdgeInsets.only(top: 20.0),
child: Column(
@@ -30,7 +32,7 @@ class LoginSignUpButton extends StatelessWidget {
"fromScreentype": "welcome",
});
},
text: AppText.signUpText,
text: localizations.translate(AppText.signUpText),
txtClr: AppColor.plainWhite,
clr: AppColor.primaryColor,
),
@@ -43,7 +45,7 @@ class LoginSignUpButton extends StatelessWidget {
});
},
text: TextWidget().text14W700(
AppText.loginText,
localizations.translate(AppText.loginText),
clr: AppColor.darkGreyColor,
textDecoration: TextDecoration.underline,
))

View File

@@ -8,6 +8,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:tanami_app/features/biometric/presentation/bloc/biometric_bloc.dart';
import '../../core/utils/language/localizations_delegate.dart';
import '../../features/biometric/presentation/bloc/biometric_event.dart';
import '../../features/biometric/presentation/bloc/biometric_state.dart';
import 'text_widget.dart';
@@ -15,6 +16,7 @@ import 'text_widget.dart';
deviceLockedDialog(
context,
) {
var localizations = AppLocalizations.of(context);
return showDialog(
barrierDismissible: false,
context: context,
@@ -60,7 +62,7 @@ deviceLockedDialog(
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 30),
child: TextWidget().text17W700(
AppText.tanamiAppIsLocked,
localizations.translate(AppText.tanamiAppIsLocked),
clr: AppColor.textLabelColor,
),
),
@@ -71,7 +73,7 @@ deviceLockedDialog(
child: Container(
// margin: const EdgeInsets.symmetric(horizontal: 30),
child: TextWidget().text14W400(
AppText.securityMssgText,
localizations.translate(AppText.securityMssgText),
clr: AppColor.textLabelColor,
),
),
@@ -96,7 +98,7 @@ deviceLockedDialog(
),
child: Center(
child: TextWidget().text18W700(
AppText.cancelText,
localizations.translate(AppText.cancelText),
clr: AppColor.primaryColor2,
),
),
@@ -118,7 +120,7 @@ deviceLockedDialog(
color: AppColor.primaryColor),
child: Center(
child: TextWidget().text18W700(
AppText.unlockText,
localizations.translate(AppText.unlockText),
clr: AppColor.plainWhite,
),
),

View File

@@ -8,11 +8,13 @@ import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import '../../core/utils/language/localizations_delegate.dart';
import 'text_widget.dart';
exitAppDialog(
context,
) {
var localizations = AppLocalizations.of(context);
return showDialog(
context: context,
builder: (context) => Column(
@@ -55,7 +57,8 @@ exitAppDialog(
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 30),
child: TextWidget().text17W700(
AppText.areYouSureYouWantToExitText,
localizations
.translate(AppText.areYouSureYouWantToExitText),
clr: AppColor.textLabelColor,
),
),
@@ -80,7 +83,7 @@ exitAppDialog(
),
child: Center(
child: TextWidget().text18W700(
AppText.cancelText,
localizations.translate(AppText.cancelText),
clr: AppColor.primaryColor2,
),
),
@@ -100,7 +103,7 @@ exitAppDialog(
color: AppColor.primaryColor),
child: Center(
child: TextWidget().text18W700(
AppText.exitText,
localizations.translate(AppText.exitText),
clr: AppColor.plainWhite,
),
),

View File

@@ -8,6 +8,7 @@ import 'package:tanami_app/shared/components/text_widget.dart';
import '../../core/routes/route_name.dart';
import '../../core/routes/routes.dart';
import '../../core/utils/language/localizations_delegate.dart';
import 'text_from_field_widget.dart';
class FormLabelTextField extends StatelessWidget {
@@ -29,6 +30,7 @@ class FormLabelTextField extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -48,17 +50,18 @@ class FormLabelTextField extends StatelessWidget {
validator: (value) {
if (type == "phone number") {
if (value != null && value.isEmpty) {
return AppText.enterPhoneNo;
return localizations.translate(AppText.enterPhoneNo);
}
return null;
} else if (type == "country selection") {
if (textEditingController.text.isEmpty) {
return AppText.chooseCountry;
return localizations.translate(AppText.chooseCountry);
}
return null;
} else if (type == "description") {
if (textEditingController.text.isEmpty) {
return AppText.pleaseEnteraDescription;
return localizations
.translate(AppText.pleaseEnteraDescription);
}
return null;
} else {

View File

@@ -7,12 +7,14 @@ import '../../core/routes/route_name.dart';
import '../../core/routes/routes.dart';
import '../../core/styles/app_color.dart';
import '../../core/styles/app_text.dart';
import '../../core/utils/language/localizations_delegate.dart';
import '../../core/utils/secure/secure_storage_service.dart';
import 'bloc/bottom_nav_bar/bottom_navigation_bloc.dart';
import 'bloc/bottom_nav_bar/bottom_navigation_event.dart';
import 'text_widget.dart';
buildprofilelogoutdialog(context) {
var localizations = AppLocalizations.of(context);
SecureStorageService secureStorageService = SecureStorageService();
return showDialog(
context: context,
@@ -52,7 +54,7 @@ buildprofilelogoutdialog(context) {
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 20),
child: TextWidget().text17W700(
AppText.areYouSureWantToLogoutText,
localizations.translate(AppText.areYouSureWantToLogoutText),
clr: AppColor.textLabelColor,
),
),
@@ -76,7 +78,7 @@ buildprofilelogoutdialog(context) {
color: AppColor.plainWhite),
child: Center(
child: TextWidget().text18W700(
AppText.noText,
localizations.translate(AppText.noText),
clr: AppColor.primaryColor2,
),
),
@@ -99,7 +101,7 @@ buildprofilelogoutdialog(context) {
color: AppColor.primaryColor),
child: Center(
child: TextWidget().text18W700(
AppText.yesText,
localizations.translate(AppText.yesText),
clr: AppColor.plainWhite,
),
),

View File

@@ -7,6 +7,7 @@ import 'package:tanami_app/core/styles/app_images.dart';
import '../../core/styles/app_color.dart';
import '../../core/styles/app_text.dart';
import '../../core/utils/language/localizations_delegate.dart';
import 'bloc/password_field/password_visibility_bloc.dart';
import 'bloc/password_field/password_visibility_event.dart';
import 'bloc/password_field/password_visibility_state.dart';
@@ -19,12 +20,13 @@ class PasswordField extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
return BlocBuilder<PasswordVisibilityBloc, PasswordVisibilityState>(
builder: (context, state) {
return TextFormField(
validator: (value) {
if (value != null && value.isEmpty) {
return AppText.enterPassword;
return localizations.translate(AppText.enterPassword);
}
return null;
},

View File

@@ -6,6 +6,7 @@ import 'package:tanami_app/core/styles/app_color.dart';
import '../../core/routes/route_name.dart';
import '../../core/routes/routes.dart';
import '../../core/styles/app_text.dart';
import '../../core/utils/language/localizations_delegate.dart';
import '../../core/utils/secure/secure_storage_service.dart';
import 'text_widget.dart';
import 'toast_message.dart';
@@ -13,6 +14,7 @@ import 'toast_message.dart';
permissionDialog(
context,
) {
var localizations = AppLocalizations.of(context);
final SecureStorageService secureStorageService = SecureStorageService();
return showDialog(
@@ -49,7 +51,7 @@ permissionDialog(
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 30),
child: TextWidget().text17W600(
AppText.biometricText,
localizations.translate(AppText.biometricText),
clr: AppColor.plainBlack,
),
),
@@ -60,7 +62,8 @@ permissionDialog(
child: Container(
// margin: const EdgeInsets.symmetric(horizontal: 30),
child: TextWidget().text13W400(
AppText.appAskPermissionText,
localizations
.translate(AppText.appAskPermissionText),
txtAlign: TextAlign.center,
clr: AppColor.plainBlack,
),
@@ -92,7 +95,7 @@ permissionDialog(
width: 140.w,
child: Center(
child: TextWidget().text17W600(
AppText.declineText,
localizations.translate(AppText.declineText),
clr: AppColor.permissionTextClr,
),
),
@@ -120,7 +123,7 @@ permissionDialog(
width: 140.w,
child: Center(
child: TextWidget().text17W600(
AppText.allowText,
localizations.translate(AppText.allowText),
clr: AppColor.permissionTextClr,
),
),