Merge pull request 'Localization' (#274) from dev_aamir into master

Reviewed-on: #274
master
khansultan1 1 day ago
commit e9f812eee7

@ -80,8 +80,8 @@
"changePayment": "تغيير طريقة الدفع", "changePayment": "تغيير طريقة الدفع",
"upcomingNoAction": "لا يتطلب أي إجراء", "upcomingNoAction": "لا يتطلب أي إجراء",
"upcomingConfirm": "يرجى تأكيد الموعد لتجنب الإلغاء", "upcomingConfirm": "يرجى تأكيد الموعد لتجنب الإلغاء",
"bookSuccessConfirmMore2412": "ستكون عملية الدفع عبر الإنترنت متاحة قبل 24 ساعة من الموعد.", "bookSuccessConfirmMore2412": "ستكون عملية الدفع متاحة قبل 24 ساعة من الموعد.",
"upcomingPaymentPending": "سيتم تفعيل الدفع عبر الإنترنت قبل 24 ساعة من وقت الموعد", "upcomingPaymentPending": "سيتم تفعيل الدفع قبل 24 ساعة من وقت الموعد",
"upcomingPaymentNow": "الدفع الإلكتروني لتجنب الانتظار", "upcomingPaymentNow": "الدفع الإلكتروني لتجنب الانتظار",
"timeUntilAppointment": "الوقت المتبقي حتى الموعد", "timeUntilAppointment": "الوقت المتبقي حتى الموعد",
"appointmentTimePassed": "انتهى وقت الموعد", "appointmentTimePassed": "انتهى وقت الموعد",
@ -178,7 +178,7 @@
"arrived": " تم الوصول", "arrived": " تم الوصول",
"payNowBookSuccess": "ادفع الآن عبر تطبيق الحبيب", "payNowBookSuccess": "ادفع الآن عبر تطبيق الحبيب",
"payNowBookSuccesstext1": "ادفع الآن باستخدام خدمة الدفع عبر الإنترنت من بوابات الدفع الآمنة", "payNowBookSuccesstext1": "ادفع الآن باستخدام خدمة الدفع عبر الإنترنت من بوابات الدفع الآمنة",
"payNowBookSuccesstext2": "يمكنك أيضًا الدفع لاحقًا عبر الدفع الإلكت§روني أو في المستشفى.", "payNowBookSuccesstext2": "يمكنك أيضًا الدفع لاحقًا عبر الدفع الإلكتروني أو في المستشفى.",
"payLater": "ادفع لاحقًا", "payLater": "ادفع لاحقًا",
"askDocNotAllowed": "هذه الخدمة ستكون متاحة فقط لزيارة الطبيب قبل 15 يومًا", "askDocNotAllowed": "هذه الخدمة ستكون متاحة فقط لزيارة الطبيب قبل 15 يومًا",
"moreVerify": "خيارات تحقق إضافية", "moreVerify": "خيارات تحقق إضافية",
@ -1406,16 +1406,16 @@
"weightSymptoms": "ما هو وزنك؟", "weightSymptoms": "ما هو وزنك؟",
"femaleGender": "أنثى", "femaleGender": "أنثى",
"previous": "سابق", "previous": "سابق",
"selectedOrgans": "الهيئات المختارة", "selectedOrgans": "موضع الالم",
"noOrgansSelected": "لم يتم تحديد أي أعضاء بعد", "noOrgansSelected": "لم يتم تحديد أي أعضاء بعد",
"organSelector": "حدد موقع الألم", "organSelector": "حدد موضع الألم",
"noPredictionsAvailable": "لا توجد تنبؤات متاحة", "noPredictionsAvailable": "لا توجد تنبؤات متاحة",
"areYouSureYouWantToRestartOrganSelection": "هل تريد الخروج؟", "areYouSureYouWantToRestartOrganSelection": "هل تريد الخروج؟",
"possibleConditions": "الحالات المحتملة", "possibleConditions": "الحالات المحتملة",
"pleaseSelectAtLeastOneRiskBeforeProceeding": "يرجى اختيار عامل خطر واحد على الأقل قبل المتابعة", "pleaseSelectAtLeastOneRiskBeforeProceeding": "يرجى اختيار عامل خطر واحد على الأقل قبل المتابعة",
"aboveYouSeeCommonRiskFactors": "أعلاه ترى عوامل الخطر الأكثر شيوعًا. على الرغم من أن /diagnosis قد تعيد أسئلة حول عوامل الخطر، ", "aboveYouSeeCommonRiskFactors": "في الأعلى تظهر أكثر العوامل شيوعًا، وقد يتضمن التقييم أسئلة عنها",
"readMore": "اقرأ المزيد", "readMore": "اقرأ المزيد",
"riskFactors": "عوامل الخطر", "riskFactors": "عوامل يجب الانتباه لها",
"noRiskFactorsFound": "لم يتم العثور على عوامل خطر", "noRiskFactorsFound": "لم يتم العثور على عوامل خطر",
"basedOnYourSelectedSymptomsNoRiskFactors": "بناءً على الأعراض المحددة، لم يتم تحديد عوامل خطر إضافية.", "basedOnYourSelectedSymptomsNoRiskFactors": "بناءً على الأعراض المحددة، لم يتم تحديد عوامل خطر إضافية.",
"messageNotification": "الرسالة", "messageNotification": "الرسالة",
@ -1442,7 +1442,7 @@
"emergencyEvidenceDetected": "تم اكتشاف دليل طوارئ. يرجى طلب العناية الطبية.", "emergencyEvidenceDetected": "تم اكتشاف دليل طوارئ. يرجى طلب العناية الطبية.",
"noQuestionItemsAvailable": "لا توجد عناصر أسئلة متاحة", "noQuestionItemsAvailable": "لا توجد عناصر أسئلة متاحة",
"pleaseAnswerAllQuestionsBeforeProceeding": "يرجى الإجابة على جميع الأسئلة قبل المتابعة", "pleaseAnswerAllQuestionsBeforeProceeding": "يرجى الإجابة على جميع الأسئلة قبل المتابعة",
"triage": "الفرز", "triage": "فرز الحالة",
"areYouSureYouWantToExitProgress": "هل تود الخروج؟ ستفقد تقدمك الحالي.", "areYouSureYouWantToExitProgress": "هل تود الخروج؟ ستفقد تقدمك الحالي.",
"noQuestionAvailable": "لا يوجد سؤال متاح", "noQuestionAvailable": "لا يوجد سؤال متاح",
"possibleSymptom": "تشخيص محتمل", "possibleSymptom": "تشخيص محتمل",
@ -1622,7 +1622,7 @@
"noFreeSlot": "لا توجد مواعيد متاحة في التاريخ المحدد. يرجى اختيار تاريخ آخر أو إعادة المحاولة لاحقاً.", "noFreeSlot": "لا توجد مواعيد متاحة في التاريخ المحدد. يرجى اختيار تاريخ آخر أو إعادة المحاولة لاحقاً.",
"noThanksIKnowTheClinic": "لا، شكراً", "noThanksIKnowTheClinic": "لا، شكراً",
"unableToSendOTP": "تعذر إرسال رمز التحقق لمرة واحدة", "unableToSendOTP": "تعذر إرسال رمز التحقق لمرة واحدة",
"loadingAIAnalysis": "جارٍ تحليل النتائج بواسطة الذكاء الاصطناعي، يرجى الانتظار...", "loadingAIAnalysis": "ٍتحليل النتائج بواسطة الذكاء الاصطناعي، يرجى الانتظار...",
"symptoms": "مدقق الاعراض", "symptoms": "مدقق الاعراض",
"insuranceInActive": "التأمين غير نشط", "insuranceInActive": "التأمين غير نشط",
"insuranceInActiveContactSupport": "لديك تأمين ساري المفعول، ولكنه غير مُفعّل حاليًا في مجموعة حبيب الطبية. يُرجى التواصل مع خدمة عملاء مجموعة حبيب الطبية.", "insuranceInActiveContactSupport": "لديك تأمين ساري المفعول، ولكنه غير مُفعّل حاليًا في مجموعة حبيب الطبية. يُرجى التواصل مع خدمة عملاء مجموعة حبيب الطبية.",
@ -1808,5 +1808,7 @@
"followUsOnX": "تابعنا على X", "followUsOnX": "تابعنا على X",
"likeUsOnFB": "سجل إعجابك بنا على فيسبوك", "likeUsOnFB": "سجل إعجابك بنا على فيسبوك",
"watchUsOnYoutube": "شاهدنا على إنستغرام", "watchUsOnYoutube": "شاهدنا على إنستغرام",
"connectOnLinkedin": "تواصل معنا على لينكد إن" "connectOnLinkedin": "تواصل معنا على لينكد إن",
"riskFactorPageTitle": "اعراض تشعر بها",
"symptomsCheckSuggestions": "الاحتمالات"
} }

