From 770d28033d7a8f702c0694b9eee1dc2b9d67df64 Mon Sep 17 00:00:00 2001 From: Mohammad Aljmma Date: Tue, 17 Nov 2020 13:53:28 +0200 Subject: [PATCH] fix issues#26 & 27 & 28 --- lib/config/localized_values.dart | 108 ++++++++++++++++++ .../feedback/feedback_view_model.dart | 33 +++++- lib/pages/feedback/feedback_home_page.dart | 7 +- lib/pages/feedback/send_feedback_page.dart | 43 +++---- lib/pages/feedback/status_feedback_page.dart | 3 +- .../vital_sign/vital_sign_details_screen.dart | 16 +-- lib/uitl/translations_delegate_base.dart | 27 +++++ 7 files changed, 198 insertions(+), 39 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 3976a47b..0ce568ba 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -840,4 +840,112 @@ const Map localizedValues = { "Average": {"en": "Average", "ar": "المعدل"}, "DailyDoses": {"en": "Daily Doses", "ar": "جرعات يومية"}, "Period": {"en": "Period", "ar": "الفترة"}, + "cm": { + "en": "CM", + "ar": "سم" + }, + "kg": { + "en": "kg", + "ar": "كجم" + }, + "mass": { + "en": "Mass", + "ar": "كتلة" + }, + "temp-c": { + "en": "°C", + "ar": "°س" + }, + "bpm": { + "en": "bpm", + "ar": "نبضة" + }, + "respiration-signs": { + "en": "Respiration", + "ar": "تنفس" + }, + "sys-dias": { + "en": "SBP/DBP", + "ar": "إنقباض/إنبساط" + }, + "body": { + "en": "Body \n Mass", + "ar": "كتلة\nالجسم" + }, + "feedback": { + "en": "Feedback", + "ar": "رأيك يهمنا" + }, + "send": { + "en": "Send", + "ar": "أرسل" + }, + "status": { + "en": "Status", + "ar": "الحالة" + }, + "like-to-hear": { + "en": "We would love to hear the feedback, concerns on healthcare services and eServices experience. Please use the below form", + "ar": "يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة" + }, + "subject": { + "en": "Subject", + "ar": "الموضوع" + }, + "message": { + "en": "Message", + "ar": "رسالة" + }, + "empty-subject": { + "en": "Please enter the subject", + "ar": "يرجى ادخال الموضوع" + }, + "empty-message": { + "en": "Please enter message", + "ar": "يرجى ادخال الموضوع" + }, + "select-attachment": { + "en": "Select Attachment", + "ar": "إختر المرفق" + }, + "complain-appo": { + "en": "Complaint for appointment", + "ar": "شكوى على موعد" + }, + "complain-without-appo": { + "en": "Complaint without appointment", + "ar": "شكوى بدون موعد" + }, + "question": { + "en": "Question", + "ar": "سؤال" + }, + "message-type": { + "en": "Message Type", + "ar": "نوع الرسالة" + }, + "compliment": { + "en": "compliment", + "ar": "ثناء" + }, + "suggestion": { + "en": "Suggestion", + "ar": "إقتراح" + }, + "your-feedback": { + "en": "Your feedback was sent", + "ar": "إقتراح" + }, + "select-part": { + "en": "Please select the part that complain about", + "ar": "يرجى تحديد الجزء الذي تشكو منه" + }, + "number": { + "en": "Number", + "ar": "الرقم" + }, + "not-classified": { + "en": "Not classified", + "ar": "غير محدد" + }, }; diff --git a/lib/core/viewModels/feedback/feedback_view_model.dart b/lib/core/viewModels/feedback/feedback_view_model.dart index d5f14e2d..4956024d 100644 --- a/lib/core/viewModels/feedback/feedback_view_model.dart +++ b/lib/core/viewModels/feedback/feedback_view_model.dart @@ -3,6 +3,8 @@ import 'package:diplomaticquarterapp/core/model/feedback/COC_items.dart'; import 'package:diplomaticquarterapp/core/service/feedback/feedback_service.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/pages/feedback/appointment_history.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:flutter/cupertino.dart'; import '../../../locator.dart'; @@ -22,7 +24,31 @@ class FeedbackViewModel extends BaseViewModel { MessageType messageType = MessageType.NON; MessageType messageTypeDialog = MessageType.NON; - String selected = "not selected"; + + + String getSelected(BuildContext context) { + switch (messageType) { + case MessageType.ComplaintOnAnAppointment: + return TranslationBase.of(context).complainAppo; + break; + case MessageType.ComplaintWithoutAppointment: + return TranslationBase.of(context).complainWithoutAppo; + break; + case MessageType.Question: + return TranslationBase.of(context).question; + break; + case MessageType.Compliment: + return TranslationBase.of(context).compliment; + break; + case MessageType.Suggestion: + return TranslationBase.of(context).suggestion; + break; + case MessageType.NON: + return TranslationBase.of(context).notClassified; + break; + } + return TranslationBase.of(context).notClassified; + } setMessageDialogType(MessageType messageType) { messageTypeDialog = messageType; @@ -33,19 +59,14 @@ class FeedbackViewModel extends BaseViewModel { this.messageType = messageType; switch (messageType) { case MessageType.ComplaintOnAnAppointment: - selected = "Complaint on an appointment"; break; case MessageType.ComplaintWithoutAppointment: - selected = "Complaint without appointment"; break; case MessageType.Question: - selected = "Question"; break; case MessageType.Compliment: - selected = "Compliment"; break; case MessageType.Suggestion: - selected = "Suggestion"; break; case MessageType.NON: break; diff --git a/lib/pages/feedback/feedback_home_page.dart b/lib/pages/feedback/feedback_home_page.dart index 5c7ba86d..309b5713 100644 --- a/lib/pages/feedback/feedback_home_page.dart +++ b/lib/pages/feedback/feedback_home_page.dart @@ -1,6 +1,7 @@ import 'dart:ui'; import 'package:diplomaticquarterapp/pages/feedback/send_feedback_page.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -35,7 +36,7 @@ class _FeedbackHomePageState extends State isShowAppBar: true, isBottomBar: false, isShowDecPage: false, - appBarTitle: 'Feedback', + appBarTitle: TranslationBase.of(context).feedbackTitle, body: Scaffold( extendBodyBehindAppBar: true, appBar: PreferredSize( @@ -82,13 +83,13 @@ class _FeedbackHomePageState extends State Container( width: MediaQuery.of(context).size.width * 0.30, child: Center( - child: Texts('Send'), + child: Texts(TranslationBase.of(context).send), ), ), Container( width: MediaQuery.of(context).size.width * 0.30, child: Center( - child: Texts('Status'), + child: Texts(TranslationBase.of(context).status), ), ), ], diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index 756a421b..27d2f353 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_mode import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/widgets/bottom_options/BottomSheet.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; @@ -52,8 +53,7 @@ class _SendFeedbackPageState extends State { Container( margin: EdgeInsets.only(left: 20, right: 20, top: 8), child: Texts( - 'We\'d love to hear your feedback about the health care services and online services. Please fill in the required fields', - //يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة + TranslationBase.of(context).likeToHear, textAlign: TextAlign.center, variant: 'body2Link', ), @@ -75,11 +75,12 @@ class _SendFeedbackPageState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( + child: Texts( - model.selected, + model.getSelected(context), variant: 'bodyText', ), - margin: EdgeInsets.only(left: 10), + margin: EdgeInsets.only(left: 10,right: 10), ), Icon( Icons.arrow_drop_down, @@ -278,14 +279,14 @@ class _SendFeedbackPageState extends State { Container( margin: EdgeInsets.only(left: 10, right: 10, top: 15), child: TextFields( - hintText: 'Title', + hintText: TranslationBase.of(context).subject, controller: titleController, fontSize: 13.5, hintColor: Colors.black, fontWeight: FontWeight.w600, validator: (value) { if (value == null) - return "please Enter title"; + return TranslationBase.of(context).emptySubject; else return null; }, @@ -294,7 +295,7 @@ class _SendFeedbackPageState extends State { Container( margin: EdgeInsets.only(left: 10, right: 10, top: 15), child: TextFields( - hintText: 'message', + hintText: TranslationBase.of(context).message, fontSize: 13.5, hintColor: Colors.black, fontWeight: FontWeight.w600, @@ -303,7 +304,7 @@ class _SendFeedbackPageState extends State { controller: messageController, validator: (value) { if (value == null) - return "please Enter message"; + return TranslationBase.of(context).emptyMessage; else return null; }), @@ -332,7 +333,7 @@ class _SendFeedbackPageState extends State { children: [ Icon(Icons.attach_file), Texts( - 'selected attachment', + TranslationBase.of(context).selectAttachment, variant: 'bodyText', textAlign: TextAlign.center, ), @@ -391,7 +392,7 @@ class _SendFeedbackPageState extends State { height: MediaQuery.of(context).size.height * 0.1, width: MediaQuery.of(context).size.width * 0.8, child: Button( - label: 'Send', + label: TranslationBase.of(context).send, loading: model.state == ViewState.BusyLocal, onTap: () { final form = formKey.currentState; @@ -415,13 +416,13 @@ class _SendFeedbackPageState extends State { }); model.setMessageType(MessageType.NON); AppToast.showSuccessToast( - message: "Your feedback was send"); + message: TranslationBase.of(context).yourFeedback); } else { AppToast.showErrorToast(message: model.error); } }); else { - AppToast.showErrorToast(message: "Please select COC"); + AppToast.showErrorToast(message: TranslationBase.of(context).selectPart); } }, ), @@ -489,7 +490,7 @@ class FeedbackTypeDialogState extends State { return BaseView( builder: (_, model, widge) => SimpleDialog( title: Text( - "Message Type", + TranslationBase.of(context).messageType, textAlign: TextAlign.center, ), children: [ @@ -509,7 +510,7 @@ class FeedbackTypeDialogState extends State { onTap: () => model.setMessageDialogType( MessageType.ComplaintOnAnAppointment), child: ListTile( - title: const Text('Complaint on an appointment'), + title: Texts(TranslationBase.of(context).complainAppo), leading: Radio( value: MessageType.ComplaintOnAnAppointment, groupValue: model.messageTypeDialog, @@ -533,7 +534,7 @@ class FeedbackTypeDialogState extends State { onTap: () => model.setMessageDialogType( MessageType.ComplaintWithoutAppointment), child: ListTile( - title: const Text('Complaint without appointment'), + title: Texts(TranslationBase.of(context).complainWithoutAppo), leading: Radio( value: MessageType.ComplaintWithoutAppointment, groupValue: model.messageTypeDialog, @@ -557,7 +558,7 @@ class FeedbackTypeDialogState extends State { onTap: () => model.setMessageDialogType(MessageType.Question), child: ListTile( - title: const Text('Question'), + title: Texts(TranslationBase.of(context).question), leading: Radio( value: MessageType.Question, groupValue: model.messageTypeDialog, @@ -581,7 +582,7 @@ class FeedbackTypeDialogState extends State { onTap: () => model.setMessageDialogType(MessageType.Compliment), child: ListTile( - title: const Text('compliment'), + title: Texts(TranslationBase.of(context).compliment), leading: Radio( value: MessageType.Compliment, groupValue: model.messageTypeDialog, @@ -605,7 +606,7 @@ class FeedbackTypeDialogState extends State { onTap: () => model.setMessageDialogType(MessageType.Suggestion), child: ListTile( - title: const Text('Suggestion'), + title: Texts(TranslationBase.of(context).suggestion), leading: Radio( value: MessageType.Suggestion, groupValue: model.messageTypeDialog, @@ -638,11 +639,11 @@ class FeedbackTypeDialogState extends State { Navigator.pop(context); }, child: Padding( - padding: const EdgeInsets.all(8.0), + padding: EdgeInsets.all(8.0), child: Container( child: Center( child: Texts( - 'cancel', + TranslationBase.of(context).cancel, color: Colors.red, ), ), @@ -666,7 +667,7 @@ class FeedbackTypeDialogState extends State { padding: const EdgeInsets.all(8.0), child: Center( child: Texts( - 'ok', + TranslationBase.of(context).ok, fontWeight: FontWeight.w400, )), ), diff --git a/lib/pages/feedback/status_feedback_page.dart b/lib/pages/feedback/status_feedback_page.dart index b6e389cf..457ded60 100644 --- a/lib/pages/feedback/status_feedback_page.dart +++ b/lib/pages/feedback/status_feedback_page.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -52,7 +53,7 @@ class _StatusFeedbackPageState extends State { children: [ Texts('${model.cOCItemList[index].cOCTitle}'), Texts( - 'Number :${model.cOCItemList[index].itemID}', + TranslationBase.of(context).number + ' : ${model.cOCItemList[index].itemID}', variant: 'overline', ), ], diff --git a/lib/pages/medical/vital_sign/vital_sign_details_screen.dart b/lib/pages/medical/vital_sign/vital_sign_details_screen.dart index b8c4eda2..667620a2 100644 --- a/lib/pages/medical/vital_sign/vital_sign_details_screen.dart +++ b/lib/pages/medical/vital_sign/vital_sign_details_screen.dart @@ -55,7 +55,7 @@ class VitalSignDetailsScreen extends StatelessWidget { mode.vitalSignResModelList.length - 1] .heightCm .toString(), - unit: ' Cm', + unit: TranslationBase.of(context).cm, ), ), ), @@ -73,7 +73,7 @@ class VitalSignDetailsScreen extends StatelessWidget { child: VitalSignItem( des: TranslationBase.of(context).weight, icon: DQIcons.weight_scale, - unit: ' Kg', + unit: TranslationBase.of(context).kg, lastVal: mode .vitalSignResModelList[ mode.vitalSignResModelList.length - 1] @@ -98,12 +98,12 @@ class VitalSignDetailsScreen extends StatelessWidget { ), ), child: VitalSignItem( - des: TranslationBase.of(context).bodyMeasurements, + des: TranslationBase.of(context).body, icon: DQIcons.bmi, lastVal: mode .vitalSignResModelList[0].pulseBeatPerMinute .toString(), - unit: 'BMI', + unit: TranslationBase.of(context).mass, ), ), InkWell( @@ -125,7 +125,7 @@ class VitalSignDetailsScreen extends StatelessWidget { lastVal: mode .vitalSignResModelList[0].temperatureCelcius .toString(), - unit: 'C', + unit: TranslationBase.of(context).tempC, ), ), ), @@ -152,7 +152,7 @@ class VitalSignDetailsScreen extends StatelessWidget { mode.vitalSignResModelList.length - 1] .pulseBeatPerMinute .toString(), - unit: ' bpm', + unit: TranslationBase.of(context).bpm, ), ), InkWell( @@ -175,7 +175,7 @@ class VitalSignDetailsScreen extends StatelessWidget { mode.vitalSignResModelList.length - 1] .respirationBeatPerMinute .toString(), - unit: ' bmp', + unit: TranslationBase.of(context).respirationSigns, ), ), ], @@ -202,7 +202,7 @@ class VitalSignDetailsScreen extends StatelessWidget { mode.vitalSignResModelList.length - 1] .bloodPressure .toString(), - unit: ' SBP/DBP', + unit: TranslationBase.of(context).sysDias, ), ), ], diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 5543c489..1a455504 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -794,6 +794,33 @@ class TranslationBase { String get average => localizedValues['Average'][locale.languageCode]; String get dailyDoses => localizedValues['DailyDoses'][locale.languageCode]; String get period => localizedValues['Period'][locale.languageCode]; + String get cm => localizedValues['cm'][locale.languageCode]; + String get kg => localizedValues['kg'][locale.languageCode]; + String get mass => localizedValues['mass'][locale.languageCode]; + String get tempC => localizedValues['temp-c'][locale.languageCode]; + String get bpm => localizedValues['bpm'][locale.languageCode]; + String get respirationSigns => localizedValues['respiration-signs'][locale.languageCode]; + String get sysDias => localizedValues['sys-dias'][locale.languageCode]; + String get body => localizedValues['body'][locale.languageCode]; + String get feedbackTitle => localizedValues['feedback'][locale.languageCode]; + String get send => localizedValues['send'][locale.languageCode]; + String get status => localizedValues['status'][locale.languageCode]; + String get likeToHear => localizedValues['like-to-hear'][locale.languageCode]; + String get subject => localizedValues['subject'][locale.languageCode]; + String get message => localizedValues['message'][locale.languageCode]; + String get emptySubject => localizedValues['empty-subject'][locale.languageCode]; + String get emptyMessage => localizedValues['empty-message'][locale.languageCode]; + String get selectAttachment => localizedValues['select-attachment'][locale.languageCode]; + String get complainAppo => localizedValues['complain-appo'][locale.languageCode]; + String get complainWithoutAppo => localizedValues['complain-without-appo'][locale.languageCode]; + String get question => localizedValues['question'][locale.languageCode]; + String get messageType => localizedValues['message-type'][locale.languageCode]; + String get compliment => localizedValues['compliment'][locale.languageCode]; + String get suggestion => localizedValues['suggestion'][locale.languageCode]; + String get yourFeedback => localizedValues['your-feedback'][locale.languageCode]; + String get selectPart => localizedValues['select-part'][locale.languageCode]; + String get number => localizedValues['number'][locale.languageCode]; + String get notClassified => localizedValues['not-classified'][locale.languageCode]; }