Merge remote-tracking branch 'origin/localization_aamir' into faiz_development_common

localization_aamir
Faiz Hashmi 1 year ago
commit b1f8ffab53

@ -280,5 +280,76 @@
"pleaseSelectStartTime": "يرجى تحديد وقت بدء الوردية",
"pleaseSelectEndTime": "يرجى تحديد وقت انتهاء الوردية",
"pleaseSelectSlotTime": "يرجى تحديد وقت الفتحة",
"pleaseSelectAppointmentPerSlot": "يرجى تحديد موعد لكل فتحة"
"pleaseSelectAppointmentPerSlot": "يرجى تحديد موعد لكل فتحة",
"exploreAds": "استكشاف الإعلانات",
"myAds": "إعلاناتي",
"noAppointmentstoShow": "لا توجد مواعيد لعرضها",
"myRecommendedAds": "الإعلانات الموصى بها لي",
"model": "الموديل",
"chooseImageSource": "اختر مصدر الصورة",
"camera": "الكاميرا",
"gallery": "المعرض",
"imageIsDeleted": "تم حذف الصورة",
"myRequests": "طلباتي",
"branchDetail": "تفاصيل الفرع",
"time": "الوقت",
"openMapLocation": "فتح موقع الخريطة",
"providerProfile": "ملف المزود",
"servicesOffer": "الخدمات المقدمة",
"noServicesAvailable": "لا تتوفر خدمات",
"bookAppointment": "حجز موعد",
"allowingHomeService": "السماح بخدمة منزلية",
"homeServiceRange": "نطاق الخدمة المنزلية",
"chargesPerKM": "الرسوم لكل كيلومتر",
"providerDetails": "تفاصيل المزود",
"someDescriptionExperienceandtheirReputation": "بعض الوصف عن المزود وسنوات خبرتهم وسمعتهم",
"availableforAppointment": "متاح للموعد",
"allowingWorkshopService": "السماح بخدمة ورشة العمل",
"serviceAmount": "مبلغ الخدمة",
"youNeedStoragePermissionFiles": "تحتاج إلى منح إذن التخزين لاختيار الملفات.",
"settingDeniedPermanently": "تم رفض هذا الإذن بشكل دائم، يرجى الذهاب إلى الإعدادات والسماح.",
"openAppSetting": "افتح إعدادات التطبيق",
"adDuration": "مدة الإعلان",
"startDate": "تاريخ البدء",
"contactDetails": "تفاصيل الاتصال",
"showyournumbertoBuyers": "هل تريد إظهار رقمك للمشترين؟",
"isNumberRegisteredWhatsApp": "هل هذا الرقم مسجل على واتساب؟",
"selectSpecialServices": "اختر الخدمات الخاصة",
"vehicleDetails": "تفاصيل المركبة",
"vehicleModel": "طراز المركبة",
"vehicleColor": "لون المركبة",
"vehicleCategory": "فئة المركبة",
"vehicleTransmission": "نقل المركبة",
"vehicleCountry": "بلد المركبة",
"vehicleAmount": "مبلغ المركبة",
"vehicleTitle": "عنوان المركبة",
"financeAvailable": "التمويل متاح",
"vehiclePictures": "صور المركبة",
"vehiclePart": "جزء المركبة",
"damagePartPictures": "صور الأجزاء المتضررة",
"vehicleDamagePart": "جزء المركبة المتضرر",
"duration": "المدة",
"specialServices": "الخدمات الخاصة",
"specialService": "خدمة خاصة",
"adContactDetails": "تفاصيل الاتصال بالإعلان",
"onWhatsAp": "على واتساب",
"reserveAdPriceInfo": "معلومات سعر الإعلان المحجوز",
"addDamagePart": "إضافة جزء متضرر",
"vehicleType": "نوع المركبة",
"vehicleYear": "سنة المركبة",
"vehicleCondition": "حالة المركبة",
"vehicleMileage": "عدد الأميال للمركبة",
"sellerType": "نوع البائع",
"vehicleCity": "مدينة المركبة",
"vehicleVIN": "رقم تعريف المركبة (VIN)",
"warrantyAvailable": "الضمان متاح",
"years": "سنوات",
"vehicleDetail": "تفاصيل المركبة",
"vehicleBrand": "ماركة المركبة",
"vehicleModelYear": "سنة طراز المركبة",
"vehicleSellerType": "نوع بائع المركبة",
"demandAmount": "المبلغ المطلوب",
"warrantyAvailableYears": "الضمان متاح (عدد السنوات)",
"vehicleDescription": "وصف المركبة",
"attachImage": "إرفاق صورة"
}