@ -68,7 +68,7 @@
"appoActions": "Appointment Actions", "appoActions": "Appointment Actions",
"date": "Date", "date": "Date",
"time": "Time", "time": "Time",
"pendingPayment": "Pending for payment", "pendingPayment": "Payment",
"payNow": "Payment", "payNow": "Payment",
"viewQR": "View QR Code", "viewQR": "View QR Code",
"instruction": "Instructions", "instruction": "Instructions",
@ -1403,7 +1403,7 @@
"areYouSureYouWantToRestartOrganSelection": "Are you sure you want to restart the organ selection?", "areYouSureYouWantToRestartOrganSelection": "Are you sure you want to restart the organ selection?",
"possibleConditions": "Possible Conditions", "possibleConditions": "Possible Conditions",
"pleaseSelectAtLeastOneRiskBeforeProceeding": "Please select at least one risk before proceeding", "pleaseSelectAtLeastOneRiskBeforeProceeding": "Please select at least one risk before proceeding",
"aboveYouSeeCommonRiskFactors": "Above you see the most common risk factors. Although /diagnosis may return questions about risk factors, ", "aboveYouSeeCommonRiskFactors": "Above you see the most common risk factors. Although /diagnosis may return questions about risk factors",
"readMore": "Read more", "readMore": "Read more",
"riskFactors": "Risk Factors", "riskFactors": "Risk Factors",
"noRiskFactorsFound": "No risk factors found", "noRiskFactorsFound": "No risk factors found",
@ -1614,7 +1614,7 @@
"contextDependent": "Context Dependent", "contextDependent": "Context Dependent",
"calculatedValue": "Calculated Value", "calculatedValue": "Calculated Value",
"calculationFormula": "Calculation Formula", "calculationFormula": "Calculation Formula",
"loadingAIAnalysis": "Analysing your results, Please be patient and let the AI do the magic, This might take some time.", "loadingAIAnalysis": "Analysing your results, let the AI do the magic, This might take some time.",
"symptoms": "Symptoms", "symptoms": "Symptoms",
"insuranceInActive": "Insurance Inactive", "insuranceInActive": "Insurance Inactive",
"insuranceInActiveContactSupport": "You have a valid insurance but it is currently inactive in HMG. Please contact HMG customer support to activate it.", "insuranceInActiveContactSupport": "You have a valid insurance but it is currently inactive in HMG. Please contact HMG customer support to activate it.",
@ -1799,7 +1799,8 @@
"likeUsOnFB": "Like us on Facebook", "likeUsOnFB": "Like us on Facebook",
"watchUsOnYoutube": "Watch us on Instagram", "watchUsOnYoutube": "Watch us on Instagram",
"connectOnLinkedin": "Connect on LinkedIn", "connectOnLinkedin": "Connect on LinkedIn",
"riskFactorPageTitle": "What do you feel?",
"symptomsCheckSuggestions": "Suggestions"
} }

