import 'dart:async';

import 'package:diplomaticquarterapp/config/localized_values.dart';
import 'package:flutter/foundation.dart' show SynchronousFuture;
import 'package:flutter/material.dart';

class TranslationBase {
  TranslationBase(this.locale);

  final Locale locale;

  static TranslationBase of(BuildContext context) {
    return Localizations.of<TranslationBase>(context, TranslationBase);
  }

  String get dashboardScreenToolbarTitle =>
      localizedValues['dashboardScreenToolbarTitle'][locale.languageCode];

  String get settings => localizedValues['settings'][locale.languageCode];

  String get language => localizedValues['language'][locale.languageCode];

  String get lanEnglish => localizedValues['lanEnglish'][locale.languageCode];

  String get lanArabic => localizedValues['lanArabic'][locale.languageCode];

  String get cancel => localizedValues['cancel'][locale.languageCode];

  String get done => localizedValues['done'][locale.languageCode];

  String get home => localizedValues['home'][locale.languageCode];

  String get services => localizedValues['services'][locale.languageCode];

  String get mySchedule => localizedValues['mySchedule'][locale.languageCode];

  String get replay2 => localizedValues['replay2'][locale.languageCode];

  String get logout => localizedValues['logout'][locale.languageCode];

  String get bookAppo => localizedValues['bookAppo'][locale.languageCode];

  String get searchBy => localizedValues['searchBy'][locale.languageCode];

  String get clinic => localizedValues['clinic'][locale.languageCode];

  String get name => localizedValues['name'][locale.languageCode];

  String get doctor => localizedValues['doctor'][locale.languageCode];

  String get clinicName => localizedValues['clinicName'][locale.languageCode];

  String get doctorName => localizedValues['doctorName'][locale.languageCode];

  String get nearestAppo => localizedValues['nearestAppo'][locale.languageCode];

  String get searchByDocText =>
      localizedValues['searchByDocText'][locale.languageCode];

  String get enterDocName =>
      localizedValues['enterDocName'][locale.languageCode];

  String get search => localizedValues['search'][locale.languageCode];

  String get bookNow => localizedValues['bookNow'][locale.languageCode];

  String get docInfo => localizedValues['docInfo'][locale.languageCode];

  String get appoInfo => localizedValues['appoInfo'][locale.languageCode];

  String get availableAppo =>
      localizedValues['availableAppo'][locale.languageCode];

  String get gender => localizedValues['gender'][locale.languageCode];

  String get nationality => localizedValues['nationality'][locale.languageCode];

  String get docQualifications =>
      localizedValues['docQualifications'][locale.languageCode];

  String get confirmAppoHeading =>
      localizedValues['confirmAppoHeading'][locale.languageCode];

  String get patientInfo => localizedValues['patientInfo'][locale.languageCode];

  String get bookSuccess => localizedValues['bookSuccess'][locale.languageCode];

  String get patientShare =>
      localizedValues['patientShare'][locale.languageCode];

  String get patientShareWithTax =>
      localizedValues['patientShareWithTax'][locale.languageCode];

  String get confirmAppo => localizedValues['confirmAppo'][locale.languageCode];

  String get confirm => localizedValues['confirm'][locale.languageCode];

  String get confirmLater =>
      localizedValues['confirmLater'][locale.languageCode];

  String get todoList => localizedValues['todoList'][locale.languageCode];

  String get appoActions => localizedValues['appoActions'][locale.languageCode];

  String get appointment => localizedValues['appointment'][locale.languageCode];

  String get hospital => localizedValues['hospital'][locale.languageCode];

  String get date => localizedValues['date'][locale.languageCode];

  String get time => localizedValues['time'][locale.languageCode];


  String get login => localizedValues['login'][locale.languageCode];

  String get loginregister =>
      localizedValues['loginregister'][locale.languageCode];

  String get welcome => localizedValues['welcome'][locale.languageCode];