@ -187,7 +187,7 @@
"updateBranch": "Update Branch",
"branches": "Branches",
"requests": "Requests",
"noBranchFound" : "No Branch Found",
"noBranchFound": "No Branch Found",
"pickAddress": "Pick Address",
"pickLocation": "Pick Location",
"chooseCity": "Select City",
@ -202,61 +202,61 @@
"completeProfile2": "Complete Profile 2/3",
"completeProfile3": "Complete Profile 3/3",
"provider": "Provider",
"noRequeststoShow" : "No Requests to Show",
"noRequeststoShow": "No Requests to Show",
"myBranches": "My Branches",
"mergeAppointments" : "Merge Appointments",
"addService" : "Add Service",
"selectServicestoAdd" : "Select services you want to add",
"mergeAppointments": "Merge Appointments",
"addService": "Add Service",
"selectServicestoAdd": "Select services you want to add",
"noServiceFound": "No Service Found",
"selectItems" : "Select Items",
"noItemSelectedYet" : "No Item Selected Yet",
"totalAdditionalAmount" : "Total Additional Amount",
"selectItems": "Select Items",
"noItemSelectedYet": "No Item Selected Yet",
"totalAdditionalAmount": "Total Additional Amount",
"sar": "SAR",
"cancel" : "Cancel",
"add" : "Add",
"itemsAddedSuccessfully" : "Items are added Successfully",
"pleaseSelectItems" : "Please select items",
"totalAmount" : "Total Amount",
"searchItems" : "Search Items",
"cancel": "Cancel",
"add": "Add",
"itemsAddedSuccessfully": "Items are added Successfully",
"pleaseSelectItems": "Please select items",
"totalAmount": "Total Amount",
"searchItems": "Search Items",
"addSelectedItems": "Add Selected Items",
"collectMoneyBefore": "Do you want to collect the money before providing services?",
"yes": "Yes",
"no" : "No",
"reason" : "Reason",
"no": "No",
"reason": "Reason",
"typeHere": "Type Here...",
"pleaseSelectReason" : "Please Select Reason",
"noAppointmentFound" : "No Appointment Found",
"slotsOverview" : "Slots Overview",
"empty" : "Empty",
"occupied" : "Occupied",
"totalSlots" : "Total Slots",
"selectAppointments" : "Select Appointments",
"appointmentMergeSuccessfully" : "Appointment Merge is Successfully done",
"updateAppointment" : "Update Appointment",
"addNewService" : "Add New Service",
"waitingPaymentfromtheCustomer" : "Waiting for the payment from the customer",
"appointmentisCompleted" : "Appointment is completed",
"pleaseSelectReason": "Please Select Reason",
"noAppointmentFound": "No Appointment Found",
"slotsOverview": "Slots Overview",
"empty": "Empty",
"occupied": "Occupied",
"totalSlots": "Total Slots",
"selectAppointments": "Select Appointments",
"appointmentMergeSuccessfully": "Appointment Merge is Successfully done",
"updateAppointment": "Update Appointment",
"addNewService": "Add New Service",
"waitingPaymentfromtheCustomer": "Waiting for the payment from the customer",
"appointmentisCompleted": "Appointment is completed",
"workStart": "Work Start",
"payNow": "Pay Now",
"arrived" : "Arrived",
"arrived": "Arrived",
"payLater": "Pay Later",
"complete" : "Complete",
"makeAnOffer" : "Make an offer",
"complete": "Complete",
"makeAnOffer": "Make an offer",
"enterAmount": "Enter amount",
"submit": "Submit",
"viewChat": "View Chat",
"requestDetail" : "Request Detail",
"requestDetail": "Request Detail",
"sendOffer": "Send Offer",
"offer": "Offer",
"sendPriceOffer": "Send Price Offer",
"comment" : "Comment",
"comment": "Comment",
"sendOTP": "Send OTP",
"noUserAddedYet": "No User Added Yet",
"assignDealerUser" : "Assign Dealer User",
"assignDealerUser": "Assign Dealer User",
"createNewUser": "Create New User",
"dealerUser": "Dealer User",
"setorEditBranchSchedule": "Set or Edit Branch Schedule",
"addServices" : "Add Services",
"addServices": "Add Services",
"noServiceAddedYet": "No Service Added Yet",
"selectDays": "Select Days",
"addSelectedDays": "Add Selected Days",
@ -274,11 +274,83 @@
"create": "Create",
"pleaseEnterValidScheduleName": "Please enter valid schedule Name",
"pleaseSelectServices": "Please select Services",
"pleaseSelectStartDate" : "Please select start date",
"pleaseSelectStartDate": "Please select start date",
"pleaseSelectEndDate": "Please select end date",
"pleaseSelectOffDays": "Please Select off Days",
"pleaseSelectStartTime" : "Please select start time",
"pleaseSelectStartTime": "Please select start time",
"pleaseSelectEndTime": "Please select end time",
"pleaseSelectSlotTime": "Please select slot time",
"pleaseSelectAppointmentPerSlot": "Please select appointment per slot"
"pleaseSelectAppointmentPerSlot": "Please select appointment per slot",
"exploreAds": "Explore Ads",
"myAds": "My Ads",
"noAppointmentstoShow": "No Appointments to show",
"myRecommendedAds": "My Recommended Ads",
"model": "Model",
"chooseImageSource": "Choose image source",
"camera": "Camera",
"gallery": "Gallery",
"imageIsDeleted": "Image is Deleted",
"myRequests": "My Requests",
"branchDetail": "Branch Detail",
"time": "Time",
"openMapLocation": "Open Map Location",
"providerProfile": "Provider Profile",
"servicesOffer": "Services Offer",
"noServicesAvailable": "No Services Available",
"bookAppointment": "Book Appointment",
"allowingHomeService": "Allowing home service",
"homeServiceRange": "Home service range",
"chargesPerKM": "Charges per KM",
"providerDetails": "Provider Details",
"someDescriptionExperienceandtheirReputation": "Some description about the provider and their years of experience and their reputation",
"availableforAppointment": "Available for appointment",
"allowingWorkshopService": "Allowing Workshop service",
"serviceAmount": "Service Amount",
"youNeedStoragePermissionFiles.": "You need to give storage permission to select files.",
"settingDeniedPermanently": "This permission was denied permanently, Please go to settings and allow. ",
"openAppSetting": "Open App Setting",
"adDuration": "Ad Duration",
"startDate": "Start Date",
"contactDetails": "Contact Details",
"showyournumbertoBuyers": "Do you want to show your number to the buyers?",
"isNumberRegisteredWhatsApp": "Is this number registered on WhatsApp?",
"selectSpecialServices": "Select Special Services",
"vehicleDetails": "Vehicle Details",
"vehicleModel": "Vehicle Model",
"vehicleColor": "Vehicle Color",
"vehicleCategory": "Vehicle Category",
"vehicleTransmission": "Vehicle Transmission",
"vehicleCountry": "Vehicle Country",
"vehicleAmount": "Vehicle Amount",
"vehicleTitle": "Vehicle Title",
"financeAvailable": "Finance Available",
"vehiclePictures": "Vehicle Pictures",
"vehiclePart": "Vehicle Part",
"damagePartPictures": "Damage Part Pictures",
"vehicleDamagePart": "Vehicle Damage Part",
"duration": "Duration",
"specialServices": "Special Services",
"specialService": "Special Service",
"adContactDetails": "Ad Contact Details",
"onWhatsAp": "On WhatsAp",
"reserveAdPriceInfo": "Reserve Ad Price Info",
"addDamagePart": "Add Damage Part",
"vehicleType": "Vehicle Type",
"vehicleYear": "Vehicle Year",
"vehicleCondition": "Vehicle Condition",
"vehicleMileage": "Vehicle Mileage",
"sellerType": "Seller Type",
"vehicleCity": "Vehicle City",
"vehicleVIN": "Vehicle VIN",
"warrantyAvailable": "Warranty Available",
"years": "Years",
"vehicleDetail": "Vehicle Detail",
"vehicleBrand": "Vehicle Brand",
"vehicleModelYear": "Vehicle Model Year",
"vehicleSellerType": "Vehicle Seller Type",
"demandAmount": "Demand Amount",
"warrantyAvailableYears": "Warranty Available (No. of Years)",
"vehicleDescription": "Vehicle Description",
"attachImage": "Attach Image"
}