@ -362,4 +362,26 @@ class LocationUtils {
onFailure?.call(); onFailure?.call();
} }
} }
void onFailureDilouge(){
return showCommonBottomSheetWithoutHeight(
title: LocaleKeys.notice.tr(context: navigationService.navigatorKey.currentContext!),
navigationService.navigatorKey.currentContext!,
child: Utils.getWarningWidget(
loadingText: LocaleKeys.grantLocationPermission.tr(),
isShowActionButtons: true,
onCancelTap: () {
navigationService.pop();
},
onConfirmTap: () async {
navigationService.pop();
openAppSettings();
}),
callBackFunc: () {},
isFullScreen: false,
isCloseButtonVisible: true,
);
}
} }

@ -1801,5 +1801,7 @@ abstract class LocaleKeys {
static const likeUsOnFB = 'likeUsOnFB'; static const likeUsOnFB = 'likeUsOnFB';
static const watchUsOnYoutube = 'watchUsOnYoutube'; static const watchUsOnYoutube = 'watchUsOnYoutube';
static const connectOnLinkedin = 'connectOnLinkedin'; static const connectOnLinkedin = 'connectOnLinkedin';
static const riskFactorPageTitle = 'riskFactorPageTitle';
static const symptomsCheckSuggestions = 'symptomsCheckSuggestions';
} }