  String get welcomeText =>
      localizedValues['welcome_text'][locale.languageCode];

  String get welcomeText2 =>
      localizedValues['welcome_text2'][locale.languageCode];

  String get yes => localizedValues['yes'][locale.languageCode];

  String get no => localizedValues['no'][locale.languageCode];

  String get logintypeRadio =>
      localizedValues['logintyperadio'][locale.languageCode];

  String get registerNow => localizedValues['registernow'][locale.languageCode];

  String get nationalID => localizedValues['nationalID'][locale.languageCode];

  String get fileNo => localizedValues['fileNo'][locale.languageCode];

  String get forgotPassword =>
      localizedValues['forgotFileNo'][locale.languageCode];

  String get enterNationalId =>
      localizedValues['enter-national-id'][locale.languageCode];

  String get profileInfo =>
      localizedValues['profile-info'][locale.languageCode];

  String get submit => localizedValues['submit'][locale.languageCode];

  String get forgotDesc => localizedValues['forgot-desc'][locale.languageCode];

  String get dob => localizedValues['dob'][locale.languageCode];

  String get hijriDate => localizedValues['hijri-date'][locale.languageCode];

  String get gregorianDate =>
      localizedValues['gregorian-date'][locale.languageCode];

  String get verifyLoginWith =>
      localizedValues['verify-login-with'][locale.languageCode];

  String get register => localizedValues['register-user'][locale.languageCode];

  String get verifyFingerprint =>
      localizedValues['verify-with-fingerprint'][locale.languageCode];

  String get verifyFaceID =>
      localizedValues['verify-with-faceid'][locale.languageCode];

  String get verifySMS =>
      localizedValues['verify-with-sms'][locale.languageCode];

  String get verifyWhatsApp =>
      localizedValues['verify-with-whatsapp'][locale.languageCode];

  String get lastLoginAt => localizedValues['last-login'][locale.languageCode];

  String get lastLoginWith =>
      localizedValues['last-login-with'][locale.languageCode];

  String get verifyFingerprint2 =>
      localizedValues['verify-fingerprint'][locale.languageCode];

  String get searchMedicine =>
      localizedValues['searchMedicine'][locale.languageCode];

  String get searchMedicineHere =>
      localizedValues['searchMedicineHere'][locale.languageCode];

  String get pendingPayment =>
      localizedValues['pendingPayment'][locale.languageCode];

  String get payNow => localizedValues['payNow'][locale.languageCode];

  String get viewQR => localizedValues['viewQR'][locale.languageCode];

  String get instruction => localizedValues['instruction'][locale.languageCode];

  String get livecare => localizedValues['livecare'][locale.languageCode];

  String get upcomingNoAction =>
      localizedValues['upcoming-noAction'][locale.languageCode];

  String get upcomingConfirm =>
      localizedValues['upcoming-confirm'][locale.languageCode];

  String get upcomingPaymentPending =>
      localizedValues['upcoming-payment-pending'][locale.languageCode];

  String get upcomingPaymentNow =>
      localizedValues['upcoming-payment-now'][locale.languageCode];

  String get upcomingQR => localizedValues['upcoming-QR'][locale.languageCode];

  String get upcomingVirtual =>
      localizedValues['upcoming-virtual'][locale.languageCode];

  String get upcomingLivecare =>
      localizedValues['upcoming-livecare'][locale.languageCode];

  String get upcomingDetails =>
      localizedValues['upcoming-details'][locale.languageCode];

  String get reschedule =>
      localizedValues['reschedule'][locale.languageCode];

  String get raise =>
      localizedValues['raise'][locale.languageCode];

  String get complaint =>
      localizedValues['complaint'][locale.languageCode];

  String get add =>
      localizedValues['add'][locale.languageCode];

  String get reminder =>
      localizedValues['reminder'][locale.languageCode];

  String get location =>
      localizedValues['location'][locale.languageCode];

  String get online =>
      localizedValues['online'][locale.languageCode];