@ -296,7 +296,78 @@ class CodegenLoader extends AssetLoader{
"pleaseSelectStartTime": "يرجى تحديد وقت بدء الوردية",
"pleaseSelectEndTime": "يرجى تحديد وقت انتهاء الوردية",
"pleaseSelectSlotTime": "يرجى تحديد وقت الفتحة",
"pleaseSelectAppointmentPerSlot": "يرجى تحديد موعد لكل فتحة"
"pleaseSelectAppointmentPerSlot": "يرجى تحديد موعد لكل فتحة",
"exploreAds": "استكشاف الإعلانات",
"myAds": "إعلاناتي",
"noAppointmentstoShow": "لا توجد مواعيد لعرضها",
"myRecommendedAds": "الإعلانات الموصى بها لي",
"model": "الموديل",
"chooseImageSource": "اختر مصدر الصورة",
"camera": "الكاميرا",
"gallery": "المعرض",
"imageIsDeleted": "تم حذف الصورة",
"myRequests": "طلباتي",
"branchDetail": "تفاصيل الفرع",
"time": "الوقت",
"openMapLocation": "فتح موقع الخريطة",
"providerProfile": "ملف المزود",
"servicesOffer": "الخدمات المقدمة",
"noServicesAvailable": "لا تتوفر خدمات",
"bookAppointment": "حجز موعد",
"allowingHomeService": "السماح بخدمة منزلية",
"homeServiceRange": "نطاق الخدمة المنزلية",
"chargesPerKM": "الرسوم لكل كيلومتر",
"providerDetails": "تفاصيل المزود",
"someDescriptionExperienceandtheirReputation": "بعض الوصف عن المزود وسنوات خبرتهم وسمعتهم",
"availableforAppointment": "متاح للموعد",
"allowingWorkshopService": "السماح بخدمة ورشة العمل",
"serviceAmount": "مبلغ الخدمة",
"youNeedStoragePermissionFiles": "تحتاج إلى منح إذن التخزين لاختيار الملفات.",
"settingDeniedPermanently": "تم رفض هذا الإذن بشكل دائم، يرجى الذهاب إلى الإعدادات والسماح.",
"openAppSetting": "افتح إعدادات التطبيق",
"adDuration": "مدة الإعلان",
"startDate": "تاريخ البدء",
"contactDetails": "تفاصيل الاتصال",
"showyournumbertoBuyers": "هل تريد إظهار رقمك للمشترين؟",
"isNumberRegisteredWhatsApp": "هل هذا الرقم مسجل على واتساب؟",
"selectSpecialServices": "اختر الخدمات الخاصة",
"vehicleDetails": "تفاصيل المركبة",
"vehicleModel": "طراز المركبة",
"vehicleColor": "لون المركبة",
"vehicleCategory": "فئة المركبة",
"vehicleTransmission": "نقل المركبة",
"vehicleCountry": "بلد المركبة",
"vehicleAmount": "مبلغ المركبة",
"vehicleTitle": "عنوان المركبة",
"financeAvailable": "التمويل متاح",
"vehiclePictures": "صور المركبة",
"vehiclePart": "جزء المركبة",
"damagePartPictures": "صور الأجزاء المتضررة",
"vehicleDamagePart": "جزء المركبة المتضرر",
"duration": "المدة",
"specialServices": "الخدمات الخاصة",
"specialService": "خدمة خاصة",
"adContactDetails": "تفاصيل الاتصال بالإعلان",
"onWhatsAp": "على واتساب",
"reserveAdPriceInfo": "معلومات سعر الإعلان المحجوز",
"addDamagePart": "إضافة جزء متضرر",
"vehicleType": "نوع المركبة",
"vehicleYear": "سنة المركبة",
"vehicleCondition": "حالة المركبة",
"vehicleMileage": "عدد الأميال للمركبة",
"sellerType": "نوع البائع",
"vehicleCity": "مدينة المركبة",
"vehicleVIN": "رقم تعريف المركبة (VIN)",
"warrantyAvailable": "الضمان متاح",
"years": "سنوات",
"vehicleDetail": "تفاصيل المركبة",
"vehicleBrand": "ماركة المركبة",
"vehicleModelYear": "سنة طراز المركبة",
"vehicleSellerType": "نوع بائع المركبة",
"demandAmount": "المبلغ المطلوب",
"warrantyAvailableYears": "الضمان متاح (عدد السنوات)",
"vehicleDescription": "وصف المركبة",
"attachImage": "إرفاق صورة"
};
static const Map<String,dynamic> en_US = {
"firstTimeLogIn": "First Time Log In",
@ -580,7 +651,78 @@ static const Map<String,dynamic> en_US = {
"pleaseSelectStartTime": "Please select start time",
"pleaseSelectEndTime": "Please select end time",
"pleaseSelectSlotTime": "Please select slot time",
"pleaseSelectAppointmentPerSlot": "Please select appointment per slot"
"pleaseSelectAppointmentPerSlot": "Please select appointment per slot",
"exploreAds": "Explore Ads",
"myAds": "My Ads",
"noAppointmentstoShow": "No Appointments to show",
"myRecommendedAds": "My Recommended Ads",
"model": "Model",
"chooseImageSource": "Choose image source",
"camera": "Camera",
"gallery": "Gallery",
"imageIsDeleted": "Image is Deleted",
"myRequests": "My Requests",
"branchDetail": "Branch Detail",
"time": "Time",
"openMapLocation": "Open Map Location",
"providerProfile": "Provider Profile",
"servicesOffer": "Services Offer",
"noServicesAvailable": "No Services Available",
"bookAppointment": "Book Appointment",
"allowingHomeService": "Allowing home service",
"homeServiceRange": "Home service range",
"chargesPerKM": "Charges per KM",
"providerDetails": "Provider Details",
"someDescriptionExperienceandtheirReputation": "Some description about the provider and their years of experience and their reputation",
"availableforAppointment": "Available for appointment",
"allowingWorkshopService": "Allowing Workshop service",
"serviceAmount": "Service Amount",
"youNeedStoragePermissionFiles.": "You need to give storage permission to select files.",
"settingDeniedPermanently": "This permission was denied permanently, Please go to settings and allow. ",
"openAppSetting": "Open App Setting",
"adDuration": "Ad Duration",
"startDate": "Start Date",
"contactDetails": "Contact Details",
"showyournumbertoBuyers": "Do you want to show your number to the buyers?",
"isNumberRegisteredWhatsApp": "Is this number registered on WhatsApp?",
"selectSpecialServices": "Select Special Services",
"vehicleDetails": "Vehicle Details",
"vehicleModel": "Vehicle Model",
"vehicleColor": "Vehicle Color",
"vehicleCategory": "Vehicle Category",
"vehicleTransmission": "Vehicle Transmission",
"vehicleCountry": "Vehicle Country",
"vehicleAmount": "Vehicle Amount",
"vehicleTitle": "Vehicle Title",
"financeAvailable": "Finance Available",
"vehiclePictures": "Vehicle Pictures",
"vehiclePart": "Vehicle Part",
"damagePartPictures": "Damage Part Pictures",
"vehicleDamagePart": "Vehicle Damage Part",
"duration": "Duration",
"specialServices": "Special Services",
"specialService": "Special Service",
"adContactDetails": "Ad Contact Details",
"onWhatsAp": "On WhatsAp",
"reserveAdPriceInfo": "Reserve Ad Price Info",
"addDamagePart": "Add Damage Part",
"vehicleType": "Vehicle Type",
"vehicleYear": "Vehicle Year",
"vehicleCondition": "Vehicle Condition",
"vehicleMileage": "Vehicle Mileage",
"sellerType": "Seller Type",
"vehicleCity": "Vehicle City",
"vehicleVIN": "Vehicle VIN",
"warrantyAvailable": "Warranty Available",
"years": "Years",
"vehicleDetail": "Vehicle Detail",
"vehicleBrand": "Vehicle Brand",
"vehicleModelYear": "Vehicle Model Year",
"vehicleSellerType": "Vehicle Seller Type",
"demandAmount": "Demand Amount",
"warrantyAvailableYears": "Warranty Available (No. of Years)",
"vehicleDescription": "Vehicle Description",
"attachImage": "Attach Image"
};
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
}