@ -1360,6 +1360,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
}, },
onFailure: () { onFailure: () {
regionVM.setSortByLocation(false); regionVM.setSortByLocation(false);
locationUtils.onFailureDilouge();
}, },
onLocationDeniedForever: () { onLocationDeniedForever: () {
regionVM.setSortByLocation(false); regionVM.setSortByLocation(false);

@ -263,7 +263,7 @@ class PossibleConditionsPage extends StatelessWidget {
} }
initiateBookAppointmentFlow(BuildContext context) { initiateBookAppointmentFlow(BuildContext context) {
bookAppointmentsViewModel.getLocation(); // bookAppointmentsViewModel.getLocation();
bookAppointmentsViewModel.setSelectedClinic(GetClinicsListResponseModel( bookAppointmentsViewModel.setSelectedClinic(GetClinicsListResponseModel(
clinicID: symptomsCheckerViewModel.clinicDetailsList.first.clinicID, clinicID: symptomsCheckerViewModel.clinicDetailsList.first.clinicID,
clinicDescription: symptomsCheckerViewModel.clinicDetailsList.first.category, clinicDescription: symptomsCheckerViewModel.clinicDetailsList.first.category,
@ -373,6 +373,7 @@ class PossibleConditionsPage extends StatelessWidget {
}, },
onFailure: () { onFailure: () {
regionVM.setSortByLocation(false); regionVM.setSortByLocation(false);
locationUtils.onFailureDilouge();
}, },
onLocationDeniedForever: () { onLocationDeniedForever: () {
regionVM.setSortByLocation(false); regionVM.setSortByLocation(false);
@ -395,6 +396,7 @@ class PossibleConditionsPage extends StatelessWidget {
} }
} }
} }
bookAppointmentsViewModel.addListener(listener); bookAppointmentsViewModel.addListener(listener);
bookAppointmentsViewModel.getRegionMappedProjectList(); bookAppointmentsViewModel.getRegionMappedProjectList();
} }

@ -131,19 +131,19 @@ class _RiskFactorsScreenState extends State<RiskFactorsScreen> {
TextSpan( TextSpan(
text: LocaleKeys.aboveYouSeeCommonRiskFactors.tr(context: context), text: LocaleKeys.aboveYouSeeCommonRiskFactors.tr(context: context),
), ),
TextSpan( // TextSpan(
text: LocaleKeys.readMore.tr(context: context), // text: LocaleKeys.readMore.tr(context: context),
style: TextStyle( // style: TextStyle(
color: AppColors.primaryRedColor, // color: AppColors.primaryRedColor,
fontWeight: FontWeight.w600, // fontWeight: FontWeight.w600,
), // ),
recognizer: TapGestureRecognizer() // recognizer: TapGestureRecognizer()
..onTap = () { // ..onTap = () {
// handle tap - navigate or show bottom sheet // // // handle tap - navigate or show bottom sheet
debugPrint('Read more tapped'); // // debugPrint('Read more tapped');
// Example: Navigator.push(context, MaterialPageRoute(builder: (_) => RiskFactorsDetailScreen())); // // Navigator.push(context, MaterialPageRoute(builder: (_) => RiskFactorsDetailScreen()));
}, // },
), // ),
], ],
), ),
), ),
@ -223,7 +223,7 @@ class _RiskFactorsScreenState extends State<RiskFactorsScreen> {
children: [ children: [
Expanded( Expanded(
child: CollapsingListView( child: CollapsingListView(
title: LocaleKeys.riskFactors.tr(context: context), title: LocaleKeys.riskFactorPageTitle.tr(context: context),
leadingCallback: () => context.pop(), leadingCallback: () => context.pop(),
child: viewModel.isRiskFactorsLoading child: viewModel.isRiskFactorsLoading
? _buildLoadingShimmer() ? _buildLoadingShimmer()

@ -199,7 +199,7 @@ class _SuggestionsScreenState extends State<SuggestionsScreen> {
children: [ children: [
Expanded( Expanded(
child: CollapsingListView( child: CollapsingListView(
title: LocaleKeys.suggestions.tr() , title: LocaleKeys.symptomsCheckSuggestions.tr() ,
leadingCallback: () => context.pop(), leadingCallback: () => context.pop(),
child: viewModel.isSuggestionsLoading child: viewModel.isSuggestionsLoading
? _buildLoadingShimmer() ? _buildLoadingShimmer()

@ -466,16 +466,20 @@ class _TriagePageState extends State<TriagePage> {
children: [ children: [
RichText( RichText(
text: TextSpan( text: TextSpan(
text: LocaleKeys.possibleSymptom.tr(context: context), text: "${LocaleKeys.possibleSymptom.tr(context: context)} ",
style: TextStyle( style: TextStyle(
color: AppColors.greyTextColor, fontWeight: FontWeight.w600, fontSize: 14.f, fontFamily: isArabic ? 'CairoArabic' : 'Poppins'), color: AppColors.greyTextColor, fontWeight: FontWeight.w600, fontSize: 14.f, fontFamily: isArabic ? 'CairoArabic' : 'Poppins'),
children: [ children: [
TextSpan( TextSpan(
text: suggestedCondition, text: suggestedCondition,
style: TextStyle( style: TextStyle(
color: AppColors.textColor, color: AppColors.textColor,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 14.f, fontFamily: isArabic ? 'CairoArabic' : 'Poppins'), fontSize: 14.f, fontFamily: isArabic ? 'CairoArabic' : 'Poppins'),
), ),
], ],
), ),

Loading…
Cancel
Save