  String get payment =>
      localizedValues['payment'][locale.languageCode];

  String get cancel_nocaps =>
      localizedValues['cancel-nocaps'][locale.languageCode];

  String get cancelAppoMsg =>
      localizedValues['cancelAppoMsg'][locale.languageCode];

  String get pharmaciesList =>
      localizedValues['pharmaciesList'][locale.languageCode];

  String get description => localizedValues['description'][locale.languageCode];

  String get price => localizedValues['price'][locale.languageCode];

  String get youCanFindItIn =>
      localizedValues['youCanFindItIn'][locale.languageCode];

  String get pleaseEnterMedicineName =>
      localizedValues['pleaseEnterMedicineName'][locale.languageCode];

  String get verificationMessage =>
      localizedValues['verification_message'][locale.languageCode];

  String get validationMessage =>
      localizedValues['validation_message'][locale.languageCode];

  String get arabicChange =>
      localizedValues['arabic-change'][locale.languageCode];

  String get notification =>
      localizedValues['notification'][locale.languageCode];

  String get appsetting => localizedValues['app-settings'][locale.languageCode];

  String get rateApp => localizedValues['rate-app'][locale.languageCode];
  String get setReminder => localizedValues['set-reminder'][locale.languageCode];
  String get before => localizedValues['before'][locale.languageCode];
  String get minute => localizedValues['minute'][locale.languageCode];
  String get hour => localizedValues['hour'][locale.languageCode];
  String get reminderSuccess => localizedValues['reminderSuccess'][locale.languageCode];
  String get patientShareToDo => localizedValues['patientShareToDo'][locale.languageCode];
  String get patientTaxToDo => localizedValues['patientTaxToDo'][locale.languageCode];
  String get patientShareTotalToDo => localizedValues['patientShareTotalToDo'][locale.languageCode];
  String get paymentMethod => localizedValues['paymentMethod'][locale.languageCode];

  String get moreVerification =>
      localizedValues['more-verify'][locale.languageCode];

  String get welcomeBack =>
      localizedValues['welcome-back'][locale.languageCode];

  String get accountInfo =>
      localizedValues['account-info'][locale.languageCode];

  String get useAnotherAccount =>
      localizedValues['another-acc'][locale.languageCode];

  String get next => localizedValues['next'][locale.languageCode];

  String get noNeedToWaitInLine => localizedValues['noNeedToWaitInLine'][locale.languageCode];
  String get useQRAppoAttend => localizedValues['useQRAppoAttend'][locale.languageCode];
  String get passQRAppoAttend => localizedValues['passQRAppoAttend'][locale.languageCode];
  String get sitWaitingQR => localizedValues['sitWaitingQR'][locale.languageCode];
  String get attendRegisterCode => localizedValues['attendRegisterCode'][locale.languageCode];
  String get scanQRHospital => localizedValues['scanQRHospital'][locale.languageCode];
  String get sendEmail => localizedValues['sendEmail'][locale.languageCode];
  String get close => localizedValues['close'][locale.languageCode];
  String get booked => localizedValues['booked'][locale.languageCode];
  String get confirmed => localizedValues['confirmed'][locale.languageCode];
  String get arrived => localizedValues['arrived'][locale.languageCode];
  String get payNowBookSuccess => localizedValues['payNowBookSuccess'][locale.languageCode];
  String get payNowBookSuccesstext1 => localizedValues['payNowBookSuccesstext1'][locale.languageCode];
  String get payNowBookSuccesstext2 => localizedValues['payNowBookSuccesstext2'][locale.languageCode];
  String get payLater => localizedValues['payLater'][locale.languageCode];
  String get askDocNotAllowed => localizedValues['askDocNotAllowed'][locale.languageCode];
  String get firstName => localizedValues['first-name'][locale.languageCode];

  String get middleName => localizedValues['middle-name'][locale.languageCode];

  String get lastName => localizedValues['last-name'][locale.languageCode];