@ -261,5 +261,76 @@ abstract class LocaleKeys {
static const pleaseSelectEndTime = 'pleaseSelectEndTime';
static const pleaseSelectSlotTime = 'pleaseSelectSlotTime';
static const pleaseSelectAppointmentPerSlot = 'pleaseSelectAppointmentPerSlot';
static const exploreAds = 'exploreAds';
static const myAds = 'myAds';
static const noAppointmentstoShow = 'noAppointmentstoShow';
static const myRecommendedAds = 'myRecommendedAds';
static const model = 'model';
static const chooseImageSource = 'chooseImageSource';
static const camera = 'camera';
static const gallery = 'gallery';
static const imageIsDeleted = 'imageIsDeleted';
static const myRequests = 'myRequests';
static const branchDetail = 'branchDetail';
static const time = 'time';
static const openMapLocation = 'openMapLocation';
static const providerProfile = 'providerProfile';
static const servicesOffer = 'servicesOffer';
static const noServicesAvailable = 'noServicesAvailable';
static const bookAppointment = 'bookAppointment';
static const allowingHomeService = 'allowingHomeService';
static const homeServiceRange = 'homeServiceRange';
static const chargesPerKM = 'chargesPerKM';
static const providerDetails = 'providerDetails';
static const someDescriptionExperienceandtheirReputation = 'someDescriptionExperienceandtheirReputation';
static const availableforAppointment = 'availableforAppointment';
static const allowingWorkshopService = 'allowingWorkshopService';
static const serviceAmount = 'serviceAmount';
static const youNeedStoragePermissionFiles = 'youNeedStoragePermissionFiles';
static const settingDeniedPermanently = 'settingDeniedPermanently';
static const openAppSetting = 'openAppSetting';
static const adDuration = 'adDuration';
static const startDate = 'startDate';
static const contactDetails = 'contactDetails';
static const showyournumbertoBuyers = 'showyournumbertoBuyers';
static const isNumberRegisteredWhatsApp = 'isNumberRegisteredWhatsApp';
static const selectSpecialServices = 'selectSpecialServices';
static const vehicleDetails = 'vehicleDetails';
static const vehicleModel = 'vehicleModel';
static const vehicleColor = 'vehicleColor';
static const vehicleCategory = 'vehicleCategory';
static const vehicleTransmission = 'vehicleTransmission';
static const vehicleCountry = 'vehicleCountry';
static const vehicleAmount = 'vehicleAmount';
static const vehicleTitle = 'vehicleTitle';
static const financeAvailable = 'financeAvailable';
static const vehiclePictures = 'vehiclePictures';
static const vehiclePart = 'vehiclePart';
static const damagePartPictures = 'damagePartPictures';
static const vehicleDamagePart = 'vehicleDamagePart';
static const duration = 'duration';
static const specialServices = 'specialServices';
static const specialService = 'specialService';
static const adContactDetails = 'adContactDetails';
static const onWhatsAp = 'onWhatsAp';
static const reserveAdPriceInfo = 'reserveAdPriceInfo';
static const addDamagePart = 'addDamagePart';
static const vehicleType = 'vehicleType';
static const vehicleYear = 'vehicleYear';
static const vehicleCondition = 'vehicleCondition';
static const vehicleMileage = 'vehicleMileage';
static const sellerType = 'sellerType';
static const vehicleCity = 'vehicleCity';
static const vehicleVIN = 'vehicleVIN';
static const warrantyAvailable = 'warrantyAvailable';
static const years = 'years';
static const vehicleDetail = 'vehicleDetail';
static const vehicleBrand = 'vehicleBrand';
static const vehicleModelYear = 'vehicleModelYear';
static const vehicleSellerType = 'vehicleSellerType';
static const demandAmount = 'demandAmount';
static const warrantyAvailableYears = 'warrantyAvailableYears';
static const vehicleDescription = 'vehicleDescription';
static const attachImage = 'attachImage';
}

