diff --git a/lib/extensions/context_extension.dart b/lib/extensions/context_extension.dart index 47f0b238..a4b0be8d 100644 --- a/lib/extensions/context_extension.dart +++ b/lib/extensions/context_extension.dart @@ -11,4 +11,5 @@ extension BuildContextExtension on BuildContext { List get getIssues => [translation.reason1, translation.reason2, translation.reason3, translation.reason4, translation.reason5]; bool get isDark => Provider.of(this).theme == "dark"; + bool get isAr => Provider.of(this).language == "ar"; } diff --git a/lib/l10n/app_ar.arb b/lib/l10n/app_ar.arb index 9523a7d9..0f47f595 100644 --- a/lib/l10n/app_ar.arb +++ b/lib/l10n/app_ar.arb @@ -306,5 +306,49 @@ "requesterName" : "اسم الطالب", "updateWorkOrder" : "تعديل طلب العمل", "createPreventiveMaintenanceRequest" : "إنشاء طلب صيانة وقائية", - "createNewRequest" : "إنشاء طلب جديد" + "createNewRequest" : "إنشاء طلب جديد", + "helpCenter" : "مركز المساعدة", + "rateUs": "قيمنا", + "settings" : " الاعدادات", + "reportBg" : "ابلاغ عن خطا", + "whatsNew" : "ماهو الجديد", + "logout" : "خروج", + "arabic" : "عربي", + "lightTheme" : "وضع النهاري", + "myProfile" : "الملف الشخصي", + "viewDetails" : "عرض التفاصيل", + "requests" : "طلبات", + "highPriorityRequests" : "طلبات ذات\nاولوية عاليه", + "newRequests" : " طلبات\nجديدة", + "completedRequests" : "طلبات\nمكتملة", + "overdueRequests": "طلبات\nمتاخره", + "highPriority" : "اولوية عالية", + "lowPriority" : "اولوية منخفضة", + "inProgress": "قيد التنفيذ", + "completed" : "مكتملة", + "open" : "مفتوح", + "requestType":"نوع الطلب", + "requestNo": "رقم الطلب", + "assignedTo" : "تعيين الى", + "viewComments" : "عرض التعليقات", + "viewWorkOrder" : "عرض جميع طلبات العمل", + "serviceDetails": "تفاصيل الخدمات", + "waitingForQuotation" : "في انتظار السؤال", + "gasRequest" : "طلب غاز", + "createWorkOrder" : "إنشاء طلب عمل", + "commentHere" : "علق هنا", + "nurseSignature" : "توقيع الممرض", + "actualVisitDate": "تاريخ الزيارة الفعلي", + "ppmVisit": "موعد زيارة الصيانة الوقائية", + "timer": "مؤقت", + "deviceStatus" : "حالة الجهاز", + "addAsset" : "اضافة جهاز", + "calibrationDate" : "موعد المعايرة", + "asset" : "جهاز", + "addItem" : "اضافة عنصر", + "item" : "عنصر", + "serialNo" : "رقم التسلسلي", + "measuredValue": "القيمة المقاسه" + + } \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index d76461ad..757ba9a7 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -150,6 +150,7 @@ "updateVisitsGroup": "Update Visits Group", "updatingDots": "Updating ...", "expectedVisitDate": "Next Visit Date", + "actualVisitDate": "Actual Visit Date", "visitInformation": "Visit Information", "travelingHours": "Traveling Hours", "workingHours": "Working Hours", @@ -261,7 +262,6 @@ "workOrders" : "Work Orders", "viewWorkOrder" : "View All Work Order", "createWorkOrder" : "Create Work Order", - "viewWorkOrder" : "View All Work Order", "serviceDetails": "Service Details", "priority" : "Priority", "equipmentStatus" : "Equipment Status", @@ -310,5 +310,45 @@ "requesterName" : "Requester Name", "updateWorkOrder" : "Update Work Order", "createPreventiveMaintenanceRequest" : "Create Preventive Maintenance Request", - "createNewRequest" : "Create New Request" + "createNewRequest" : "Create New Request", + "helpCenter" : "Help Center", + "rateUs": "Rate Us", + "settings" : "Settings", + "reportBg" : "Report a bug", + "whatsNew" : "What's New", + "logout" : "Logout", + "arabic" : "Arabic", + "lightTheme" : "Light Theme", + "myProfile" : "My Profile", + "viewDetails" : "View Details", + "requests" : "Requests", + "highPriorityRequests" : "High Priority\nRequests", + "newRequests" : "New Request\nRequests", + "completedRequests" : "completed\nRequests", + "overdueRequests": "overdue\nRequests", + "highPriority" : "High Priority", + "lowPriority" : "Low Priority", + "inProgress": "In Progress", + "completed" : "completed", + "open" : "Open", + "requestType":"Request Type", + "requestNo": "Request No", + "assignedTo" : "Assigned To", + "waitingForQuotation" : "Waiting for quotation", + "gasRequest" : "Gas Request", + "viewComments" : "View Comments", + "commentHere" : "Comment Here", + "nurseSignature" : "Nurse Signature", + "ppmVisit": "PPM Visit Status", + "timer": "Timer", + "deviceStatus" : "Device Status", + "addAsset" : "Add Asset", + "calibrationDate" : "Calibration Date", + "asset" : "Asset", + "addItem" : "Add Item", + "item" : "Item", + "measuredValue": "Measured Value" + + + } \ No newline at end of file diff --git a/lib/new_views/common_widgets/app_drawer.dart b/lib/new_views/common_widgets/app_drawer.dart index ed6ed64a..5b2d4b58 100644 --- a/lib/new_views/common_widgets/app_drawer.dart +++ b/lib/new_views/common_widgets/app_drawer.dart @@ -57,22 +57,31 @@ class AppDrawer extends StatelessWidget { 18.height, 1.divider, ListView( + // "settings" : " Settings", + // "ReportBug " : "Report a bug", + // "whatsNew" : "What's New", + // "logout" : "Logout" + + // "settings" : " الاعدادات", + // "ReportBug " "ابلاغ عن خطا", + // "whatsNew" : "ماهو الجديد", + // "logout" : "خروج" padding: const EdgeInsets.only(top: 24), children: [ - drawerItem("drawer_notification", "Notification").onPress(() => Navigator.of(context).pushNamed(NotificationsPage.id)), + drawerItem("drawer_notification", context.translation.notifications).onPress(() => Navigator.of(context).pushNamed(NotificationsPage.id)), 18.height, - drawerItem("help_center", "Help Center") /*.onPress(() => Navigator.of(context).pushNamed(HelpCenterPage.id))*/, + drawerItem("help_center", context.translation.helpCenter) /*.onPress(() => Navigator.of(context).pushNamed(HelpCenterPage.id))*/, 18.height, - drawerItem("rate_us", "Rate Us"), + drawerItem("rate_us", context.translation.rateUs), 18.height, - drawerItem("setting", "Settings").onPress(() => Navigator.of(context).pushNamed(SettingsPage.id)), + drawerItem("setting", context.translation.settings).onPress(() => Navigator.of(context).pushNamed(SettingsPage.id)), 18.height, - drawerItem("report", "Report a bug") /*.onPress(() => Navigator.of(context).pushNamed(ReportBugPage.id))*/, + drawerItem("report", context.translation.reportBg) /*.onPress(() => Navigator.of(context).pushNamed(ReportBugPage.id))*/, 18.height, - drawerItem("whats_new", "What's New"), + drawerItem("whats_new", context.translation.whatsNew), ], ).expanded, - drawerItem("logout", "Logout", color: AppColor.red50).onPress(() async { + drawerItem("logout", context.translation.logout, color: AppColor.red50).onPress(() async { bool result = await showDialog( context: context, builder: (_) => AAlertDialog(title: context.translation.signOut, content: context.translation.logoutAlert), diff --git a/lib/new_views/pages/land_page/dashboard_fragments/requests_fragment.dart b/lib/new_views/pages/land_page/dashboard_fragments/requests_fragment.dart index a54b656a..91928b58 100644 --- a/lib/new_views/pages/land_page/dashboard_fragments/requests_fragment.dart +++ b/lib/new_views/pages/land_page/dashboard_fragments/requests_fragment.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; @@ -18,16 +19,16 @@ class RequestsFragment extends StatelessWidget { padding: const EdgeInsets.only(left: 16, right: 16, bottom: 16), gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: 191 / 237, crossAxisSpacing: 16, mainAxisSpacing: 16), children: [ - gridItem("12", "high_priority", "High Priority\nRequests"), - gridItem("12", "overdue", "Overdue\nRequests"), - gridItem("12", "new_request", "New\nRequests"), - gridItem("12", "complete_request", "Completed\nRequests"), + gridItem("12", "high_priority",context.translation.highPriorityRequests,context), + gridItem("12", "overdue", context.translation.overdueRequests,context), + gridItem("12", "new_request", context.translation.newRequests,context), + gridItem("12", "complete_request", context.translation.completedRequests ,context), ], ), ); } - Widget gridItem(String value, String icon, String title) { + Widget gridItem(String value, String icon, String title, BuildContext context) { return Container( padding: const EdgeInsets.all(16), decoration: ShapeDecoration( @@ -66,7 +67,7 @@ class RequestsFragment extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Details', + context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/new_views/pages/settings_page.dart b/lib/new_views/pages/settings_page.dart index 44550856..ea136cc1 100644 --- a/lib/new_views/pages/settings_page.dart +++ b/lib/new_views/pages/settings_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_advanced_switch/flutter_advanced_switch.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; +import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; @@ -34,8 +35,8 @@ class _SettingsPageState extends State { langController ??= ValueNotifier(_settingProvider.language == "ar") ..addListener(() async { /// TODO : uncomment the below lines to support the another language - // await _settingProvider.setLanguage(_settingProvider.language == "ar" ? "en" : "ar"); - // langController.value = _settingProvider.language == "ar"; + await _settingProvider.setLanguage(_settingProvider.language == "ar" ? "en" : "ar"); + langController.value = _settingProvider.language == "ar"; }); themeController ??= ValueNotifier(_settingProvider.theme == "light") ..addListener(() async { @@ -43,7 +44,7 @@ class _SettingsPageState extends State { themeController.value = _settingProvider.theme == "light"; }); return Scaffold( - appBar: const DefaultAppBar(title: "Settings"), + appBar: DefaultAppBar(title: context.translation.settings), body: Card( child: Column( mainAxisSize: MainAxisSize.min, @@ -51,7 +52,7 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - "Arabic".heading5(context), + context.translation.arabic.heading5(context), AdvancedSwitch( controller: langController, activeColor: AppColor.green50.withOpacity(0.5), @@ -62,7 +63,7 @@ class _SettingsPageState extends State { height: 24.toScreenHeight, /// TODO : remove the below attribute to enable the switch - enabled: false, + //enabled: false, disabledOpacity: 1, ), ], @@ -73,7 +74,7 @@ class _SettingsPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - "Light Theme".heading5(context), + context.translation.lightTheme.heading5(context), AdvancedSwitch( controller: themeController, activeColor: AppColor.green50.withOpacity(0.5), diff --git a/lib/views/pages/user/gas_refill/gas_refill_details.dart b/lib/views/pages/user/gas_refill/gas_refill_details.dart index 1739af7a..3184bfa4 100644 --- a/lib/views/pages/user/gas_refill/gas_refill_details.dart +++ b/lib/views/pages/user/gas_refill/gas_refill_details.dart @@ -153,16 +153,17 @@ class _GasRefillDetailsPageState extends State { Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ + ///TBD Text( - 'Gas Request:', + context.translation.gasRequest, style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Cylinder Size: ${widget.model.gazRefillDetails[0].cylinderSize.value}', + '${context.translation.cylinderSize}: ${widget.model.gazRefillDetails[0].cylinderSize.value}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Site: ${widget.model.site.name}', + '${context.translation.site}: ${widget.model.site.name}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), ], @@ -174,11 +175,11 @@ class _GasRefillDetailsPageState extends State { const Divider(color: Color(0xFFEAF1F4), height: 1, thickness: 1), 8.height, Text( - 'Request Quantity: ${widget.model.gazRefillDetails[0].requestedQty}', + '${context.translation.requestedQuantity}: ${widget.model.gazRefillDetails[0].requestedQty}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Delivered Quantity: ${widget.model.gazRefillDetails[0].deliverdQty}', + '${context.translation.deliveredQuantity}: ${widget.model.gazRefillDetails[0].deliverdQty}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), 8.height, @@ -203,7 +204,7 @@ class _GasRefillDetailsPageState extends State { child: Row( children: [ Text( - 'Comment here...', + '${context.translation.commentHere}...', style: AppTextStyles.heading6.copyWith( color: AppColor.neutral50.withOpacity(.6), ), @@ -222,7 +223,7 @@ class _GasRefillDetailsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Comments', + '${context.translation.viewComments}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/views/pages/user/profile_page.dart b/lib/views/pages/user/profile_page.dart index 90fbabfb..e0132aeb 100644 --- a/lib/views/pages/user/profile_page.dart +++ b/lib/views/pages/user/profile_page.dart @@ -44,7 +44,7 @@ class _ProfilePageState extends State { } return Scaffold( key: _scaffoldKey, - appBar: const DefaultAppBar(title: "My Profile"), + appBar: DefaultAppBar(title: context.translation.myProfile), body: LoadingManager( isLoading: _userProvider.isLoading, isFailedLoading: false, diff --git a/lib/views/pages/user/requests/service_request_details.dart b/lib/views/pages/user/requests/service_request_details.dart index 83349e5e..a92e6a1c 100644 --- a/lib/views/pages/user/requests/service_request_details.dart +++ b/lib/views/pages/user/requests/service_request_details.dart @@ -94,11 +94,11 @@ class _ServiceRequestDetailsPageState extends State { style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Request Type: ${widget.serviceRequest.type.name}', + '${context.translation.requestType}: ${widget.serviceRequest.type.name}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Request No: ${widget.serviceRequest.requestCode}', + '${context.translation.requestNo}: ${widget.serviceRequest.requestCode}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), ], @@ -107,7 +107,7 @@ class _ServiceRequestDetailsPageState extends State { crossAxisAlignment: CrossAxisAlignment.end, children: [ if (_userProvider.user.type == UsersTypes.normal_user) - "edit".toSvgAsset(width: 48).onPress(() { + context.translation.code.toSvgAsset(width: 48).onPress(() { Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: widget.serviceRequest))); }), if (_userProvider.user.type == UsersTypes.engineer) 16.height, @@ -120,11 +120,11 @@ class _ServiceRequestDetailsPageState extends State { const Divider(color: Color(0xFFEAF1F4), height: 1, thickness: 1), 8.height, Text( - 'Manufacture: ${widget.serviceRequest.device.modelDefinition.manufacturerName}', + '${context.translation.manufacture}: ${widget.serviceRequest.device.modelDefinition.manufacturerName}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Model: ${widget.serviceRequest.device.modelDefinition.modelName}', + '${context.translation.model}: ${widget.serviceRequest.device.modelDefinition.modelName}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), 8.height, @@ -166,7 +166,7 @@ class _ServiceRequestDetailsPageState extends State { child: Row( children: [ Text( - 'Comment here...', + '${context.translation.viewComments}...', style: AppTextStyles.heading6.copyWith( color: AppColor.neutral50.withOpacity(.6), ), @@ -185,7 +185,7 @@ class _ServiceRequestDetailsPageState extends State { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Comments', + context.translation.viewComments, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/views/pages/user/requests/work_order/work_order_details_page.dart b/lib/views/pages/user/requests/work_order/work_order_details_page.dart index 195b6c00..6aa1db17 100644 --- a/lib/views/pages/user/requests/work_order/work_order_details_page.dart +++ b/lib/views/pages/user/requests/work_order/work_order_details_page.dart @@ -67,7 +67,7 @@ class WorkOrderDetailsPage extends StatelessWidget { Text('${context.translation.assetNumber}: ${workOrder.callRequest.asset.assetNumber ?? ""}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), Text('${context.translation.model}: ${workOrder.callRequest.asset.modelDefinition.modelName ?? ""}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), Text('${context.translation.site}: ${workOrder.callRequest.asset.site.custName ?? ""}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), - Text('${"Call last Situation"}: ${workOrder.calllastSituation.name ?? '' ?? ""}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.callLastSituation}: ${workOrder.calllastSituation.name ?? '' ?? ""}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), ], ).paddingAll(16), ), diff --git a/lib/views/pages/user/requests/work_order/work_orders_list_page.dart b/lib/views/pages/user/requests/work_order/work_orders_list_page.dart index 2f7ea3e6..739fd496 100644 --- a/lib/views/pages/user/requests/work_order/work_orders_list_page.dart +++ b/lib/views/pages/user/requests/work_order/work_orders_list_page.dart @@ -84,7 +84,7 @@ class WorkOrderListPage extends StatelessWidget { ], ).expanded, if (_userProvider.user.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3) - "edit".toSvgAsset(height: 48, width: 48).onPress(() { + context.translation.edit.toSvgAsset(height: 48, width: 48).onPress(() { Navigator.of(context).push( MaterialPageRoute(builder: (_) => UpdateServiceReport(request: serviceRequest, workOrder: workOrders[index])), ); @@ -117,7 +117,7 @@ class WorkOrderListPage extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Details', + context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/views/pages/user/visits/visit_details.dart b/lib/views/pages/user/visits/visit_details.dart index 739656fa..99ef76a5 100644 --- a/lib/views/pages/user/visits/visit_details.dart +++ b/lib/views/pages/user/visits/visit_details.dart @@ -64,15 +64,15 @@ class VisitDetailsPage extends StatelessWidget { Text(visit.deviceEnglishName, style: AppTextStyles.heading5.copyWith(color: const Color(0xFF3B3D4A))), 8.height, Text('${context.translation.assetNumber}: ${visit.deviceNumber}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), - Text('Asset Serial No.: ${visit.deviceSerialNumber}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), - Text('Code: ${visit.serialNumber}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.assetSN}: ${visit.deviceSerialNumber}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.code}: ${visit.serialNumber}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), const Divider().defaultStyle(context), - Text('Expected Date: ${visit.expectDate?.toServiceRequestDetailsFormat}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), - Text('Actual Date: ${visit.actualDate?.toServiceRequestDetailsFormat}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.expectDate}: ${visit.expectDate?.toServiceRequestDetailsFormat}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.actualDate}: ${visit.actualDate?.toServiceRequestDetailsFormat}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), const Divider().defaultStyle(context), - Text('Assigned to: ${visit.assignTo}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), - Text('Engineer Name: ${visit.employName}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), - Text('Site: ${visit.hospitalName}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.assignedTo}: ${visit.assignTo}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.engineerName}: ${visit.employName}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), + Text('${context.translation.site}: ${visit.hospitalName}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575))), ], ).paddingAll(16), ), diff --git a/lib/views/widgets/device_trancfer/device_transfer_item.dart b/lib/views/widgets/device_trancfer/device_transfer_item.dart index 0972d197..e928adce 100644 --- a/lib/views/widgets/device_trancfer/device_transfer_item.dart +++ b/lib/views/widgets/device_trancfer/device_transfer_item.dart @@ -68,7 +68,7 @@ class DeviceTransferItem extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Details', + context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/views/widgets/dialogs/dialog.dart b/lib/views/widgets/dialogs/dialog.dart index 065fd5af..4be996e1 100644 --- a/lib/views/widgets/dialogs/dialog.dart +++ b/lib/views/widgets/dialogs/dialog.dart @@ -1,5 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:test_sa/extensions/context_extension.dart'; class AAlertDialog extends StatelessWidget { final String title; @@ -16,14 +17,14 @@ class AAlertDialog extends StatelessWidget { actions: [ TextButton( // child: Text(_subtitle.confirm), - child: const Text("Confirm"), + child: Text(context.translation.confirm), onPressed: () { Navigator.of(context).pop(true); }, ), TextButton( // child: Text(_subtitle.cancel), - child: const Text("Cancel"), + child: Text(context.translation.cancel), onPressed: () { Navigator.of(context).pop(false); }, diff --git a/lib/views/widgets/equipment/asset_item_listview.dart b/lib/views/widgets/equipment/asset_item_listview.dart index 17773b70..d6cf6fc7 100644 --- a/lib/views/widgets/equipment/asset_item_listview.dart +++ b/lib/views/widgets/equipment/asset_item_listview.dart @@ -74,7 +74,7 @@ class AssetItemListView extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Details', + context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/views/widgets/equipment/single_device_picker.dart b/lib/views/widgets/equipment/single_device_picker.dart index c40d87e0..8af6baf8 100644 --- a/lib/views/widgets/equipment/single_device_picker.dart +++ b/lib/views/widgets/equipment/single_device_picker.dart @@ -125,7 +125,7 @@ class _SingleDevicePickerState extends State { })), 16.width, Text( - 'Filter', + context.translation.filter, style: AppTextStyles.bodyText2.copyWith(color: const Color(0xFF4A8DB7)), ).onPress(() async { final result = await Navigator.push(context, MaterialPageRoute(builder: (context) => AssetFilterScreen(data: _searchAsset))); diff --git a/lib/views/widgets/gas_refill/gas_refill_item.dart b/lib/views/widgets/gas_refill/gas_refill_item.dart index f9abe4f5..8f33c63a 100644 --- a/lib/views/widgets/gas_refill/gas_refill_item.dart +++ b/lib/views/widgets/gas_refill/gas_refill_item.dart @@ -54,7 +54,7 @@ class GasRefillItem extends StatelessWidget { 8.height, Text(context.translation.gasRefillRequest, style: AppTextStyles.heading5.copyWith(color: const Color(0xFF3B3D4A))), Text( - 'Gas Type: ${item.gazRefillDetails[0].gasType.name}', + '${context.translation.gasType}: ${item.gazRefillDetails[0].gasType.name}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( @@ -66,7 +66,7 @@ class GasRefillItem extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Details', + context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/views/widgets/loaders/failed_loading.dart b/lib/views/widgets/loaders/failed_loading.dart index b14b45a7..a73cdb5f 100644 --- a/lib/views/widgets/loaders/failed_loading.dart +++ b/lib/views/widgets/loaders/failed_loading.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/views/app_style/sizing.dart'; class FailedLoading extends StatelessWidget { @@ -14,7 +15,7 @@ class FailedLoading extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - message ?? "Error Request Failed", + message ?? context.translation.httpError, style: Theme.of(context).textTheme.subtitle1, textScaleFactor: AppStyle.getScaleFactor(context), ), @@ -22,7 +23,7 @@ class FailedLoading extends StatelessWidget { height: 16, ), OutlinedButton( - child: Text("try again"), + child: Text(context.translation.tryAgain), onPressed: onReload, ) ], diff --git a/lib/views/widgets/pentry/pentry_calibration_tool_form.dart b/lib/views/widgets/pentry/pentry_calibration_tool_form.dart index 32a9a753..a8accbca 100644 --- a/lib/views/widgets/pentry/pentry_calibration_tool_form.dart +++ b/lib/views/widgets/pentry/pentry_calibration_tool_form.dart @@ -31,7 +31,7 @@ class _PentryCalibrationToolFormState extends State { itemBuilder: (context, index) { if (index == widget.models.length) { return AppFilledButton( - label: "Add Asset", + label: context.translation.addAsset, maxWidth: true, textColor: Colors.white, buttonColor: context.isDark ? AppColor.neutral60 : AppColor.neutral50, @@ -56,7 +56,7 @@ class _PentryCalibrationToolFormState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - "Asset ${index + 1}".heading5(context), + "${context.translation.asset} ${index + 1}".heading5(context), "trash".toSvgAsset(height: 20, width: 15).onPress(() { widget.models.remove(model); setState(() {}); @@ -73,7 +73,7 @@ class _PentryCalibrationToolFormState extends State { ), 8.height, ADatePicker( - label: "Calibration Date", + label: context.translation.calibrationDate, date: model.dataOfTesting, onDatePicker: (date) { model.dataOfTesting = date; diff --git a/lib/views/widgets/pentry/pentry_pm_kit_form.dart b/lib/views/widgets/pentry/pentry_pm_kit_form.dart index 8236c7ca..88052eca 100644 --- a/lib/views/widgets/pentry/pentry_pm_kit_form.dart +++ b/lib/views/widgets/pentry/pentry_pm_kit_form.dart @@ -36,7 +36,7 @@ class _PentryPMKitFormState extends State { itemBuilder: (context, index) { if (index == widget.models.length) { return AppFilledButton( - label: "Add Item", + label: context.translation.addItem, maxWidth: true, textColor: Colors.white, buttonColor: context.isDark ? AppColor.neutral60 : AppColor.neutral50, @@ -62,7 +62,7 @@ class _PentryPMKitFormState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - "Item ${index + 1}".heading5(context), + "${context.translation.item} ${index + 1}".heading5(context), "trash".toSvgAsset(width: 15, height: 20).onPress(() { widget.models.remove(model); setState(() {}); diff --git a/lib/views/widgets/pentry/pentry_ppm_check_list_form.dart b/lib/views/widgets/pentry/pentry_ppm_check_list_form.dart index 0faa222f..80798e23 100644 --- a/lib/views/widgets/pentry/pentry_ppm_check_list_form.dart +++ b/lib/views/widgets/pentry/pentry_ppm_check_list_form.dart @@ -30,13 +30,13 @@ class _PentryPMChecklistFormState extends State { child: ExpansionTile( shape: const Border(), title: (model.title ?? "").heading5(context), - subtitle: "Status ${model.status?.name}".bodyText(context), + subtitle: "${context.translation.status} ${model.status?.name}".bodyText(context), initiallyExpanded: index == 0, iconColor: AppColor.neutral50, collapsedIconColor: AppColor.neutral50, childrenPadding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 8.toScreenHeight), children: [ - AppTextFormField(labelText: "Measured Value", initialValue: model.measuredValue, enable: false), + AppTextFormField(labelText: context.translation.measuredValue, initialValue: model.measuredValue, enable: false), 8.height, AppTextFormField(labelText: context.translation.comment, initialValue: model.comment, enable: false), 8.height, diff --git a/lib/views/widgets/pentry/pentry_tbs_form.dart b/lib/views/widgets/pentry/pentry_tbs_form.dart index b554b882..ccec36b5 100644 --- a/lib/views/widgets/pentry/pentry_tbs_form.dart +++ b/lib/views/widgets/pentry/pentry_tbs_form.dart @@ -41,7 +41,7 @@ class _PentryTBSFormState extends State { SingleItemDropDownMenu( context: context, initialValue: widget.model.ppmVisitStatus, - title: "PPM Visit Status", + title: context.translation.ppmVisit, onSelect: (value) { if (value != null) { widget.model.ppmVisitStatus = value; @@ -50,6 +50,7 @@ class _PentryTBSFormState extends State { ), 8.height, AppTimer( + label: context.translation.timer, timer: widget.model.timer, enabled: widget.model.timer.endAt == null, onChange: (timer) async { @@ -61,7 +62,7 @@ class _PentryTBSFormState extends State { SingleItemDropDownMenu( context: context, initialValue: widget.model.status, - title: "Device Status", + title: context.translation.deviceStatus, onSelect: (value) { if (value != null) { widget.model.status = value; @@ -70,7 +71,7 @@ class _PentryTBSFormState extends State { ), 8.height, ADatePicker( - label: "Actual Visit Date", + label: context.translation.actualVisitDate, date: widget.model.actualVisitDate, from: DateTime.now().subtract(const Duration(days: 30)), onDatePicker: (date) { @@ -81,7 +82,7 @@ class _PentryTBSFormState extends State { ), 8.height, ADatePicker( - label: "Expected Visit Date", + label: context.translation.expectedVisitDate, date: widget.model.expectedVisitDate, from: DateTime.now().subtract(const Duration(days: 30)), onDatePicker: (date) { @@ -105,7 +106,7 @@ class _PentryTBSFormState extends State { // }, // ), 8.height, - MultiFilesPicker(label: "Attach Image", files: widget.model.files), + MultiFilesPicker(label: context.translation.attachImage, files: widget.model.files), // AMiniOneFilePicker( // //error: _validate && _serviceReport.image == null, // file: widget.model.file, @@ -115,7 +116,7 @@ class _PentryTBSFormState extends State { // ), 8.height, ESignature( - title: "Nurse Signature", + title: context.translation.nurseSignature, oldSignature: widget.model.signatureNurse, newSignature: widget.model.localNurseSignature, onChange: (signature) { diff --git a/lib/views/widgets/requests/request_status.dart b/lib/views/widgets/requests/request_status.dart index 26fa2352..9cfb069d 100644 --- a/lib/views/widgets/requests/request_status.dart +++ b/lib/views/widgets/requests/request_status.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/sizing.dart'; @@ -14,8 +15,13 @@ class StatusLabel extends StatelessWidget { @override Widget build(BuildContext context) { - if (id == 82) label = "High Priority"; - if (id == 81) label = "Low Priority"; + if (id == 82) label = context.translation.highPriority; + if (id == 81) label = context.translation.lowPriority; + if (label.toLowerCase() == 'In progress'.toLowerCase()) label = context.translation.inProgress; + if (label.toLowerCase() == 'Complete'.toLowerCase()) label = context.translation.completed; + if (label.toLowerCase() == 'Open'.toLowerCase()) label = context.translation.open; + if (label.toLowerCase() == 'Closed'.toLowerCase()) label = context.translation.closed; + if (label.toLowerCase() == 'Waiting for quotation'.toLowerCase()) label = context.translation.waitingForQuotation; print("label:$label:$id"); return Container( @@ -26,7 +32,7 @@ class StatusLabel extends StatelessWidget { borderRadius: BorderRadius.circular(50), ), ), - child: Text(label.toUpperCase(), style: AppTextStyles.overline.copyWith(color: textColor)), + child: Text(label, style: AppTextStyles.overline.copyWith(color: textColor)), ); } diff --git a/lib/views/widgets/requests/service_request_item.dart b/lib/views/widgets/requests/service_request_item.dart index e5027123..1dcd3e53 100644 --- a/lib/views/widgets/requests/service_request_item.dart +++ b/lib/views/widgets/requests/service_request_item.dart @@ -70,11 +70,11 @@ class ServiceRequestItem extends StatelessWidget { style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Request Type: ${request.type.name}', + '${context.translation.requestType}: ${request.type.name}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), Text( - 'Request No: ${request.requestCode}', + '${context.translation.requestNo}: ${request.requestCode}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)), ), 8.height, @@ -82,7 +82,7 @@ class ServiceRequestItem extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Details', + context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, diff --git a/lib/views/widgets/visits/visit_item.dart b/lib/views/widgets/visits/visit_item.dart index 83822e95..fba9d1aa 100644 --- a/lib/views/widgets/visits/visit_item.dart +++ b/lib/views/widgets/visits/visit_item.dart @@ -61,11 +61,11 @@ class VisitItem extends StatelessWidget { style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575)), ), Text( - 'Asset Serial No.: ${visit.deviceSerialNumber}', + '${context.translation.assetSN}: ${visit.deviceSerialNumber}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575)), ), Text( - 'Code: ${visit.serialNumber}', + '${context.translation.code}: ${visit.serialNumber}', style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575)), ), 16.height, @@ -73,7 +73,7 @@ class VisitItem extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ Text( - 'View Details', + context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), ), 4.width, @@ -88,7 +88,7 @@ class VisitItem extends StatelessWidget { Column( children: [ if (userProvider.user.type == UsersTypes.engineer && visit.status.value != 5 && visit.status.value != 3) - "edit".toSvgAsset(height: 48, width: 48).onPress(() { + context.translation.edit.toSvgAsset(height: 48, width: 48).onPress(() { Navigator.of(context).push(MaterialPageRoute(builder: (_) => EditPentry(visit: visit, pentry: visit.pentry))); }), Text(visit.createdOn != null ? visit.createdOn.toServiceRequestCardFormat : "", textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: const Color(0xFF3B3D4A))),