From c1e06a739a8412f3545c620705b365a49ff85d2f Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Thu, 7 Apr 2022 12:01:58 +0300 Subject: [PATCH 1/4] fix issues --- lib/classes/utils.dart | 2 +- lib/pages/user/register_page.dart | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/classes/utils.dart b/lib/classes/utils.dart index bef8218..56e5802 100644 --- a/lib/classes/utils.dart +++ b/lib/classes/utils.dart @@ -11,7 +11,7 @@ class Utils { static void showToast(String message) { Fluttertoast.showToast( - msg: message, toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 1, backgroundColor: Colors.black54, textColor: Colors.white, fontSize: 16.0); + msg: message, toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIosWeb: 2, backgroundColor: Colors.black54, textColor: Colors.white, fontSize: 16.0); } static dynamic getNotNullValue(List list, int index) { diff --git a/lib/pages/user/register_page.dart b/lib/pages/user/register_page.dart index f20f2f9..6e4d968 100644 --- a/lib/pages/user/register_page.dart +++ b/lib/pages/user/register_page.dart @@ -46,7 +46,7 @@ class RegisterPage extends StatelessWidget { }); return DropdownField((DropValue value) { role = value.id; - }, list: dropList, hint: "Chosse Role"); + }, list: dropList, hint: "Select Role"); } else { return CircularProgressIndicator(); } @@ -64,7 +64,7 @@ class RegisterPage extends StatelessWidget { return DropdownField((DropValue value) { countryCode = value.subValue; countryId = value.id; - }, list: dropList, hint: "Chosse Country"); + }, list: dropList, hint: "Select Country"); } else { return CircularProgressIndicator(); } From 9ad439fb46cba9022dd3ab55446042f6cf7402a6 Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Thu, 7 Apr 2022 13:10:32 +0300 Subject: [PATCH 2/4] fix issues --- lib/pages/user/complete_profile_page.dart | 2 +- lib/pages/user/forget_password_page.dart | 100 +++++++++++++--------- 2 files changed, 59 insertions(+), 43 deletions(-) diff --git a/lib/pages/user/complete_profile_page.dart b/lib/pages/user/complete_profile_page.dart index 09be0a6..3ac4385 100644 --- a/lib/pages/user/complete_profile_page.dart +++ b/lib/pages/user/complete_profile_page.dart @@ -70,7 +70,7 @@ class _CompleteProfilePageState extends State { TxtField( hint: "Email", value: email, - isButtonEnable: email!.length > 0 ? true : false, + // isButtonEnable: email!.length > 0 ? true : false, buttonTitle: "Verify", onChanged: (v) { email = v; diff --git a/lib/pages/user/forget_password_page.dart b/lib/pages/user/forget_password_page.dart index 1b83423..8bac6fa 100644 --- a/lib/pages/user/forget_password_page.dart +++ b/lib/pages/user/forget_password_page.dart @@ -4,6 +4,7 @@ import 'package:car_provider_app/api/shared_prefrence.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; import 'package:car_provider_app/models/user/forget_password_otp_request.dart'; import 'package:car_provider_app/pages/user/vertify_password_page.dart'; @@ -14,10 +15,12 @@ import 'package:car_provider_app/widgets/button/show_image_button.dart'; import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; +import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; +import 'package:car_provider_app/widgets/tab/login_email_tab.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:flutter/material.dart'; import 'package:car_provider_app/models/user/user.dart'; @@ -36,6 +39,20 @@ class _ForgetPasswordPageState extends State { String userName = ""; bool _email = true; bool _mobile = true; + ClassType type = ClassType.NUMBER; + Country? _country; + String countryCode = ""; + + @override + void initState() { + super.initState(); + getCountryList(); + } + + getCountryList() async { + _country = await UserApiClent().getAllCountries(); + setState(() {}); + } @override @@ -46,64 +63,43 @@ class _ForgetPasswordPageState extends State { width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), - child: Column( + child:Column( children: [ - "Verify New Password".toText24(), mFlex(1), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - RaisedButton( - onPressed: () { - setState(() { - _mobile = true; - _email = false; - }); - },child: - Text("Mobile Number", - style: TextStyle(fontSize: 14, - fontWeight: FontWeight.w600,), - ),color: _mobile ? Colors.blue : Colors.transparent,textColor: _mobile ? Colors.white : Colors.blue, - padding: EdgeInsets.symmetric(horizontal: 18, vertical: 12),), - - RaisedButton(onPressed: () { - setState(() { - _mobile = false; - _email = true; - }); - },child: - Text("Email Address", - style: TextStyle(fontSize: 14, - fontWeight: FontWeight.w600,),),color: _email? Colors.blue : Colors.transparent - ,textColor: _email ? Colors.white : Colors.blue, - padding: EdgeInsets.symmetric(horizontal: 18, vertical: 12),), - ], + LoginEmailTab( + onSelection: (ClassType type) { + setState(() { + this.type = type; + }); + }, ), 50.height, "Retrieve Password".toText24(), 12.height, - _mobile ? TxtField( - hint: "Phone Number" , - value: userName, - onChanged: (v) { - userName = v; - }, - ): - _email ? TxtField( + type == ClassType.NUMBER ? Column(children: [ + getCountry(), + TxtField( + hint: "5********", + value: userName, + onChanged: (v) { + userName = v; + }, + ) + ],) : TxtField( hint: "Email Address", value: userName, onChanged: (v) { userName = v; }, - ): Container(), + ), 50.height, ShowFillButton( title: "Continue", width: double.infinity, onPressed: () { - if(userName.isNum() && _mobile) { + if (userName.isNum()&& !userName.isValidEmail() && type==ClassType.NUMBER) { forgetPasswordPhoneOTP(context); - }else if (!userName.isNum() && _email) { + } else if (userName.isValidEmail() && type==ClassType.EMAIL) { forgetPasswordEmailOTP(context); } }, @@ -115,9 +111,29 @@ class _ForgetPasswordPageState extends State { ); } + + Widget getCountry() { + if (_country != null) { + List dropList = []; + _country!.data?.forEach((element) { + dropList.add(new DropValue(element.id ?? 0, (element.countryName ?? "") + " " + (element.countryCode ?? ""), element.countryCode ?? "")); + }); + return Padding( + padding: const EdgeInsets.all(2.0), + child: DropdownField((DropValue value) { + countryCode = value.subValue; + }, list: dropList, hint: "Chose Country"), + ); + } else { + return Center( + child: CircularProgressIndicator(), + ); + } + } + Future forgetPasswordPhoneOTP(BuildContext context) async { Utils.showLoading(context); - Response response = await UserApiClent().ForgetPasswordOTPRequest(userName, otpType); + Response response = await UserApiClent().ForgetPasswordOTPRequest(countryCode+userName, otpType); Utils.hideLoading(context); PasswordOTPRequest otpRequest = PasswordOTPRequest.fromJson(jsonDecode(response.body)); if (otpRequest.messageStatus == 1) { From 3dc5da827d9001ae6fd745a76d68e0e53f886783 Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Thu, 7 Apr 2022 13:50:19 +0300 Subject: [PATCH 3/4] fix issues --- lib/extensions/string_extensions.dart | 2 +- lib/pages/user/forget_password_page.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/extensions/string_extensions.dart b/lib/extensions/string_extensions.dart index abba253..42a7af4 100644 --- a/lib/extensions/string_extensions.dart +++ b/lib/extensions/string_extensions.dart @@ -77,7 +77,7 @@ extension EmailValidator on String { } bool isNum() { - return RegExp(r'[0-9]').hasMatch(this); + return RegExp(r'^[0-9]+$').hasMatch(this); } String toFormattedDate() { diff --git a/lib/pages/user/forget_password_page.dart b/lib/pages/user/forget_password_page.dart index 8bac6fa..f0e5bbb 100644 --- a/lib/pages/user/forget_password_page.dart +++ b/lib/pages/user/forget_password_page.dart @@ -97,7 +97,7 @@ class _ForgetPasswordPageState extends State { title: "Continue", width: double.infinity, onPressed: () { - if (userName.isNum()&& !userName.isValidEmail() && type==ClassType.NUMBER) { + if (userName.isNum()&& type==ClassType.NUMBER) { forgetPasswordPhoneOTP(context); } else if (userName.isValidEmail() && type==ClassType.EMAIL) { forgetPasswordEmailOTP(context); From 44f286879063b52dadc1ffddf509fe8430826847 Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Tue, 12 Apr 2022 11:11:28 +0300 Subject: [PATCH 4/4] fix issues --- lib/classes/app_state.dart | 10 + lib/generated/codegen_loader.g.dart | 192 +++++++++++++++++- lib/main.dart | 43 +++- lib/models/post_params_model.dart | 36 ++++ lib/pages/dashboard/dashboard_page.dart | 16 +- lib/pages/location/pick_location_page.dart | 6 +- lib/pages/settings/create_services_page.dart | 10 +- lib/pages/settings/dealership_page.dart | 14 +- lib/pages/settings/define_branch_page.dart | 18 +- lib/pages/settings/define_license_page.dart | 12 +- lib/pages/user/change_email_page.dart | 4 +- lib/pages/user/change_mobile_page.dart | 14 +- lib/pages/user/change_password_page.dart | 18 +- lib/pages/user/complete_profile_page.dart | 50 +++-- lib/pages/user/confirm_new_password_page.dart | 18 +- lib/pages/user/edit_account_page.dart | 19 +- .../user/forget_password_method_page.dart | 6 +- lib/pages/user/forget_password_page.dart | 11 +- .../user/login_method_selection_page.dart | 6 +- lib/pages/user/login_verification_page.dart | 6 +- lib/pages/user/login_verify_account_page.dart | 8 +- lib/pages/user/login_with_password_page.dart | 10 +- lib/pages/user/profile/profile_1_page.dart | 26 +-- lib/pages/user/profile/profile_2_page.dart | 10 +- lib/pages/user/profile/profile_3_page.dart | 16 +- lib/pages/user/register_page.dart | 20 +- lib/pages/user/register_selection_page.dart | 12 +- lib/pages/user/splash_page.dart | 6 +- lib/pages/user/vertify_password_page.dart | 10 +- lib/theme/app_theme.dart | 2 +- lib/widgets/txt_field.dart | 3 + pubspec.lock | 9 +- resources/langs/ar-SA.json | 132 ++++++++++++ resources/langs/en-US.json | 94 +++++++++ resources/langs/en.json | 38 ---- 35 files changed, 717 insertions(+), 188 deletions(-) create mode 100644 lib/models/post_params_model.dart create mode 100644 resources/langs/ar-SA.json delete mode 100644 resources/langs/en.json diff --git a/lib/classes/app_state.dart b/lib/classes/app_state.dart index d73e33a..a08c753 100644 --- a/lib/classes/app_state.dart +++ b/lib/classes/app_state.dart @@ -1,3 +1,4 @@ +import 'package:car_provider_app/models/post_params_model.dart'; import 'package:car_provider_app/models/user/user.dart'; class AppState { @@ -18,4 +19,13 @@ class AppState { set setUser(v) => _user = v; User get getUser => _user??User(); + + PostParamsModel? _postParams; + + PostParamsModel? get postParamsObject => _postParams; + + Map get postParamsJson => _postParams?.toJson() ?? {}; + void setPostParamsModel(PostParamsModel _postParams) { + this._postParams = _postParams; + } } diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 1157a89..e22918e 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -14,7 +14,101 @@ class CodegenLoader extends AssetLoader{ return Future.value(mapLocales[locale.toString()]); } - static const Map en = { + static const Map ar_SA = { + "firstTimeLogIn": "تسجيل الدخول لأول مره", + "signUp": "تسجيل دخول", + "changeMobile": "تغيير رقم الجوال", + "notifications": "الاشعارات", + "general": "عام", + "defineLicences": "تحديد الرخص", + "dealershipSettings": "اعدادات البيع", + "changePassword": "تغيير كلمة المرور", + "retrievePassword": "استرجاع كلمة المرور", + "changeEmail": "تغيير الايميل", + "verify": "تحقق", + "signOut": "تسجيل خروج", + "enterEmail": "ادخل الايميل", + "enterNewEmail": "ادخل ايميل جديد", + "enterCurrentPassword": "كلمة المرور الحاليه", + "enterNewPassword": "كلمة المرور الجديده", + "enterOldPassword": "كلمة المرور القديمه", + "confirm": "تأكيد", + "enterNewPhoneNumber": "رقم جوال جديد", + "completeProfile": "الملف الشخصي", + "continu": "استمرار", + "confirmPassword": "تأكيد كلمة المرور", + "createPassword": "انشاء كلمة مرور جديده", + "email": "ايميل", + "firstName": "الأسم الأول *", + "surname": "اسم العائله *", + "confirmPass": "تأكيد كلمة المرور *", + "createPass": "انشاء كلمة مرور جديده *", + "newPassword": " كلمة مرور جديده", + "forgetPassword": "نسيت كلمة المرور", + "editAccount": "تعديل الحساب", + "change": "تغيير", + "verifyAccount": "التحقق من الحساب", + "login": "تسجيل دخول", + "welcomeMessage": "مرحبا", + "forgetPass": "نسيت كلمة المرور ؟", + "enterPhoneNumber": "رقم جوال ", + "phoneNumberVerified": "تم التحقق من الجوال", + "verifyNewPassword": "التحقق من كلمة المرور", + "EnterPass": "ادخل كلمة المرور", + "alreadySigned": " تم تسجيل الدخول", + "emailChangedSuccessfully": "تم تغيير الايميل بنجاح", + "passwordIsUpdated": "تم تحجيث كلمة المرور", + "passwordShouldContains": "كلمة المرور يجب ان تحتوي على رمز رقم حرف كبير حرف صغير", + " successfullyRegistered": "تم التسجيل بنجاح", + "pleaseEnterSamePassword": "ادخل كلمة مرور مطابقه", + "firstNameMandatory": "ادخل الأسم الأول ", + "surnameNameMandatory": "ادخل اسم العائله", + "passwordNameMandatory": "ادخل كلمة المرور", + "enterValidEmail": "ادخل ايميل صحيح", + "pleaseAcceptTerms": "يجب الموافقه على الشروط", + "emailVerified": "تم التحقق من الايميل بنجاح", + "selectMethod": "اختر", + "emailAddress": "ايميل", + "loginSelection": "اختر", + "selectCountryCode": "اختر رمز الدوله", + "selectProviderRole": "اختر نوع الخدمه", + "addPhoneNo": "اضف الهاتف", + "onlyProviderApp": "نأسف هذا التطبيق فقط لمقدمي الخدمات", + "imageUploaded": "تم تحميل الصوره", + "fileLarger": "1KB حجم الملف اكبر من", + "account": "الحساب", + "edit": "تعديل", + "imageDeleted": "تم حذف الصوره", + "dashboard": "الصفحه الرئيسيه", + "pickAddress": "اختر العنوان", + "pickLocation": "اختر الموقع", + "save": "حفظ", + "defineServices": "تحديد الخدمات", + "selectBranch ": "اختر الفرع", + "selectServiceCategory": "اختر فئة الخدمة", + "defineBranches": "تحديد الفروع", + "defineProviders": "تحديد الموفرين", + "closeAccount": "اغلاق الحساب", + "createBranch": "انشاء فرع", + "address": "العنوان", + "branchDescription": "وصف الفرع", + "branchName": "اسم الفرع", + "chooseCity": "اختر المدينه", + "chooseCountry": "اختر الدوله", + "selectAttachment": "اختيار مرفق", + "somethingWrong": "هناك خطأ ما", + "documentsUploaded": "تم ارفاق الملف بنجاح", + "update": "تحديث", + "termsOfService": "من خلال إنشاء حساب فإنك توافق على شروط الخدمة و\n سياسة الخصوصية", + "branchInfo": "معلومات الفرع و الخدمات", + "profileCompleted": "الملف الشخصي مكتمل", + "selectLocationMap": "اختر الموقع", + "licensesAndCertifications": "الرخص و الشهادات", + "completeProfile1": "اكمل الملف الشخصي 1/3", + "completeProfile2": "اكمل الملف الشخصي 2/3", + "completeProfile3": "اكمل الملف الشخصي 3/3", + "userInformation": "User Information", + "provider": "Provider", "title": "Hello", "msg": "Hello {} in the {} world ", "msg_named": "{} are written in the {lang} language", @@ -53,6 +147,100 @@ class CodegenLoader extends AssetLoader{ "reset_locale": "Reset Language" }; static const Map en_US = { + "firstTimeLogIn": "First Time Log In", + "signUp": "Sing Up", + "changeMobile": "Change Mobile", + "notifications": "Notifications", + "general": "General", + "defineLicences": "Define Licences", + "dealershipSettings": "Dealership Settings", + "changePassword": "Change Password", + "retrievePassword": "Retrieve Password", + "changeEmail": "Change Email", + "verify": "Verify", + "signOut": "Sign Out", + "enterEmail": "Enter Email", + "enterNewEmail": "Enter New Email", + "enterNewPassword": "Enter New Password", + "enterCurrentPassword": "Enter Current Password", + "enterOldPassword": "Enter Old Password", + "confirm": "Confirm", + "completeProfile": "Complete Profile", + "enterNewPhoneNumber": "Enter New Phone Number", + "enterPhoneNumber": "Enter Phone Number", + "continu": "Continue", + "confirmPassword": "Confirm Password", + "createPassword": "Create Password", + "email": "Email", + "firstName": "First Name *", + "surname": "Surname *", + "confirmPass": "Confirm Password *", + "createPass": "Create Password *", + "newPassword": "New Password", + "forgetPassword": "Forget Password", + "editAccount": "Edit Account", + "change": "Change", + "verifyAccount": "Verify Account", + "login": "Log In", + "welcomeMessage": "Welcome Message", + "forgetPass": "Forget Password ?", + "phoneNumberVerified": "Phone Number Verified", + "verifyNewPassword": "Verify New Password", + "EnterPass": "Enter Password ?", + "alreadySigned": " Already Signed Up and Logged In", + "emailChangedSuccessfully": "Email is Changed Successfully", + "passwordIsUpdated": "Password is Updated", + "passwordShouldContains": "Password Should contains Character, Number, Capital and small letters,", + " successfullyRegistered": " Successfully Registered, Please login once,", + "pleaseEnterSamePassword": "Please enter same password", + "firstNameMandatory": "First name is mandatory", + "surnameNameMandatory": "Surname is mandatory", + "passwordNameMandatory": "Password is mandatory", + "enterValidEmail": "Enter Valid Email", + "pleaseAcceptTerms": "Please accept terms", + "emailVerified": "Email is verified successfully", + "selectMethod": "Select Method", + "emailAddress": "Email Address", + "loginSelection": "Login Selection", + "selectCountryCode": "Please select Country Code", + "selectProviderRole": "Please select Provider Role", + "addPhoneNo": "Please add Phone No", + "onlyCustomerApp": "Sorry, Only Customer's can log in this app", + "imageUploaded": "Image is uploaded", + "fileLarger": "File is larger then 1KB", + "account": "Account", + "edit": "EDIT", + "imageDeleted": "Image is Deleted", + "dashboard": "Dashboard/Main Page", + "pickAddress": "Pick Address", + "pickLocation": "Pick Location", + "save": "Save", + "defineServices": "Define Services", + "selectBranch ": "Select Branch ", + "selectServiceCategory": "Select Service Category", + "defineBranches": "Define Branches", + "defineProviders": "Define Providers", + "closeAccount": "Close Account", + "createBranch": "Create Branch", + "address": "Address", + "branchDescription": "Branch Description", + "branchName": "Branch Name", + "chooseCity": "Choose City", + "chooseCountry": "Choose Country", + "selectAttachment": "Select Attachment", + "somethingWrong": "Something went wrong", + "documentsUploaded": "Documents uploaded successfully", + "update": "Update", + "termsOfService": "By creating an account you agree to our Terms of Service and\n Privacy Policy", + "branchInfo": "Branch Info and Services", + "profileCompleted": "Profile Completed", + "selectLocationMap": "Select Location Map", + "licensesAndCertifications": "licenses & certifications", + "completeProfile1": "Complete Profile 1/3", + "completeProfile2": "Complete Profile 2/3", + "completeProfile3": "Complete Profile 3/3", + "userInformation": "User Information", + "provider": "Provider", "title": "Hello", "msg": "Hello {} in the {} world ", "msg_named": "{} are written in the {lang} language", @@ -90,5 +278,5 @@ static const Map en_US = { }, "reset_locale": "Reset Language" }; -static const Map> mapLocales = {"en": en, "en_US": en_US}; +static const Map> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; } diff --git a/lib/main.dart b/lib/main.dart index 43ac8f1..f84595c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,6 @@ +import 'package:car_provider_app/classes/app_state.dart'; import 'package:car_provider_app/config/app_provider.dart'; +import 'package:car_provider_app/models/post_params_model.dart'; import 'package:car_provider_app/theme/app_theme.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; @@ -13,16 +15,25 @@ Future main() async { runApp( EasyLocalization( supportedLocales: [ - Locale('en', 'US'), + Locale('ar', 'SA'), + Locale('en', 'US') + ], + fallbackLocale: Locale('ar', 'SA'), path: 'resources/langs', child: MyApp(), ), ); } +// todo terminal command to genertate translation files +// flutter pub run easy_localization:generate --source-dir ./resources/langs +// todo terminal command to genertate translation keys +// flutter pub run easy_localization:generate --source-dir ./resources/langs -f keys -o locale_keys.g.dart +// command to generate languages data from json + class MyApp extends StatelessWidget { - // This widget is the root of your application. +//This widget is the root of your application. MyApp() {} @override @@ -30,8 +41,11 @@ class MyApp extends StatelessWidget { return AppProvider( child: Sizer( builder: (context, orientation, deviceType) { + AppState().setPostParamsModel( + PostParamsModel(languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2,), + ); return MaterialApp( - theme: AppTheme.getTheme(), + theme: AppTheme.getTheme(EasyLocalization.of(context)?.locale.languageCode == "ar"), debugShowCheckedModeBanner: false, localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, @@ -44,3 +58,26 @@ class MyApp extends StatelessWidget { ); } } +// class MyApp extends StatelessWidget { +// // This widget is the root of your application. +// MyApp() {} +// +// @override +// Widget build(BuildContext context) { +// return AppProvider( +// child: Sizer( +// builder: (context, orientation, deviceType) { +// return MaterialApp( +// theme: AppTheme.getTheme(), +// debugShowCheckedModeBanner: false, +// localizationsDelegates: context.localizationDelegates, +// supportedLocales: context.supportedLocales, +// locale: context.locale, +// initialRoute: AppRoutes.initialRoute, +// routes: AppRoutes.routes, +// ); +// }, +// ), +// ); +// } +// } diff --git a/lib/models/post_params_model.dart b/lib/models/post_params_model.dart new file mode 100644 index 0000000..c9e9a72 --- /dev/null +++ b/lib/models/post_params_model.dart @@ -0,0 +1,36 @@ + + +class PostParamsModel { + double? versionID; + int? channel; + int? languageID; + String? mobileType; + String? logInTokenID; + String? tokenID; + + PostParamsModel({this.versionID, this.channel, this.languageID, this.mobileType, this.logInTokenID, this.tokenID}); + + PostParamsModel.fromJson(Map json) { + versionID = json['VersionID']; + channel = json['Channel']; + languageID = json['LanguageID']; + mobileType = json['MobileType']; + logInTokenID = json['LogInTokenID']; + tokenID = json['TokenID']; + } + + Map toJson() { + final Map data = new Map(); + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['LanguageID'] = this.languageID; + data['MobileType'] = this.mobileType; + data['LogInTokenID'] = this.logInTokenID; + data['TokenID'] = this.tokenID; + return data; + } + + set setLogInTokenID(String? token) => logInTokenID = token; + + set setTokenID(String? token) => tokenID = token; +} diff --git a/lib/pages/dashboard/dashboard_page.dart b/lib/pages/dashboard/dashboard_page.dart index 6abd4db..7b1a0bc 100644 --- a/lib/pages/dashboard/dashboard_page.dart +++ b/lib/pages/dashboard/dashboard_page.dart @@ -1,5 +1,6 @@ import 'package:car_provider_app/api/shared_prefrence.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/theme/colors.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/widgets/app_bar.dart'; @@ -7,6 +8,7 @@ import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:image_picker/image_picker.dart'; @@ -54,7 +56,7 @@ class _DashboardPageState extends State { body: Container( child: Container( child: Center( - child: "Dashboard/Main Page".toText24(), + child: LocaleKeys.dashboard.tr().toText24(), ), ), ), @@ -129,7 +131,7 @@ class _DashboardPageState extends State { ), ), ShowFillButton( - title: "EDIT", + title: LocaleKeys.edit.tr(), onPressed: () { navigateWithName(context, AppRoutes.editAccoundPage); }, @@ -139,22 +141,22 @@ class _DashboardPageState extends State { ), ListTile( leading: SvgPicture.asset("assets/images/ic_notification.svg"), - title: "Notifications".toText12(), + title: LocaleKeys.notifications.tr().toText12(), ), ListTile( leading: SvgPicture.asset("assets/images/ic_settings.svg"), - title: "General".toText12(), + title: LocaleKeys.general.tr().toText12(), ), ListTile( leading: SvgPicture.asset("assets/images/ic_notes.svg"), - title: "Define Licenses".toText12(), + title: LocaleKeys.defineLicences.tr().toText12(), onTap: (){ navigateWithName(context, AppRoutes.defineLicense); }, ), ListTile( leading: SvgPicture.asset("assets/images/ic_car.svg"), - title: "Dealership Settings".toText12(), + title: LocaleKeys.dealershipSettings.tr().toText12(), onTap: (){ navigateWithName(context, AppRoutes.dealershipSetting); }, @@ -182,7 +184,7 @@ class _DashboardPageState extends State { // ), ListTile( leading: SvgPicture.asset("assets/images/ic_logout.svg"), - title: "Sign Out".toText12(), + title: LocaleKeys.signOut.tr().toText12(), onTap: () { pop(context); pop(context); diff --git a/lib/pages/location/pick_location_page.dart b/lib/pages/location/pick_location_page.dart index 933d4f9..b341cf1 100644 --- a/lib/pages/location/pick_location_page.dart +++ b/lib/pages/location/pick_location_page.dart @@ -1,7 +1,9 @@ import 'dart:async'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:geocoding/geocoding.dart'; import 'package:geolocator/geolocator.dart'; @@ -54,7 +56,7 @@ class _PickLocationPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text("Pick Location"), + title: Text(LocaleKeys.pickLocation.tr()), ), body: Container( child: Stack( @@ -91,7 +93,7 @@ class _PickLocationPageState extends State { child: Padding( padding: const EdgeInsets.all(12.0), child: ShowFillButton( - title: "Pick Address", + title: LocaleKeys.pickAddress.tr(), onPressed: () { widget.onPickAddress(latitude, longitude, _counter.value); pop(context); diff --git a/lib/pages/settings/create_services_page.dart b/lib/pages/settings/create_services_page.dart index 847f82e..37b7345 100644 --- a/lib/pages/settings/create_services_page.dart +++ b/lib/pages/settings/create_services_page.dart @@ -1,5 +1,6 @@ import 'package:car_provider_app/api/client/branch_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/profile/branch.dart'; import 'package:car_provider_app/models/profile/categroy.dart'; @@ -7,6 +8,7 @@ import 'package:car_provider_app/models/profile/services.dart'; import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; @@ -61,7 +63,7 @@ class _CreateServicesPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text("Define Services"), + title: Text(LocaleKeys.defineServices.tr()), ), body: Container( width: double.infinity, @@ -83,7 +85,7 @@ class _CreateServicesPageState extends State { branchId = value.id; fetchBrancheCategory(); }); - }, list: countryDropList, hint: "Select Branch") + }, list: countryDropList, hint: LocaleKeys.selectBranch.tr()) : CircularProgressIndicator(), 12.height, (category != null) @@ -95,7 +97,7 @@ class _CreateServicesPageState extends State { categoryId = value.id; fetchServices(); }); - }, list: categoryDropList, hint: "Select Service Category") + }, list: categoryDropList, hint: LocaleKeys.selectServiceCategory.tr()) : branchId == -1 ? Container() : CircularProgressIndicator(), @@ -137,7 +139,7 @@ class _CreateServicesPageState extends State { Padding( padding: const EdgeInsets.all(12.0), child: ShowFillButton( - title: "Save", + title: LocaleKeys.save.tr(), width: double.infinity, onPressed: () { createService(); diff --git a/lib/pages/settings/dealership_page.dart b/lib/pages/settings/dealership_page.dart index 76de101..7a9447a 100644 --- a/lib/pages/settings/dealership_page.dart +++ b/lib/pages/settings/dealership_page.dart @@ -1,6 +1,8 @@ import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/utils/navigator.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -9,7 +11,7 @@ class DealershipPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text("Dealership Setting"), + title: Text(LocaleKeys.dealershipSettings.tr()), ), body: Container( width: double.infinity, @@ -18,29 +20,29 @@ class DealershipPage extends StatelessWidget { children: [ ListTile( leading: SvgPicture.asset("assets/icons/ic_settings.svg"), - title: "General".toText12(), + title: LocaleKeys.general.tr().toText12(), ), ListTile( leading: SvgPicture.asset("assets/icons/ic_branchs.svg"), - title: "Define Branches".toText12(), + title: LocaleKeys.defineBranches.tr().toText12(), onTap: () { navigateWithName(context, AppRoutes.defineBranch); }, ), ListTile( leading: SvgPicture.asset("assets/icons/ic_services.svg"), - title: "Define Services".toText12(), + title: LocaleKeys.defineServices.tr().toText12(), onTap: () { navigateWithName(context, AppRoutes.createServices); }, ), ListTile( leading: SvgPicture.asset("assets/icons/ic_provider.svg"), - title: "Define Providers".toText12(), + title: LocaleKeys.defineProviders.tr().toText12(), ), ListTile( leading: SvgPicture.asset("assets/icons/ic_close_account.svg"), - title: "Close Account".toText12(), + title: LocaleKeys.closeAccount.tr().toText12(), ), ], ), diff --git a/lib/pages/settings/define_branch_page.dart b/lib/pages/settings/define_branch_page.dart index b078fcf..756d581 100644 --- a/lib/pages/settings/define_branch_page.dart +++ b/lib/pages/settings/define_branch_page.dart @@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/branch_api_client.dart'; import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/user/cities.dart'; import 'package:car_provider_app/models/user/country.dart'; @@ -10,6 +11,7 @@ import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class DefineBranchPage extends StatefulWidget { @@ -58,7 +60,7 @@ class _DefineBranchPageState extends State { return Scaffold( appBar: AppBar( title: Text( - "Define Branch", + LocaleKeys.defineBranches.tr(), ), ), body: Container( @@ -79,7 +81,7 @@ class _DefineBranchPageState extends State { countryId = value.id; fetchCites(); }); - }, list: countryDropList, hint: "Chosse Country") + }, list: countryDropList, hint: LocaleKeys.chooseCountry.tr()) : CircularProgressIndicator(), 12.height, if (countryId != -1) @@ -89,14 +91,14 @@ class _DefineBranchPageState extends State { // countryCode = value.subValue; cityId = value.id; }); - }, list: citiesDropList, hint: "Chosse City") + }, list: citiesDropList, hint: LocaleKeys.chooseCity.tr()) : CircularProgressIndicator(), 12.height, if (cityId != -1) Column( children: [ TxtField( - hint: "Branch Name", + hint: LocaleKeys.branchName.tr(), value: branchName, onChanged: (v) { branchName = v; @@ -104,7 +106,7 @@ class _DefineBranchPageState extends State { ), 12.height, TxtField( - hint: "Branch Description", + hint: LocaleKeys.branchDescription.tr(), value: branchDescription, onChanged: (v) { branchDescription = v; @@ -112,7 +114,7 @@ class _DefineBranchPageState extends State { ), 12.height, TxtField( - hint: "Address", + hint: LocaleKeys.address.tr(), isNeedClickAll: true, maxLines: 5, value: address, @@ -120,7 +122,7 @@ class _DefineBranchPageState extends State { ), 12.height, ShowFillButton( - title: "Pick Address", + title: LocaleKeys.pickAddress.tr(), onPressed: () { navigateTo( context, @@ -146,7 +148,7 @@ class _DefineBranchPageState extends State { Padding( padding: const EdgeInsets.all(12.0), child: ShowFillButton( - title: "Create Branch", + title: LocaleKeys.createBranch.tr(), onPressed: () async { Utils.showLoading(context); MResponse res = await BranchApiClent().createBranch(branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString()); diff --git a/lib/pages/settings/define_license_page.dart b/lib/pages/settings/define_license_page.dart index 2bbee50..ab82769 100644 --- a/lib/pages/settings/define_license_page.dart +++ b/lib/pages/settings/define_license_page.dart @@ -4,10 +4,12 @@ import 'dart:io'; import 'package:car_provider_app/api/client/profile_api_client.dart'; import 'package:car_provider_app/classes/app_state.dart'; import 'package:car_provider_app/classes/utils.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/profile/document.dart'; import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; @@ -36,7 +38,7 @@ class _DefineLicensePageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text("Define Licenses"), + title: Text(LocaleKeys.defineLicences.tr()), ), body: Container( width: double.infinity, @@ -49,14 +51,14 @@ class _DefineLicensePageState extends State { Padding( padding: const EdgeInsets.all(12.0), child: ShowFillButton( - title: "Update", + title: LocaleKeys.update.tr(), width: double.infinity, onPressed: () { Utils.showLoading(context); ProfileApiClent().serviceProviderDocumentsUpdate(document!.data).then((value) { Utils.hideLoading(context); if (value.messageStatus == 1) { - Utils.showToast("Documents uploaded successfully"); + Utils.showToast(LocaleKeys.documentsUploaded.tr()); } else { Utils.showToast(value.message ?? ""); } @@ -73,14 +75,14 @@ class _DefineLicensePageState extends State { Widget showWidget() { if (document != null) { return document!.data!.length == 0 - ? Text("Something went wrong") + ? Text(LocaleKeys.somethingWrong.tr()) : ListView.separated( itemBuilder: (context, index) { return Row( children: [ Flexible( child: TxtField( - hint: "Select Attachment", + hint: LocaleKeys.selectAttachment.tr(), value: document?.data![index].documentUrl ?? "", isNeedClickAll: true, maxLines: 2, diff --git a/lib/pages/user/change_email_page.dart b/lib/pages/user/change_email_page.dart index 6e19455..8a381c4 100644 --- a/lib/pages/user/change_email_page.dart +++ b/lib/pages/user/change_email_page.dart @@ -4,6 +4,7 @@ import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/change_email.dart'; import 'package:car_provider_app/models/user/confirm_email.dart'; import 'package:car_provider_app/utils/navigator.dart'; @@ -12,6 +13,7 @@ import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'dart:convert'; @@ -97,7 +99,7 @@ class _ChangeEmailPageState extends State { showMDialog( context, child: MessageDialog( - title: "Email is Changed Successfully", + title: LocaleKeys.emailChangedSuccessfully.tr(), onClick: () { Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route route) => false); }, diff --git a/lib/pages/user/change_mobile_page.dart b/lib/pages/user/change_mobile_page.dart index 28fdb03..0a54f6f 100644 --- a/lib/pages/user/change_mobile_page.dart +++ b/lib/pages/user/change_mobile_page.dart @@ -4,6 +4,7 @@ import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/change_mobile.dart'; import 'package:car_provider_app/models/user/confirm_mobile.dart'; import 'package:car_provider_app/utils/navigator.dart'; @@ -12,6 +13,7 @@ import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'dart:convert'; @@ -31,7 +33,7 @@ class _ChangeMobilePageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Change Mobile Number"), + appBar: appBar(title: LocaleKeys.changeMobile.tr()), body: SingleChildScrollView( child: Container( // width: double.infinity, @@ -39,11 +41,11 @@ class _ChangeMobilePageState extends State { padding: EdgeInsets.all(40), child: Column( children: [ - "Enter New Phone Number".toText24(), + LocaleKeys.enterNewPhoneNumber.tr().toText24(), 12.height, TextFormField( decoration: InputDecoration( - hintText: "Enter New Phone Number", + hintText: LocaleKeys.enterNewPhoneNumber.tr(), hintStyle: TextStyle(color: Colors.grey), border: OutlineInputBorder( borderRadius: const BorderRadius.all( @@ -57,7 +59,7 @@ class _ChangeMobilePageState extends State { 12.height, TextFormField( decoration: InputDecoration( - hintText: "Enter Current Password", + hintText: LocaleKeys.enterCurrentPassword.tr(), hintStyle: TextStyle(color: Colors.grey), border: OutlineInputBorder( borderRadius: const BorderRadius.all( @@ -70,7 +72,7 @@ class _ChangeMobilePageState extends State { ), 40.height, ShowFillButton( - title: "Confirm", + title: LocaleKeys.confirm.tr(), width: double.infinity, onPressed: () { changeMobile(context); @@ -98,7 +100,7 @@ class _ChangeMobilePageState extends State { showMDialog( context, child: MessageDialog( - title: "Phone Number Verified", + title:LocaleKeys.phoneNumberVerified.tr(), onClick: () { Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route route) => false); }, diff --git a/lib/pages/user/change_password_page.dart b/lib/pages/user/change_password_page.dart index 1f67227..720c8e8 100644 --- a/lib/pages/user/change_password_page.dart +++ b/lib/pages/user/change_password_page.dart @@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/change_password.dart'; import 'package:car_provider_app/models/user/confirm_password.dart'; import 'package:car_provider_app/utils/navigator.dart'; @@ -13,6 +14,7 @@ import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'dart:convert'; @@ -34,7 +36,7 @@ class _ChangePasswordPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Change Password"), + appBar: appBar(title: LocaleKeys.changePassword.tr()), body: SingleChildScrollView( child: Container( // width: double.infinity, @@ -42,11 +44,11 @@ class _ChangePasswordPageState extends State { padding: EdgeInsets.all(40), child: Column( children: [ - "Enter New Password".toText24(), + LocaleKeys.enterNewPassword.tr().toText24(), 12.height, TextFormField( decoration: InputDecoration( - hintText: "Enter Old Password", + hintText: LocaleKeys.enterOldPassword.tr(), hintStyle: TextStyle(color: Colors.grey), border: OutlineInputBorder( borderRadius: const BorderRadius.all( @@ -60,7 +62,7 @@ class _ChangePasswordPageState extends State { 12.height, TextFormField( decoration: InputDecoration( - hintText: "Enter New Password", + hintText: LocaleKeys.enterNewPassword.tr(), hintStyle: TextStyle(color: Colors.grey), border: OutlineInputBorder( borderRadius: const BorderRadius.all( @@ -73,7 +75,7 @@ class _ChangePasswordPageState extends State { ), 40.height, ShowFillButton( - title: "Confirm", + title: LocaleKeys.confirm.tr(), width: double.infinity, onPressed: () { changePassword(context); @@ -92,7 +94,8 @@ class _ChangePasswordPageState extends State { MResponse res = await UserApiClent().ChangePassword(currentPasswor, newPassword); Utils.hideLoading(context); if (res.messageStatus == 1) { - Utils.showToast("Password is Updated"); + Utils.showToast(LocaleKeys.passwordIsUpdated.tr()); + //("Password is Updated"); // navigateWithName(context, AppRoutes.loginWithPassword); Navigator.of(context) .pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route route) => false); @@ -100,7 +103,8 @@ class _ChangePasswordPageState extends State { Utils.showToast(res.message ?? ""); } } else { - Utils.showToast("Password Should contains Character, Number, Capital and small letters"); + Utils.showToast(LocaleKeys.passwordShouldContains.tr()); + //("Password Should contains Character, Number, Capital and small letters"); } } diff --git a/lib/pages/user/complete_profile_page.dart b/lib/pages/user/complete_profile_page.dart index 3ac4385..7885e35 100644 --- a/lib/pages/user/complete_profile_page.dart +++ b/lib/pages/user/complete_profile_page.dart @@ -1,6 +1,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/register_user.dart'; @@ -15,6 +16,7 @@ import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class CompleteProfilePage extends StatefulWidget { @@ -39,7 +41,7 @@ class _CompleteProfilePageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Sign Up"), + appBar: appBar(title: LocaleKeys.signUp.tr(),), body: Container( width: double.infinity, height: double.infinity, @@ -48,11 +50,11 @@ class _CompleteProfilePageState extends State { padding: EdgeInsets.all(20), child: Column( children: [ - "Complete Profile".toText24(), + LocaleKeys.completeProfile.tr().toText24(), 12.height, TxtField( - hint: "First Name *", + hint: LocaleKeys.firstName.tr(), value: firstName, onChanged: (v) { firstName = v; @@ -60,7 +62,7 @@ class _CompleteProfilePageState extends State { ), 12.height, TxtField( - hint: "Surname *", + hint: LocaleKeys.surname.tr(), value: lastName, onChanged: (v) { lastName = v; @@ -68,17 +70,17 @@ class _CompleteProfilePageState extends State { ), 12.height, TxtField( - hint: "Email", + hint: LocaleKeys.email.tr(), value: email, // isButtonEnable: email!.length > 0 ? true : false, - buttonTitle: "Verify", + buttonTitle: LocaleKeys.verify.tr(), onChanged: (v) { email = v; }, ), 12.height, TxtField( - hint: "Create Password *", + hint: LocaleKeys.createPass.tr(), isPasswordEnabled: true, maxLines: 1, value: password, @@ -88,7 +90,7 @@ class _CompleteProfilePageState extends State { ), 12.height, TxtField( - hint: "Confirm Password *", + hint: LocaleKeys.confirmPass.tr(), isPasswordEnabled: true, maxLines: 1, value: confirmPassword, @@ -104,12 +106,12 @@ class _CompleteProfilePageState extends State { Row( children: [ buildCheckbox(), - "By creating an account you agree to our Terms of Service and\n Privacy Policy".toText12(), + LocaleKeys.termsOfService.tr().toText12(), ], ), 16.height, ShowFillButton( - title: "Continue", + title: LocaleKeys.continu.tr(), width: double.infinity, onPressed: () { if (validation()) performCompleteProfile(); @@ -165,17 +167,20 @@ class _CompleteProfilePageState extends State { RegisterUser user = await UserApiClent().basicComplete(widget.user.data?.userId ?? "", firstName!, lastName!, email!, password!); Utils.hideLoading(context); if (user.messageStatus == 1) { - Utils.showToast("Successfully Registered, Please login once"); + Utils.showToast(LocaleKeys.successfullyRegistered.tr(),); + //("Successfully Registered, Please login once"); pop(context); // navigateReplaceWithName(context, AppRoutes.dashboard,arguments: user); } else { Utils.showToast(user.message ?? ""); } } else { - Utils.showToast("Please enter same password"); + Utils.showToast(LocaleKeys.pleaseEnterSamePassword.tr(),); + //("Please enter same password"); } } else { - Utils.showToast("Password Should contains Character, Number, Capital and small letters"); + Utils.showToast(LocaleKeys.passwordShouldContains.tr(),); + //("Password Should contains Character, Number, Capital and small letters"); } } @@ -194,18 +199,29 @@ class _CompleteProfilePageState extends State { bool validation() { bool isValid = true; if (firstName!.isEmpty) { - Utils.showToast("First name is mandatory"); + Utils.showToast(LocaleKeys.firstNameMandatory.tr()); + //("First name is mandatory"); isValid = false; } else if (lastName!.isEmpty) { - Utils.showToast("Surname is mandatory"); + Utils.showToast(LocaleKeys.surnameNameMandatory.tr()); + //("Surname is mandatory"); isValid = false; + }else if (email!.isNotEmpty) { + if(!isEmail(email!)){ + Utils.showToast(LocaleKeys.enterValidEmail.tr()); + //("Enter Valid Email"); + isValid = false; + } } else if (password!.isEmpty) { - Utils.showToast("Password is mandatory"); + Utils.showToast(LocaleKeys.passwordNameMandatory.tr()); + //("Password is mandatory"); isValid = false; } else if (!isChecked) { - Utils.showToast("Please accept terms"); + Utils.showToast(LocaleKeys.pleaseAcceptTerms.tr()); + //("Please accept terms"); isValid = false; } return isValid; } + } diff --git a/lib/pages/user/confirm_new_password_page.dart b/lib/pages/user/confirm_new_password_page.dart index 85c9500..f08b171 100644 --- a/lib/pages/user/confirm_new_password_page.dart +++ b/lib/pages/user/confirm_new_password_page.dart @@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/confirm_password.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/utils.dart'; @@ -12,6 +13,7 @@ import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'dart:convert'; @@ -33,7 +35,7 @@ class _ConfirmNewPasswordPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Forget Password"), + appBar: appBar(title:LocaleKeys.forgetPassword.tr()), body: SingleChildScrollView( child: Container( // width: double.infinity, @@ -41,11 +43,11 @@ class _ConfirmNewPasswordPageState extends State { padding: EdgeInsets.all(40), child: Column( children: [ - "New Password".toText24(), + LocaleKeys.newPassword.tr().toText24(), 12.height, TextFormField( decoration: InputDecoration( - hintText: "Enter New Password", + hintText: LocaleKeys.enterNewPassword.tr(), hintStyle: TextStyle(color: Colors.grey), border: OutlineInputBorder( borderRadius: const BorderRadius.all( @@ -59,7 +61,7 @@ class _ConfirmNewPasswordPageState extends State { 12.height, TextFormField( decoration: InputDecoration( - hintText: "Confirm Password", + hintText: LocaleKeys.confirmPassword.tr(), hintStyle: TextStyle(color: Colors.grey), border: OutlineInputBorder( borderRadius: const BorderRadius.all( @@ -72,7 +74,7 @@ class _ConfirmNewPasswordPageState extends State { ), 40.height, ShowFillButton( - title: "Confirm", + title: LocaleKeys.confirm.tr(), width: double.infinity, onPressed: () { if (validation()) confirmPasswordOTP(context); @@ -92,13 +94,15 @@ class _ConfirmNewPasswordPageState extends State { Utils.hideLoading(context); ConfirmPassword data = ConfirmPassword.fromJson(jsonDecode(res.body)); if (data.messageStatus == 1) { - Utils.showToast("Password is Updated"); + Utils.showToast(LocaleKeys.passwordIsUpdated.tr()); + //("Password is Updated"); navigateWithName(context, AppRoutes.loginWithPassword); } else { Utils.showToast(data.message ?? ""); } }else{ - Utils.showToast("Password Should contains Character, Number, Capital and small letters"); + Utils.showToast(LocaleKeys.passwordShouldContains.tr()); + //("Password Should contains Character, Number, Capital and small letters"); } } diff --git a/lib/pages/user/edit_account_page.dart b/lib/pages/user/edit_account_page.dart index be42da7..dee4c29 100644 --- a/lib/pages/user/edit_account_page.dart +++ b/lib/pages/user/edit_account_page.dart @@ -8,6 +8,7 @@ import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/user/verify_email.dart'; import 'package:car_provider_app/models/user/verify_email_otp.dart'; @@ -16,6 +17,7 @@ import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -33,7 +35,7 @@ class _EditAccountPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Edit Account"), + appBar: appBar(title: LocaleKeys.editAccount.tr()), body: Container( width: double.infinity, height: double.infinity, @@ -43,7 +45,7 @@ class _EditAccountPageState extends State { 20.height, ListTile( leading: SvgPicture.asset("assets/images/ic_lock.svg"), - title: "Change Password".toText12(), + title: LocaleKeys.changePassword.tr().toText12(), onTap: (){ navigateWithName(context, AppRoutes.changePassword); }, @@ -53,13 +55,13 @@ class _EditAccountPageState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ SvgPicture.asset("assets/images/ic_mobile.svg"), - "Change Mobile".toText12(), - "Verify".toText12(), + LocaleKeys.changeMobile.tr().toText12(), + LocaleKeys.verify.tr().toText12(), RaisedButton( onPressed: (){ navigateWithName(context, AppRoutes.changeMobilePage); }, - child: Text("Change", + child: Text(LocaleKeys.change.tr(), style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600,),),color:Colors.blue, textColor: Colors.white, @@ -72,7 +74,7 @@ class _EditAccountPageState extends State { mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Icon(Icons.email, color: Colors.blue,), - "Change Email".toText12(), + LocaleKeys.changeEmail.tr().toText12(), InkWell( child:((AppState().getUser.data!.userInfo!.isEmailVerified??false)?"Verified" :"Verify").toText12(), onTap: @@ -86,7 +88,7 @@ class _EditAccountPageState extends State { onPressed: (){ navigateWithName(context, AppRoutes.changeEmailPage); }, - child: Text("Change", + child: Text(LocaleKeys.change.tr(), style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600,),),color:Colors.blue, textColor: Colors.white, @@ -131,7 +133,8 @@ class _EditAccountPageState extends State { AppState().getUser.data!.userInfo!.isEmailVerified=true; setState(() { }); - Utils.showToast("Email is verified successfully"); + Utils.showToast(LocaleKeys.emailVerified.tr()); + //("Email is verified successfully"); // Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.dashboard, (Route route) => false); // showMDialog( // context, diff --git a/lib/pages/user/forget_password_method_page.dart b/lib/pages/user/forget_password_method_page.dart index e9be135..8767d37 100644 --- a/lib/pages/user/forget_password_method_page.dart +++ b/lib/pages/user/forget_password_method_page.dart @@ -8,6 +8,7 @@ import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/utils.dart'; @@ -15,6 +16,7 @@ import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/button/show_image_button.dart'; import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; @@ -34,14 +36,14 @@ class _ForgetPasswordMethodPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Forget Password"), + appBar: appBar(title: LocaleKeys.forgetPassword.tr()), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ - "Select Method".toText24(), + LocaleKeys.selectMethod.tr().toText24(), 12.height, Row( children: [ diff --git a/lib/pages/user/forget_password_page.dart b/lib/pages/user/forget_password_page.dart index f0e5bbb..4e59ecf 100644 --- a/lib/pages/user/forget_password_page.dart +++ b/lib/pages/user/forget_password_page.dart @@ -4,6 +4,7 @@ import 'package:car_provider_app/api/shared_prefrence.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; import 'package:car_provider_app/models/user/forget_password_otp_request.dart'; @@ -22,6 +23,7 @@ import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/widgets/tab/login_email_tab.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:car_provider_app/models/user/user.dart'; @@ -58,7 +60,7 @@ class _ForgetPasswordPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Change Password"), + appBar: appBar(title: LocaleKeys.changePassword.tr()), body: Container( width: double.infinity, height: double.infinity, @@ -74,7 +76,7 @@ class _ForgetPasswordPageState extends State { }, ), 50.height, - "Retrieve Password".toText24(), + LocaleKeys.retrievePassword.tr().toText24(), 12.height, type == ClassType.NUMBER ? Column(children: [ getCountry(), @@ -84,9 +86,10 @@ class _ForgetPasswordPageState extends State { onChanged: (v) { userName = v; }, + keyboardType: TextInputType.number, ) ],) : TxtField( - hint: "Email Address", + hint: LocaleKeys.emailAddress.tr(), value: userName, onChanged: (v) { userName = v; @@ -94,7 +97,7 @@ class _ForgetPasswordPageState extends State { ), 50.height, ShowFillButton( - title: "Continue", + title: LocaleKeys.continu.tr(), width: double.infinity, onPressed: () { if (userName.isNum()&& type==ClassType.NUMBER) { diff --git a/lib/pages/user/login_method_selection_page.dart b/lib/pages/user/login_method_selection_page.dart index e477b12..cc4d6b5 100644 --- a/lib/pages/user/login_method_selection_page.dart +++ b/lib/pages/user/login_method_selection_page.dart @@ -6,6 +6,7 @@ import 'package:car_provider_app/classes/app_state.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/login_password.dart'; import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/user.dart'; @@ -20,6 +21,7 @@ import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; @@ -31,14 +33,14 @@ class LoginMethodSelectionPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Log In"), + appBar: appBar(title: LocaleKeys.login.tr()), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ - "Login Selection".toText24(), + LocaleKeys.loginSelection.tr().toText24(), mFlex(2), Row( children: [ diff --git a/lib/pages/user/login_verification_page.dart b/lib/pages/user/login_verification_page.dart index b217367..389f203 100644 --- a/lib/pages/user/login_verification_page.dart +++ b/lib/pages/user/login_verification_page.dart @@ -6,6 +6,7 @@ import 'package:car_provider_app/classes/app_state.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/login_password.dart'; import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/user.dart'; @@ -20,6 +21,7 @@ import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; @@ -86,14 +88,14 @@ class _LoginVerificationPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Log In"), + appBar: appBar(title: LocaleKeys.login.tr()), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ - "Verify Account".toText24(), + LocaleKeys.verifyAccount.tr().toText24(), mFlex(2), Row( children: [ diff --git a/lib/pages/user/login_verify_account_page.dart b/lib/pages/user/login_verify_account_page.dart index ec1aee3..b99203a 100644 --- a/lib/pages/user/login_verify_account_page.dart +++ b/lib/pages/user/login_verify_account_page.dart @@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/utils/navigator.dart'; @@ -15,6 +16,7 @@ import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class LoginVerifyAccountPage extends StatelessWidget { @@ -24,14 +26,14 @@ class LoginVerifyAccountPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Log In"), + appBar: appBar(title: LocaleKeys.login.tr()), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ - "Verify Account".toText24(), + LocaleKeys.verifyAccount.tr().toText24(), mFlex(1), TxtField( hint: "966501234567", @@ -125,7 +127,7 @@ class LoginVerifyAccountPage extends StatelessWidget { showMDialog( context, child: MessageDialog( - title: "Phone Number Verified", + title: LocaleKeys.phoneNumberVerified.tr(), onClick: () { pop(context); navigateWithName(context, AppRoutes.profile1,arguments: user); diff --git a/lib/pages/user/login_with_password_page.dart b/lib/pages/user/login_with_password_page.dart index 9ec5d43..5ea3274 100644 --- a/lib/pages/user/login_with_password_page.dart +++ b/lib/pages/user/login_with_password_page.dart @@ -5,6 +5,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/login_password.dart'; import 'package:car_provider_app/models/user/register_user.dart'; @@ -21,6 +22,7 @@ import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/tab/login_email_tab.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; @@ -41,7 +43,7 @@ class _LoginWithPasswordState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Log In"), + appBar: appBar(title: LocaleKeys.login.tr()), body: Container( width: double.infinity, height: double.infinity, @@ -69,7 +71,7 @@ class _LoginWithPasswordState extends State { ), 12.height, TxtField( - hint: "Enter Password?", + hint: LocaleKeys.EnterPass.tr(), value: password, isPasswordEnabled: true, maxLines: 1, @@ -83,14 +85,14 @@ class _LoginWithPasswordState extends State { Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - "Forget Password".toText12(color: Colors.blue).onPress(() { + LocaleKeys.forgetPassword.tr().toText12(color: Colors.blue).onPress(() { navigateWithName(context, AppRoutes.forgetPassword); }), ], ), 50.height, ShowFillButton( - title: "Log In", + title: LocaleKeys.login.tr(), width: double.infinity, onPressed: () { performBasicOtp(context); diff --git a/lib/pages/user/profile/profile_1_page.dart b/lib/pages/user/profile/profile_1_page.dart index 6e87758..fec7ce4 100644 --- a/lib/pages/user/profile/profile_1_page.dart +++ b/lib/pages/user/profile/profile_1_page.dart @@ -1,17 +1,19 @@ import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/extensions/int_extensions.dart'; import 'package:car_provider_app/widgets/extensions/string_extensions.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class Profile1Page extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Sign Up"), + appBar: appBar(title: LocaleKeys.signUp.tr()), body: Container( width: double.infinity, height: double.infinity, @@ -20,41 +22,41 @@ class Profile1Page extends StatelessWidget { padding: EdgeInsets.all(40), child: Column( children: [ - "Complete Profile 1/3".toText16(), - "User Information".toText14(), + LocaleKeys.completeProfile1.tr().toText16(), + LocaleKeys.userInformation.tr().toText14(), 12.height, TxtField( - hint: "Provider", + hint: LocaleKeys.provider.tr(), ), 12.height, TxtField( - hint: "First Name", + hint: LocaleKeys.firstName.tr(), ), 12.height, TxtField( - hint: "Surname", + hint:LocaleKeys.surname.tr(), ), 12.height, TxtField( - hint: "Email", + hint: LocaleKeys.email.tr(), ), 12.height, TxtField( - hint: "Create Password", + hint: LocaleKeys.createPassword.tr(), ), 12.height, TxtField( - hint: "Confirm Password", + hint:LocaleKeys.confirmPassword.tr(), ), 12.height, TxtField( - hint: "Phone Number", + hint: LocaleKeys.enterPhoneNumber.tr(), ), 50.height, - "By creating an account you agree to our Terms of Service and Privacy Policy".toText14(), + LocaleKeys.termsOfService.tr().toText14(), 16.height, ShowFillButton( - title: "Continue", + title: LocaleKeys.continu.tr(), width: double.infinity, onPressed: () { navigateWithName(context, AppRoutes.profile2); diff --git a/lib/pages/user/profile/profile_2_page.dart b/lib/pages/user/profile/profile_2_page.dart index 3fd99ee..324d449 100644 --- a/lib/pages/user/profile/profile_2_page.dart +++ b/lib/pages/user/profile/profile_2_page.dart @@ -1,4 +1,5 @@ import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/widgets/app_bar.dart'; @@ -6,13 +7,14 @@ import 'package:car_provider_app/widgets/extensions/int_extensions.dart'; import 'package:car_provider_app/widgets/extensions/string_extensions.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class Profile2Page extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Sign Up"), + appBar: appBar(title: LocaleKeys.signUp.tr()), body: Container( width: double.infinity, height: double.infinity, @@ -21,8 +23,8 @@ class Profile2Page extends StatelessWidget { padding: EdgeInsets.all(40), child: Column( children: [ - "Complete Profile 2/3".toText16(), - "licenses & certificatoins".toText14(), + LocaleKeys.completeProfile2.tr().toText16(), + LocaleKeys.licensesAndCertifications.tr().toText14(), 12.height, TxtField( hint: "Commercial Record N.O", @@ -44,7 +46,7 @@ class Profile2Page extends StatelessWidget { ), 30.height, ShowFillButton( - title: "Save", + title: LocaleKeys.save.tr(), width: double.infinity, onPressed: () { navigateWithName(context, AppRoutes.profile3); diff --git a/lib/pages/user/profile/profile_3_page.dart b/lib/pages/user/profile/profile_3_page.dart index 2acb565..135528d 100644 --- a/lib/pages/user/profile/profile_3_page.dart +++ b/lib/pages/user/profile/profile_3_page.dart @@ -1,3 +1,4 @@ +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; @@ -6,13 +7,14 @@ import 'package:car_provider_app/widgets/extensions/int_extensions.dart'; import 'package:car_provider_app/widgets/extensions/string_extensions.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class Profile3Page extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Sign Up"), + appBar: appBar(title: LocaleKeys.signUp.tr()), body: Container( width: double.infinity, height: double.infinity, @@ -22,8 +24,8 @@ class Profile3Page extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - "Complete Profile 3/3".toText16(), - "Branch Info and Services".toText14(), + LocaleKeys.completeProfile3.tr().toText16(), + LocaleKeys.branchInfo.tr().toText14(), 12.height, // DropdownField( // hint: "Country", @@ -34,21 +36,21 @@ class Profile3Page extends StatelessWidget { // ), 12.height, TxtField( - hint: "Address", + hint: LocaleKeys.address.tr(), maxLines: 5, ), 12.height, - "Select Location Map".toText14(), + LocaleKeys.selectLocationMap.tr().toText14(), 12.height, Image.asset("assets/images/bn_map.png"), 50.height, ShowFillButton( - title: "Save", + title: LocaleKeys.save.tr(), width: double.infinity, onPressed: () { showMDialog(context, child: MessageDialog( - title: "Profile Completed", + title: LocaleKeys.profileCompleted.tr(), )); }, ), diff --git a/lib/pages/user/register_page.dart b/lib/pages/user/register_page.dart index 6e4d968..d3c6af6 100644 --- a/lib/pages/user/register_page.dart +++ b/lib/pages/user/register_page.dart @@ -2,6 +2,7 @@ import 'package:car_provider_app/api/api_client.dart'; import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/models/user/register_user.dart'; @@ -18,6 +19,7 @@ import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class RegisterPage extends StatelessWidget { @@ -27,14 +29,14 @@ class RegisterPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Sign Up"), + appBar: appBar(title: LocaleKeys.signUp.tr()), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ - "Enter Phone Number".toText24(), + LocaleKeys.enterPhoneNumber.tr().toText24(), 12.height, FutureBuilder( future: UserApiClent().getRoles(), @@ -71,14 +73,15 @@ class RegisterPage extends StatelessWidget { }, ), TxtField( - hint: "Enter Phone number to Register", + hint:LocaleKeys.enterPhoneNumber.tr(), + //"Enter Phone number to Register", onChanged: (v) { phoneNum = v; }, ), 50.height, ShowFillButton( - title: "Continue", + title: LocaleKeys.continu.tr(), width: double.infinity, onPressed: () { if (validation()) performBasicOtp(context); @@ -117,13 +120,16 @@ class RegisterPage extends StatelessWidget { bool validation() { bool isValid = true; if (role == -1) { - Utils.showToast("Please select Provider Role"); + Utils.showToast(LocaleKeys.selectProviderRole.tr()); + //("Please select Provider Role"); isValid = false; } else if (countryCode.isEmpty) { - Utils.showToast("Please select Country Code"); + Utils.showToast(LocaleKeys.selectCountryCode.tr()); + //("Please select Country Code"); isValid = false; } else if (phoneNum.isEmpty) { - Utils.showToast("Please add Phone No"); + Utils.showToast(LocaleKeys.addPhoneNo.tr()); + //("Please add Phone No"); isValid = false; } return isValid; diff --git a/lib/pages/user/register_selection_page.dart b/lib/pages/user/register_selection_page.dart index 337502b..81e5222 100644 --- a/lib/pages/user/register_selection_page.dart +++ b/lib/pages/user/register_selection_page.dart @@ -1,4 +1,5 @@ import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/widgets/app_bar.dart'; @@ -6,23 +7,24 @@ import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class RegisterSelectionPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Log In"), + appBar: appBar(title: LocaleKeys.login.tr()), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ - "Welcome Message".toText24(), + LocaleKeys.welcomeMessage.tr().toText24(), mFlex(1), ShowFillButton( - title: "Log In", + title: LocaleKeys.login.tr(), // title: "Log In With Password", width: double.infinity, onPressed: () { @@ -39,7 +41,7 @@ class RegisterSelectionPage extends StatelessWidget { // ), 20.height, ShowFillButton( - title: "Sign Up", + title: LocaleKeys.signUp.tr(), width: double.infinity, onPressed: () { navigateWithName(context, AppRoutes.register); @@ -47,7 +49,7 @@ class RegisterSelectionPage extends StatelessWidget { ), 20.height, ShowFillButton( - title: "Forget Password", + title: LocaleKeys.forgetPassword.tr(), width: double.infinity, onPressed: () { navigateWithName(context, AppRoutes.forgetPassword); diff --git a/lib/pages/user/splash_page.dart b/lib/pages/user/splash_page.dart index 6881d73..3dc39f7 100644 --- a/lib/pages/user/splash_page.dart +++ b/lib/pages/user/splash_page.dart @@ -2,9 +2,11 @@ import 'dart:async'; import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/extensions/string_extensions.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; class SplashPage extends StatelessWidget { @@ -19,11 +21,11 @@ class SplashPage extends StatelessWidget { mFlex(5), "Logo".toText(fontSize: 45, isBold: true), mFlex(3), - "First Time Log In".toText(fontSize: 18, isBold: true).onPress(() { + LocaleKeys.firstTimeLogIn.tr().toText(fontSize: 18, isBold: true).onPress(() { navigateWithName(context, AppRoutes.registerSelection); }), mFlex(1), - "Already Signed Up and Logged In".toText(fontSize: 18, isBold: true).onPress(() { + LocaleKeys.alreadySigned.tr().toText(fontSize: 18, isBold: true).onPress(() { navigateWithName(context, AppRoutes.loginVerification); }), mFlex(5), diff --git a/lib/pages/user/vertify_password_page.dart b/lib/pages/user/vertify_password_page.dart index 8edca89..9f72965 100644 --- a/lib/pages/user/vertify_password_page.dart +++ b/lib/pages/user/vertify_password_page.dart @@ -3,6 +3,7 @@ import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/routes.dart'; +import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; import 'package:car_provider_app/models/user/forget_password_otp_request.dart'; import 'package:car_provider_app/utils/navigator.dart'; @@ -16,6 +17,7 @@ import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; +import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; @@ -31,14 +33,14 @@ class VerifyPasswordPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: appBar(title: "Change Password"), + appBar: appBar(title: LocaleKeys.changePassword.tr()), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(40), child: Column( children: [ - "Verify New Password".toText24(), + LocaleKeys.verifyNewPassword.tr().toText24(), mFlex(1), TxtField( hint: "966500000000", @@ -62,7 +64,7 @@ class VerifyPasswordPage extends StatelessWidget { (value) => showMDialog( context, child: MessageDialog( - title: "Phone Number Verified", + title: LocaleKeys.phoneNumberVerified.tr(), onClick: () { otpType=1; navigateWithName(context, AppRoutes.confirmNewPasswordPage); @@ -91,7 +93,7 @@ class VerifyPasswordPage extends StatelessWidget { (value) => showMDialog( context, child: MessageDialog( - title: "Phone Number Verified", + title: LocaleKeys.phoneNumberVerified.tr(), onClick: () { otpType=2; navigateWithName(context, AppRoutes.confirmNewPasswordPage); diff --git a/lib/theme/app_theme.dart b/lib/theme/app_theme.dart index 5202825..cd246a3 100644 --- a/lib/theme/app_theme.dart +++ b/lib/theme/app_theme.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'colors.dart'; class AppTheme { - static getTheme() => ThemeData( + static getTheme(isArabic) => ThemeData( // This is the theme of your application. // // Try running your application with "flutter run". You'll see the diff --git a/lib/widgets/txt_field.dart b/lib/widgets/txt_field.dart index 37e6bbe..ee4bb1b 100644 --- a/lib/widgets/txt_field.dart +++ b/lib/widgets/txt_field.dart @@ -23,6 +23,7 @@ class TxtField extends StatelessWidget { bool isNeedBorder; bool? isPasswordEnabled; Function(String)? onChanged; + TextInputType? keyboardType; TxtField({ @@ -42,6 +43,7 @@ class TxtField extends StatelessWidget { this.isNeedBorder=true, this.onChanged, this.isPasswordEnabled, + this.keyboardType, }); @override @@ -62,6 +64,7 @@ class TxtField extends StatelessWidget { elevation: elevation, margin: isSidePaddingZero?EdgeInsets.zero:null, child: TextField( + keyboardType: TextInputType.number, autofocus: false, controller: controller, enabled: isNeedClickAll == true ? false : true, diff --git a/pubspec.lock b/pubspec.lock index c2b3b93..caa035b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -301,13 +301,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.11" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.3" meta: dependency: transitive description: @@ -578,7 +571,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.8" + version: "0.4.3" typed_data: dependency: transitive description: diff --git a/resources/langs/ar-SA.json b/resources/langs/ar-SA.json new file mode 100644 index 0000000..1931ef9 --- /dev/null +++ b/resources/langs/ar-SA.json @@ -0,0 +1,132 @@ +{ + "firstTimeLogIn": "تسجيل الدخول لأول مره", + "signUp": "تسجيل دخول", + "changeMobile": "تغيير رقم الجوال", + "notifications": "الاشعارات", + "general": "عام", + "defineLicences": "تحديد الرخص", + "dealershipSettings": "اعدادات البيع", + "changePassword": "تغيير كلمة المرور", + "retrievePassword" : "استرجاع كلمة المرور", + "changeEmail": "تغيير الايميل", + "verify": "تحقق", + "signOut": "تسجيل خروج", + "enterEmail": "ادخل الايميل", + "enterNewEmail": "ادخل ايميل جديد", + "enterCurrentPassword": "كلمة المرور الحاليه", + "enterNewPassword": "كلمة المرور الجديده", + "enterOldPassword": "كلمة المرور القديمه", + "confirm": "تأكيد", + "enterNewPhoneNumber": "رقم جوال جديد", + "completeProfile": "الملف الشخصي", + "continu": "استمرار", + "confirmPassword": "تأكيد كلمة المرور", + "createPassword": "انشاء كلمة مرور جديده", + "email": "ايميل", + "firstName": "الأسم الأول *", + "surname": "اسم العائله *", + "confirmPass": "تأكيد كلمة المرور *", + "createPass": "انشاء كلمة مرور جديده *", + "newPassword": " كلمة مرور جديده", + "forgetPassword": "نسيت كلمة المرور", + "editAccount": "تعديل الحساب", + "change": "تغيير", + "verifyAccount": "التحقق من الحساب", + "login" : "تسجيل دخول", + "welcomeMessage" : "مرحبا", + "forgetPass": "نسيت كلمة المرور ؟", + "enterPhoneNumber": "رقم جوال ", + "phoneNumberVerified": "تم التحقق من الجوال", + "verifyNewPassword": "التحقق من كلمة المرور", + "EnterPass": "ادخل كلمة المرور", + "alreadySigned": " تم تسجيل الدخول", + "emailChangedSuccessfully": "تم تغيير الايميل بنجاح", + "passwordIsUpdated" : "تم تحجيث كلمة المرور", + "passwordShouldContains" : "كلمة المرور يجب ان تحتوي على رمز رقم حرف كبير حرف صغير", + " successfullyRegistered": "تم التسجيل بنجاح", + "pleaseEnterSamePassword" : "ادخل كلمة مرور مطابقه", + "firstNameMandatory" : "ادخل الأسم الأول ", + "surnameNameMandatory" : "ادخل اسم العائله", + "passwordNameMandatory" : "ادخل كلمة المرور", + "enterValidEmail" : "ادخل ايميل صحيح", + "pleaseAcceptTerms" : "يجب الموافقه على الشروط", + "emailVerified" : "تم التحقق من الايميل بنجاح", + "selectMethod" : "اختر", + "emailAddress" : "ايميل", + "loginSelection" : "اختر", + "selectCountryCode" : "اختر رمز الدوله", + "selectProviderRole" : "اختر نوع الخدمه", + "addPhoneNo" : "اضف الهاتف", + "onlyProviderApp": "نأسف هذا التطبيق فقط لمقدمي الخدمات", + "imageUploaded" : "تم تحميل الصوره", + "fileLarger" : "1KB حجم الملف اكبر من", + "account" : "الحساب", + "edit" : "تعديل", + "imageDeleted" : "تم حذف الصوره", + "dashboard" : "الصفحه الرئيسيه", + "pickAddress" : "اختر العنوان", + "pickLocation" : "اختر الموقع", + "save" : "حفظ", + "defineServices" : "تحديد الخدمات", + "selectBranch " : "اختر الفرع", + "selectServiceCategory" : "اختر فئة الخدمة", + "defineBranches" : "تحديد الفروع", + "defineProviders":"تحديد الموفرين", + "closeAccount": "اغلاق الحساب", + "createBranch" : "انشاء فرع", + "address": "العنوان", + "branchDescription": "وصف الفرع", + "branchName": "اسم الفرع", + "chooseCity": "اختر المدينه", + "chooseCountry": "اختر الدوله", + "selectAttachment":"اختيار مرفق", + "somethingWrong" : "هناك خطأ ما", + "documentsUploaded" : "تم ارفاق الملف بنجاح", + "update": "تحديث", + "termsOfService":"من خلال إنشاء حساب فإنك توافق على شروط الخدمة و\n سياسة الخصوصية", + "branchInfo": "معلومات الفرع و الخدمات", + "profileCompleted": "الملف الشخصي مكتمل", + "selectLocationMap": "اختر الموقع", + "licensesAndCertifications" : "الرخص و الشهادات", + "completeProfile1" : "اكمل الملف الشخصي 1/3", + "completeProfile2" : "اكمل الملف الشخصي 2/3", + "completeProfile3" : "اكمل الملف الشخصي 3/3", + "userInformation": "معلومات المتسخدم", + "provider": "Provider", + "title": "Hello", + "msg": "Hello {} in the {} world ", + "msg_named": "{} are written in the {lang} language", + "clickMe": "Click me", + "profile": { + "reset_password": { + "label": "Reset Password", + "username": "Username", + "password": "password" + } + }, + "clicked": { + "zero": "You clicked {} times!", + "one": "You clicked {} time!", + "two": "You clicked {} times!", + "few": "You clicked {} times!", + "many": "You clicked {} times!", + "other": "You clicked {} times!" + }, + "amount": { + "zero": "Your amount : {} ", + "one": "Your amount : {} ", + "two": "Your amount : {} ", + "few": "Your amount : {} ", + "many": "Your amount : {} ", + "other": "Your amount : {} " + }, + "gender": { + "male": "Hi man ;) ", + "female": "Hello girl :)", + "with_arg": { + "male": "Hi man ;) {}", + "female": "Hello girl :) {}" + } + }, + "reset_locale": "Reset Language" +} \ No newline at end of file diff --git a/resources/langs/en-US.json b/resources/langs/en-US.json index c9f87fc..780b026 100644 --- a/resources/langs/en-US.json +++ b/resources/langs/en-US.json @@ -1,4 +1,98 @@ { + "firstTimeLogIn" : "First Time Log In", + "signUp": "Sing Up", + "changeMobile": "Change Mobile", + "notifications": "Notifications", + "general": "General", + "defineLicences": "Define Licences", + "dealershipSettings": "Dealership Settings", + "changePassword": "Change Password", + "retrievePassword" : "Retrieve Password", + "changeEmail": "Change Email", + "verify": "Verify", + "signOut": "Sign Out", + "enterEmail": "Enter Email", + "enterNewEmail": "Enter New Email", + "enterNewPassword": "Enter New Password", + "enterCurrentPassword": "Enter Current Password", + "enterOldPassword": "Enter Old Password", + "confirm": "Confirm", + "completeProfile": "Complete Profile", + "enterNewPhoneNumber": "Enter New Phone Number", + "enterPhoneNumber": "Enter Phone Number", + "continu": "Continue", + "confirmPassword": "Confirm Password", + "createPassword": "Create Password", + "email": "Email", + "firstName": "First Name *", + "surname": "Surname *", + "confirmPass": "Confirm Password *", + "createPass": "Create Password *", + "newPassword": "New Password", + "forgetPassword": "Forget Password", + "editAccount": "Edit Account", + "change": "Change", + "verifyAccount": "Verify Account", + "login" : "Log In", + "welcomeMessage" : "Welcome Message", + "forgetPass": "Forget Password ?", + "phoneNumberVerified": "Phone Number Verified", + "verifyNewPassword": "Verify New Password", + "EnterPass": "Enter Password ?", + "alreadySigned": " Already Signed Up and Logged In", + "emailChangedSuccessfully": "Email is Changed Successfully", + "passwordIsUpdated" : "Password is Updated", + "passwordShouldContains" : "Password Should contains Character, Number, Capital and small letters,", + " successfullyRegistered": " Successfully Registered, Please login once,", + "pleaseEnterSamePassword" : "Please enter same password", + "firstNameMandatory" : "First name is mandatory", + "surnameNameMandatory" : "Surname is mandatory", + "passwordNameMandatory" : "Password is mandatory", + "enterValidEmail" : "Enter Valid Email", + "pleaseAcceptTerms" : "Please accept terms", + "emailVerified" : "Email is verified successfully", + "selectMethod" : "Select Method", + "emailAddress" : "Email Address", + "loginSelection" : "Login Selection", + "selectCountryCode" : "Please select Country Code", + "selectProviderRole" : "Please select Provider Role", + "addPhoneNo" : "Please add Phone No", + "onlyCustomerApp": "Sorry, Only Customer's can log in this app", + "imageUploaded" : "Image is uploaded", + "fileLarger" : "File is larger then 1KB", + "account" : "Account", + "edit" : "EDIT", + "imageDeleted" : "Image is Deleted", + "dashboard" : "Dashboard/Main Page", + "pickAddress" : "Pick Address", + "pickLocation" : "Pick Location", + "save" : "Save", + "defineServices" : "Define Services", + "selectBranch " : "Select Branch ", + "selectServiceCategory" : "Select Service Category", + "defineBranches" : "Define Branches", + "defineProviders":"Define Providers", + "closeAccount": "Close Account", + "createBranch" : "Create Branch", + "address": "Address", + "branchDescription": "Branch Description", + "branchName": "Branch Name", + "chooseCity": "Choose City", + "chooseCountry": "Choose Country", + "selectAttachment":"Select Attachment", + "somethingWrong" : "Something went wrong", + "documentsUploaded" : "Documents uploaded successfully", + "update": "Update", + "termsOfService":"By creating an account you agree to our Terms of Service and\n Privacy Policy", + "branchInfo": "Branch Info and Services", + "profileCompleted": "Profile is Completed", + "selectLocationMap": "Select Location Map", + "licensesAndCertifications" : "licenses & certifications", + "completeProfile1" : "Complete Profile 1/3", + "completeProfile2" : "Complete Profile 2/3", + "completeProfile3" : "Complete Profile 3/3", + "userInformation": "User Information", + "provider": "Provider", "title": "Hello", "msg": "Hello {} in the {} world ", "msg_named": "{} are written in the {lang} language", diff --git a/resources/langs/en.json b/resources/langs/en.json deleted file mode 100644 index c9f87fc..0000000 --- a/resources/langs/en.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "title": "Hello", - "msg": "Hello {} in the {} world ", - "msg_named": "{} are written in the {lang} language", - "clickMe": "Click me", - "profile": { - "reset_password": { - "label": "Reset Password", - "username": "Username", - "password": "password" - } - }, - "clicked": { - "zero": "You clicked {} times!", - "one": "You clicked {} time!", - "two": "You clicked {} times!", - "few": "You clicked {} times!", - "many": "You clicked {} times!", - "other": "You clicked {} times!" - }, - "amount": { - "zero": "Your amount : {} ", - "one": "Your amount : {} ", - "two": "Your amount : {} ", - "few": "Your amount : {} ", - "many": "Your amount : {} ", - "other": "Your amount : {} " - }, - "gender": { - "male": "Hi man ;) ", - "female": "Hello girl :)", - "with_arg": { - "male": "Hi man ;) {}", - "female": "Hello girl :) {}" - } - }, - "reset_locale": "Reset Language" -} \ No newline at end of file