@ -52,7 +52,10 @@ Future<void> main() async {
}
// todo terminal command to genertate translation files
// flutter pub run easy_localization:generate -S resources -f keys -O lib/generated -o locale_keys.g.dart
// flutter pub run easy_localization:generate --source-dir ./assets/langs
// todo terminal command to genertate translation keys
// flutter pub run easy_localization:generate --source-dir ./assets/langs -f keys -o locale_keys.g.dart
// command to generate languages data from json
class MyApp extends StatelessWidget {
const MyApp({super.key});

@ -1,8 +1,9 @@
import 'dart:developer';
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/widgets/common_widgets/confirm_dialog.dart';
import 'package:permission_handler/permission_handler.dart';
@ -22,7 +23,7 @@ Future<bool> requestPermissionGranted(context, Permission requestPermissions) as
// Application has been denied permission to use the feature.
return false;
case PermissionStatus.permanentlyDenied:
ConfirmAction? res = await showConfirmDialogs(context, 'This permission was denied permanently, Please go to settings and allow. ', 'Open App Setting', 'Cancel');
ConfirmAction? res = await showConfirmDialogs(context, LocaleKeys.settingDeniedPermanently.tr(), LocaleKeys.openAppSetting.tr(), LocaleKeys.cancel.tr());
if (res == ConfirmAction.ACCEPT) {
return false;
} else if (res == ConfirmAction.CANCEL) {
@ -64,7 +65,7 @@ class AppPermissions {
return showDialog(
context: context,
builder: (BuildContext cxt) => ConfirmDialog(
message: "You need to give storage permission to select files.",
message: LocaleKeys.youNeedStoragePermissionFiles.tr(),
onTap: () {
Navigator.pop(context);
openAppSettings();

@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/general_models/widgets_models.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/utils.dart';
@ -11,10 +12,10 @@ import 'package:mc_common_app/view_models/ad_view_model.dart';
import 'package:mc_common_app/views/advertisement/bottom_sheet_content.dart';
import 'package:mc_common_app/views/advertisement/custom_add_button.dart';
import 'package:mc_common_app/widgets/common_widgets/info_bottom_sheet.dart';
import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class AdDuration extends StatelessWidget {
const AdDuration({Key? key}) : super(key: key);
@ -36,7 +37,7 @@ class AdDuration extends StatelessWidget {
enableDrag: true,
builder: (BuildContext context) {
return InfoBottomSheet(
title: "Reserve Ad Price Info".toText(fontSize: 24, isBold: true),
title: LocaleKeys.reserveAdPriceInfo.tr().toText(fontSize: 24, isBold: true),
description: Flexible(
child: GlobalConsts.reserveAdPriceInfo.toText(
textAlign: TextAlign.justify,
@ -58,13 +59,13 @@ class AdDuration extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Ad Duration".toText(fontSize: 18, isBold: true),
LocaleKeys.adDuration.tr().toText(fontSize: 18, isBold: true),
8.height,
TxtField(
isBackgroundEnabled: true,
isButtonEnable: false,
isNeedBorder: false,
hint: 'Ad Duration',
hint: LocaleKeys.adDuration.tr(),
value: adVM.vehicleAdDurationId.selectedOption,
isNeedClickAll: true,
postFixDataColor: MyColors.darkTextColor,
@ -90,7 +91,7 @@ class AdDuration extends StatelessWidget {
TxtField(
errorValue: adVM.adStartDateError,
hint: 'Start Date',
hint: LocaleKeys.startDate.tr(),
value: adVM.selectionDurationStartDate,
isNeedClickAll: true,
postfixData: Icons.calendar_month_rounded,
@ -137,9 +138,9 @@ class AdDuration extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Contact Details".toText(fontSize: 18, isBold: true),
LocaleKeys.contactDetails.tr().toText(fontSize: 18, isBold: true),
8.height,
"Do you want to show your number to the buyers?".toText(fontSize: 14),
LocaleKeys.showyournumbertoBuyers.tr().toText(fontSize: 14),
6.height,
Container(
width: 38,
@ -212,7 +213,7 @@ class AdDuration extends StatelessWidget {
),
),
const SizedBox(width: 10),
"Is this number registered on WhatsApp?".toString().toText()
LocaleKeys.isNumberRegisteredWhatsApp.tr().toString().toText()
],
),
],
@ -221,7 +222,7 @@ class AdDuration extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Select Special Services".toText(fontSize: 18, isBold: true),
LocaleKeys.selectSpecialServices.tr().toText(fontSize: 18, isBold: true),
8.height,
CustomAddButton(
needsBorder: true,
@ -229,7 +230,7 @@ class AdDuration extends StatelessWidget {
onTap: () {
onAddServiceButtonTapped(context, adVM);
},
text: "Add Service",
text: LocaleKeys.addService.tr(),
icon: Container(
height: 24,
width: 24,
@ -282,7 +283,7 @@ class AdDuration extends StatelessWidget {
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Description: ".toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true),
(LocaleKeys.description.tr() + ": ").toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true),
(specialServicesCard.description ?? "").toText(fontSize: 12, isBold: true).expand(),
],
),
@ -323,7 +324,7 @@ class AdDuration extends StatelessWidget {
children: [
(specialServicesCard.serviceSelectedId!.itemPrice).toText(fontSize: 20, isBold: true),
2.width,
"SAR".toText(color: MyColors.lightTextColor, fontSize: 14),
LocaleKeys.sar.tr().toText(color: MyColors.lightTextColor, fontSize: 14),
],
),
],

@ -1,11 +1,13 @@
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/view_models/ad_view_model.dart';
import 'package:mc_common_app/views/advertisement/picked_images_container.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class ReviewAd extends StatelessWidget {
const ReviewAd({Key? key}) : super(key: key);
@ -52,7 +54,7 @@ class VehicleDetailsReview extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Vehicle Details".toText(fontSize: 18, isBold: true),
LocaleKeys.vehicleDetails.tr().toText(fontSize: 18, isBold: true),
8.height,
Row(
mainAxisAlignment: MainAxisAlignment.start,
@ -62,21 +64,21 @@ class VehicleDetailsReview extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SingleDetailWidget(text: adVM.vehicleTypeId.selectedOption, type: "Vehicle Type"),
SingleDetailWidget(text: adVM.vehicleTypeId.selectedOption, type: LocaleKeys.vehicleType.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleModelYearId.selectedOption, type: "Vehicle Year"),
SingleDetailWidget(text: adVM.vehicleModelYearId.selectedOption, type: LocaleKeys.vehicleYear.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleConditionId.selectedOption, type: "Vehicle Condition"),
SingleDetailWidget(text: adVM.vehicleConditionId.selectedOption, type: LocaleKeys.vehicleCondition.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleMileageId.selectedOption, type: "Vehicle Mileage"),
SingleDetailWidget(text: adVM.vehicleMileageId.selectedOption, type: LocaleKeys.vehicleMileage.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleSellerTypeId.selectedOption, type: "Seller Type"),
SingleDetailWidget(text: adVM.vehicleSellerTypeId.selectedOption, type: LocaleKeys.sellerType.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleCityId.selectedOption, type: "Vehicle City"),
SingleDetailWidget(text: adVM.vehicleCityId.selectedOption, type: LocaleKeys.vehicleCity.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleVin, type: "Vehicle VIN"),
SingleDetailWidget(text: adVM.vehicleVin, type: LocaleKeys.vehicleVIN.tr()),
16.height,
SingleDetailWidget(text: "${adVM.warrantyDuration} Years", type: "Warranty Available"),
SingleDetailWidget(text: ("${adVM.warrantyDuration} "+ LocaleKeys.years.tr()), type: LocaleKeys.warrantyAvailable.tr()),
16.height,
],
),
@ -86,30 +88,30 @@ class VehicleDetailsReview extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SingleDetailWidget(text: adVM.vehicleModelId.selectedOption, type: "Vehicle Model"),
SingleDetailWidget(text: adVM.vehicleModelId.selectedOption, type: LocaleKeys.vehicleModel.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleColorId.selectedOption, type: "Vehicle Color"),
SingleDetailWidget(text: adVM.vehicleColorId.selectedOption, type: LocaleKeys.vehicleColor.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleCategoryId.selectedOption, type: "Vehicle Category"),
SingleDetailWidget(text: adVM.vehicleCategoryId.selectedOption, type: LocaleKeys.vehicleCategory.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleTransmissionId.selectedOption, type: "Vehicle Transmission"),
SingleDetailWidget(text: adVM.vehicleTransmissionId.selectedOption, type: LocaleKeys.vehicleTransmission.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleCountryId.selectedOption, type: "Vehicle Country"),
SingleDetailWidget(text: adVM.vehicleCountryId.selectedOption, type: LocaleKeys.vehicleCountry.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleDemandAmount, type: "Vehicle Amount"),
SingleDetailWidget(text: adVM.vehicleDemandAmount, type: LocaleKeys.vehicleAmount.tr()),
16.height,
SingleDetailWidget(text: adVM.vehicleTitle, type: "Vehicle Title"),
SingleDetailWidget(text: adVM.vehicleTitle, type: LocaleKeys.vehicleTitle.tr()),
16.height,
SingleDetailWidget(text: adVM.financeAvailableStatus ? "Yes" : "No", type: "Finance Available"),
SingleDetailWidget(text: adVM.financeAvailableStatus ? "Yes" : "No", type: LocaleKeys.financeAvailable.tr()),
16.height,
],
),
),
],
),
SingleDetailWidget(text: adVM.vehicleDescription, type: "Description"),
SingleDetailWidget(text: adVM.vehicleDescription, type: LocaleKeys.description.tr()),
8.height,
"Vehicle Pictures:".toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true),
(LocaleKeys.vehiclePictures.tr() + ":").toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true),
if (adVM.pickedPostingImages.isNotEmpty) ...[
// 10.height,
PickedFilesContainer(
@ -136,11 +138,11 @@ class DamagePartsReview extends StatelessWidget {
8.height,
Row(
children: [
SingleDetailWidget(type: "Vehicle Part", text: adVM.vehicleDamageCards[index].partSelectedId!.selectedOption),
SingleDetailWidget(type: LocaleKeys.vehiclePart.tr(), text: adVM.vehicleDamageCards[index].partSelectedId!.selectedOption),
],
),
if (adVM.vehicleDamageCards[index].partImages != null && adVM.vehicleDamageCards[index].partImages!.isNotEmpty) ...[
"Damage Part Pictures:".toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true),
(LocaleKeys.damagePartPictures.tr() + ":").toText(fontSize: 12, color: MyColors.lightTextColor, isBold: true),
PickedFilesContainer(
pickedFiles: adVM.vehicleDamageCards[index].partImages!,
onCrossPressedPrimary: adVM.removeImageFromList,
@ -166,7 +168,7 @@ class DamagePartsReview extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Vehicle Damage Part".toText(fontSize: 18, isBold: true),
LocaleKeys.vehicleDamagePart.tr().toText(fontSize: 18, isBold: true),
buildDamagePartList(adVM),
],
).toWhiteContainer(width: double.infinity, allPading: 12, margin: const EdgeInsets.symmetric(horizontal: 21, vertical: 4));
@ -183,17 +185,17 @@ class AdDurationReview extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Ad Duration".toText(fontSize: 18, isBold: true),
LocaleKeys.adDuration.tr().toText(fontSize: 18, isBold: true),
8.height,
Row(
children: [
Expanded(
flex: 7,
child: SingleDetailWidget(type: "Duration", text: adVM.vehicleAdDurationId.selectedOption),
child: SingleDetailWidget(type: LocaleKeys.duration.tr(), text: adVM.vehicleAdDurationId.selectedOption),
),
Expanded(
flex: 5,
child: SingleDetailWidget(type: "Start Date", text: adVM.selectionDurationStartDate),
child: SingleDetailWidget(type: LocaleKeys.startDate.tr(), text: adVM.selectionDurationStartDate),
),
],
),
@ -216,7 +218,7 @@ class AdDurationReview extends StatelessWidget {
// ),
if (adVM.specialServiceCards.isNotEmpty) ...[
15.height,
"Special Services".toText(fontSize: 18, isBold: true),
LocaleKeys.specialServices.tr().toText(fontSize: 18, isBold: true),
ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
@ -234,7 +236,7 @@ class AdDurationReview extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SingleDetailWidget(type: "Special Service", text: adVM.specialServiceCards[index].serviceSelectedId!.selectedOption),
SingleDetailWidget(type: LocaleKeys.specialService.tr(), text: adVM.specialServiceCards[index].serviceSelectedId!.selectedOption),
],
),
),
@ -243,7 +245,7 @@ class AdDurationReview extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SingleDetailWidget(type: "Amount", text: adVM.specialServiceCards[index].serviceSelectedId!.itemPrice),
SingleDetailWidget(type: LocaleKeys.amount.tr(), text: adVM.specialServiceCards[index].serviceSelectedId!.itemPrice),
],
),
),
@ -296,17 +298,17 @@ class AdContactDetailsReview extends StatelessWidget {
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Ad Contact Details".toText(fontSize: 18, isBold: true),
LocaleKeys.adContactDetails.tr().toText(fontSize: 18, isBold: true),
8.height,
Row(
children: [
Expanded(
flex: 7,
child: SingleDetailWidget(type: "Phone Number", text: "${adVM.adPhoneNumberDialCode}${adVM.adPhoneNumber}"),
child: SingleDetailWidget(type: LocaleKeys.phoneNumber.tr(), text: "${adVM.adPhoneNumberDialCode}${adVM.adPhoneNumber}"),
),
Expanded(
flex: 5,
child: SingleDetailWidget(type: "On WhatsApp", text: adVM.isNumberOnWhatsApp ? "Yes" : "No"),
child: SingleDetailWidget(type: LocaleKeys.onWhatsAp.tr(), text: adVM.isNumberOnWhatsApp ? "Yes" : "No"),
),
],
),

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/view_models/ad_view_model.dart';
import 'package:mc_common_app/views/advertisement/bottom_sheet_content.dart';
@ -10,6 +11,7 @@ import 'package:mc_common_app/views/advertisement/network_images_container.dart'
import 'package:mc_common_app/views/advertisement/picked_images_container.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class DamageParts extends StatelessWidget {
const DamageParts({Key? key}) : super(key: key);
@ -47,7 +49,7 @@ class DamageParts extends StatelessWidget {
onTap: () {
onAddButtonTapped(context, adVM);
},
text: "Add Damage Part",
text: LocaleKeys.addDamagePart.tr(),
icon: Container(
height: 24,
width: 24,

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/general_models/widgets_models.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/view_models/ad_view_model.dart';
@ -13,6 +14,7 @@ import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class VehicleDetails extends StatelessWidget {
const VehicleDetails({Key? key}) : super(key: key);
@ -23,7 +25,7 @@ class VehicleDetails extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Vehicle Detail".toText(fontSize: 18, isBold: true),
LocaleKeys.vehicleDetail.tr().toText(fontSize: 18, isBold: true),
8.height,
Builder(builder: (context) {
List<DropValue> vehicleBrandsDrop = [];
@ -34,7 +36,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleBrandId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleBrandsDrop,
dropdownValue: adVM.vehicleBrandId.selectedId != -1 ? DropValue(adVM.vehicleBrandId.selectedId, adVM.vehicleBrandId.selectedOption, "") : null,
hint: "Vehicle Brand",
hint: LocaleKeys.vehicleBrand.tr(),
errorValue: adVM.vehicleBrandId.errorValue,
);
}),
@ -57,7 +59,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleModelId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleModelsDrop,
dropdownValue: adVM.vehicleModelId.selectedId != -1 ? DropValue(adVM.vehicleModelId.selectedId, adVM.vehicleModelId.selectedOption, "") : null,
hint: "Vehicle Model",
hint: LocaleKeys.vehicleModel.tr(),
errorValue: adVM.vehicleModelId.errorValue,
);
}),
@ -72,7 +74,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleModelYearId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleYearModelsDrop,
dropdownValue: adVM.vehicleModelYearId.selectedId != -1 ? DropValue(adVM.vehicleModelYearId.selectedId, adVM.vehicleModelYearId.selectedOption, "") : null,
hint: "Vehicle Model Year",
hint: LocaleKeys.vehicleModelYear.tr(),
errorValue: adVM.vehicleModelYearId.errorValue,
);
}),
@ -85,7 +87,7 @@ class VehicleDetails extends StatelessWidget {
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleColorId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleColorsDrop,
hint: "Vehicle Color",
hint: LocaleKeys.vehicleColor.tr(),
dropdownValue: adVM.vehicleColorId.selectedId != -1 ? DropValue(adVM.vehicleColorId.selectedId, adVM.vehicleColorId.selectedOption, "") : null,
errorValue: adVM.vehicleColorId.errorValue,
);
@ -100,7 +102,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleConditionId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleConditionsDrop,
dropdownValue: adVM.vehicleConditionId.selectedId != -1 ? DropValue(adVM.vehicleConditionId.selectedId, adVM.vehicleConditionId.selectedOption, "") : null,
hint: "Vehicle Condition",
hint: LocaleKeys.vehicleCondition.tr(),
errorValue: adVM.vehicleConditionId.errorValue,
);
}),
@ -113,7 +115,7 @@ class VehicleDetails extends StatelessWidget {
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleCategoryId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleCategoriesDrop,
hint: "Vehicle Category",
hint: LocaleKeys.vehicleCategory.tr(),
dropdownValue: adVM.vehicleCategoryId.selectedId != -1 ? DropValue(adVM.vehicleCategoryId.selectedId, adVM.vehicleCategoryId.selectedOption, "") : null,
errorValue: adVM.vehicleCategoryId.errorValue,
);
@ -128,7 +130,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleMileageId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleMileageDrop,
dropdownValue: adVM.vehicleMileageId.selectedId != -1 ? DropValue(adVM.vehicleMileageId.selectedId, adVM.vehicleMileageId.selectedOption, "") : null,
hint: "Vehicle Mileage",
hint: LocaleKeys.vehicleMileage.tr(),
errorValue: adVM.vehicleMileageId.errorValue,
);
}),
@ -141,7 +143,7 @@ class VehicleDetails extends StatelessWidget {
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleTransmissionId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleTransmissionsDrop,
hint: "Vehicle Transmission",
hint: LocaleKeys.vehicleTransmission.tr(),
dropdownValue: adVM.vehicleTransmissionId.selectedId != -1 ? DropValue(adVM.vehicleTransmissionId.selectedId, adVM.vehicleTransmissionId.selectedOption, "") : null,
errorValue: adVM.vehicleTransmissionId.errorValue,
);
@ -156,7 +158,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleSellerTypeId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleSellerTypesDrop,
dropdownValue: adVM.vehicleSellerTypeId.selectedId != -1 ? DropValue(adVM.vehicleSellerTypeId.selectedId, adVM.vehicleSellerTypeId.selectedOption, "") : null,
hint: "Vehicle Seller Type",
hint: LocaleKeys.vehicleSellerType.tr(),
errorValue: adVM.vehicleSellerTypeId.errorValue,
);
}),
@ -170,7 +172,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleCountryId(SelectionModel(selectedOption: value.value, selectedId: value.id)),
list: vehicleCountriesDrop,
dropdownValue: adVM.vehicleCountryId.selectedId != -1 ? DropValue(adVM.vehicleCountryId.selectedId, adVM.vehicleCountryId.selectedOption, "") : null,
hint: "Vehicle Country",
hint: LocaleKeys.vehicleCountry.tr(),
errorValue: adVM.vehicleCountryId.errorValue,
);
}),
@ -191,7 +193,7 @@ class VehicleDetails extends StatelessWidget {
(DropValue value) => adVM.updateSelectionVehicleCityId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleCitiesDrop,
dropdownValue: adVM.vehicleCityId.selectedId != -1 ? DropValue(adVM.vehicleCityId.selectedId, adVM.vehicleCityId.selectedOption, "") : null,
hint: "Vehicle City",
hint: LocaleKeys.vehicleCity.tr(),
errorValue: adVM.vehicleCityId.errorValue,
);
}),
@ -202,7 +204,7 @@ class VehicleDetails extends StatelessWidget {
value: adVM.vehicleDemandAmount,
errorValue: adVM.demandAmountError,
keyboardType: TextInputType.number,
hint: "Demand Amount",
hint: LocaleKeys.demandAmount.tr(),
onChanged: (v) => adVM.updateVehicleDemandAmount(v),
),
8.height,
@ -210,14 +212,14 @@ class VehicleDetails extends StatelessWidget {
value: adVM.vehicleVin,
errorValue: adVM.vehicleVinError,
keyboardType: TextInputType.number,
hint: "Vehicle VIN",
hint: LocaleKeys.vehicleVIN.tr(),
onChanged: (v) => adVM.updateVehicleVin(v),
),
8.height,
TxtField(
value: adVM.vehicleTitle,
errorValue: adVM.vehicleTitleError,
hint: "Vehicle Title",
hint: LocaleKeys.vehicleTitle.tr(),
onChanged: (v) => adVM.updateVehicleTitle(v),
),
8.height,
@ -225,19 +227,19 @@ class VehicleDetails extends StatelessWidget {
value: adVM.warrantyDuration,
errorValue: adVM.warrantyError,
keyboardType: TextInputType.number,
hint: "Warranty Available (No. of Years)",
hint: LocaleKeys.warrantyAvailableYears.tr(),
onChanged: (v) => adVM.updateVehicleWarrantyDuration(v),
),
8.height,
TxtField(
value: adVM.vehicleDescription,
hint: "Vehicle Description",
hint: LocaleKeys.vehicleDescription.tr(),
maxLines: 5,
errorValue: adVM.vehicleDescError,
onChanged: (v) => adVM.updateVehicleDescription(v),
),
22.height,
"Finance Available".toText(fontSize: 16),
LocaleKeys.financeAvailable.tr().toText(fontSize: 16),
8.height,
Container(
width: 50,
@ -261,11 +263,11 @@ class VehicleDetails extends StatelessWidget {
),
),
28.height,
"Vehicle Pictures".toText(fontSize: 18, isBold: true),
LocaleKeys.vehiclePictures.tr().toText(fontSize: 18, isBold: true),
8.height,
DottedRectContainer(
onTap: () => context.read<AdVM>().pickMultipleImages(),
text: "Attach Image",
text: LocaleKeys.attachImage.tr(),
icon: MyAssets.attachmentIcon.buildSvg(),
),
if (adVM.vehicleImageError != "") ...[

Loading…
Cancel
Save