  String get male => localizedValues['male'][locale.languageCode];

  String get female => localizedValues['female'][locale.languageCode];

  String get prefferedLanguage =>
      localizedValues['preferred-language'][locale.languageCode];

  String get english => localizedValues['english'][locale.languageCode];

  String get arabic => localizedValues['arabic'][locale.languageCode];

  String get registrLocation =>
      localizedValues['locations-register'][locale.languageCode];

  String get ksa => localizedValues['ksa'][locale.languageCode];

  String get dubai => localizedValues['dubai'][locale.languageCode];

  String get enterEmail => localizedValues['enter-email'][locale.languageCode];

  String get family => localizedValues['family'][locale.languageCode];

  String get myFamilyFiles =>
      localizedValues['family-title'][locale.languageCode];

  String get oxygenation => localizedValues['oxygenation'][locale.languageCode];
  String get respirationRate => localizedValues['respirationRate'][locale.languageCode];

  String get bodyMeasurements =>
      localizedValues ['bodyMeasurements'][locale.languageCode];
  String get height =>
      localizedValues ['height'][locale.languageCode];

  String get temperature => localizedValues['temperature'][locale.languageCode];

  String get pulse => localizedValues['pulse'][locale.languageCode];

  String get respiration => localizedValues['respiration'][locale.languageCode];

  String get bloodPressure =>
      localizedValues['bloodPressure'][locale.languageCode];
  String get painScale => localizedValues['painScale'][locale.languageCode];
  String get heart => localizedValues['heart'][locale.languageCode];

  String get weight => localizedValues['weight'][locale.languageCode];

  String get request => localizedValues['request'][locale.languageCode];
  String get memberName => localizedValues['member-name'][locale.languageCode];
  String get switchUser => localizedValues['switch-login'][locale.languageCode];
  String get removeMember =>
      localizedValues['remove-membe'][locale.languageCode];
  String get allowView => localizedValues['allow-view'][locale.languageCode];
  String get rejectView => localizedValues['reject-view'][locale.languageCode];
  String get deleteView => localizedValues['delete-view'][locale.languageCode];
  String get approvals => localizedValues['approvals'][locale.languageCode];
  String get approvalNo => localizedValues['approvalNo'][locale.languageCode];
  String get companyName => localizedValues['companyName'][locale.languageCode];
  String get receiptOn => localizedValues['receiptOn'][locale.languageCode];
  String get expiryDate => localizedValues['expiryDate'][locale.languageCode];
  String get procedureName =>
      localizedValues['procedureName'][locale.languageCode];
  String get procedureStatus =>
      localizedValues['procedureStatus'][locale.languageCode];
  String get usageStatus => localizedValues['usageStatus'][locale.languageCode];
  String get unusedCount => localizedValues['unusedCount'][locale.languageCode];
  String get totalApproval =>
      localizedValues['totalApproval'][locale.languageCode];
  String get category => localizedValues['category'][locale.languageCode];
  String get expirationDate =>
      localizedValues['expirationDate'][locale.languageCode];
  String get patientCard => localizedValues['patientCard'][locale.languageCode];
  String get policyNumber =>
      localizedValues['policyNumber'][locale.languageCode];
  String get seeDetails => localizedValues['seeDetails'][locale.languageCode];
  String get insuranceCards =>
      localizedValues['insuranceCards'][locale.languageCode];
  String get requestType =>
      localizedValues['requestType'][locale.languageCode];

  String get consultation =>
      localizedValues['consultation'][locale.languageCode];
  String get logs =>
      localizedValues['logs'][locale.languageCode];
}

class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {
  const TranslationBaseDelegate();

  @override
  bool isSupported(Locale locale) => ['en', 'ar'].contains(locale.languageCode);

  @override
  Future<TranslationBase> load(Locale locale) {
    return SynchronousFuture<TranslationBase>(TranslationBase(locale));
  }

  @override
  bool shouldReload(TranslationBaseDelegate old) => false;
}
