feat: implement core architecture, design system, localization, and trip features for both driver and rider apps.
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"@@locale": "ar",
|
||||
"appName": "Tripz",
|
||||
"appTagline": "اسحب، وصل، وصل",
|
||||
"phoneTitle": "أدخل رقم هاتفك للمتابعة",
|
||||
"phoneLabel": "رقم الهاتف",
|
||||
"phoneHint": "07XXXXXXXX",
|
||||
"sendCode": "إرسال الرمز",
|
||||
"otpTitle": "أدخل رمز التحقق",
|
||||
"otpSentTo": "أُرسل إلى {phone}",
|
||||
"@otpSentTo": {
|
||||
"placeholders": {
|
||||
"phone": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"otpLabel": "الرمز",
|
||||
"confirm": "تأكيد",
|
||||
"welcome": "مرحباً {name}",
|
||||
"@welcome": {
|
||||
"placeholders": {
|
||||
"name": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"welcomeBack": "مرحباً بعودتك",
|
||||
"whereTo": "إلى أين؟",
|
||||
"setLocationOnMap": "تحديد الموقع على الخريطة",
|
||||
"myTrips": "رحلاتي",
|
||||
"wallet": "المحفظة",
|
||||
"coupons": "الكوبونات والدعوات",
|
||||
"settings": "الإعدادات",
|
||||
"support": "الدعم",
|
||||
"logout": "تسجيل الخروج",
|
||||
"language": "اللغة",
|
||||
"arabic": "العربية",
|
||||
"english": "English",
|
||||
"theme": "المظهر",
|
||||
"lightMode": "الوضع النهاري",
|
||||
"darkMode": "الوضع الليلي",
|
||||
"systemMode": "تلقائي",
|
||||
"errorGeneric": "حدث خطأ ما",
|
||||
"retry": "أعد المحاولة",
|
||||
"emptyGeneric": "لا توجد عناصر بعد",
|
||||
"loading": "جارٍ التحميل...",
|
||||
"cancel": "إلغاء",
|
||||
"save": "حفظ",
|
||||
"close": "إغلاق",
|
||||
"next": "التالي",
|
||||
"back": "رجوع",
|
||||
"search": "بحث",
|
||||
"noResults": "لا توجد نتائج",
|
||||
"connectionError": "تحقق من اتصالك بالإنترنت",
|
||||
"authError": "تعذّر إرسال الرمز",
|
||||
"invalidOtp": "رمز غير صحيح",
|
||||
"phoneEmpty": "أدخل رقم الهاتف",
|
||||
"selectDestination": "اختر وجهتك",
|
||||
"pickupLocation": "نقطة الانطلاق",
|
||||
"dropoffLocation": "الوجهة",
|
||||
"chooseOnMap": "اختر من الخريطة",
|
||||
"favorites": "المفضلة",
|
||||
"homePlace": "البيت",
|
||||
"workPlace": "العمل",
|
||||
"searchPlaces": "ابحث عن مكان...",
|
||||
"recent": "الأخيرة",
|
||||
"addStop": "إضافة توقف",
|
||||
"removeStop": "إزالة التوقف",
|
||||
"rideClasses": "فئة الرحلة",
|
||||
"cash": "نقدي",
|
||||
"walletPayment": "المحفظة",
|
||||
"couponCode": "كود الخصم",
|
||||
"scheduleRide": "جدولة رحلة",
|
||||
"requestRide": "اطلب رحلة",
|
||||
"searchingDriver": "جارٍ البحث عن سائق...",
|
||||
"cancelSearch": "إلغاء البحث",
|
||||
"driverAccepted": "قبل سائقك الرحلة",
|
||||
"driverArriving": "السائق في طريقه إليك",
|
||||
"driverArrived": "وصل سائقك",
|
||||
"rideInProgress": "الرحلة جارية",
|
||||
"rideCompleted": "انتهت الرحلة",
|
||||
"rateDriver": "قيّم سائقك",
|
||||
"tripFare": "أجرة الرحلة",
|
||||
"waitingFee": "رسوم الانتظار",
|
||||
"discount": "الخصم",
|
||||
"paymentMethod": "طريقة الدفع",
|
||||
"total": "المجموع",
|
||||
"submitRating": "إرسال التقييم",
|
||||
"skipRating": "تخطي",
|
||||
"freeWaitMinutes": "دقائق انتظار مجانية",
|
||||
"minutes": "دقائق",
|
||||
"callDriver": "اتصل بالسائق",
|
||||
"chatWithDriver": "دردشة مع السائق",
|
||||
"shareTrip": "مشاركة الرحلة",
|
||||
"emergencySOS": "طارئ SOS",
|
||||
"plateNumber": "رقم اللوحة",
|
||||
"vehicleInfo": "معلومات المركبة",
|
||||
"driverRating": "تقييم السائق",
|
||||
"eta": "الوصول المتوقع",
|
||||
"km": "كم",
|
||||
"min": "د",
|
||||
"searchTimeout": "لم نجد سائقاً متاحاً حالياً. حاول مرة أخرى",
|
||||
"priceEstimate": "تقدير السعر",
|
||||
"perKm": "/كم",
|
||||
"capacity": "{seats} مقاعد",
|
||||
"@capacity": {
|
||||
"placeholders": {
|
||||
"seats": {"type": "int"}
|
||||
}
|
||||
},
|
||||
"confirmPickup": "تأكيد نقطة الانطلاق",
|
||||
"pickupSet": "تم تحديد نقطة الانطلاق",
|
||||
"destinationSet": "تم تحديد الوجهة",
|
||||
"routeSummary": "{distance} · {duration}",
|
||||
"@routeSummary": {
|
||||
"placeholders": {
|
||||
"distance": {"type": "String"},
|
||||
"duration": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"noPickupSet": "حدد نقطة انطلاقك",
|
||||
"mapPinInstructions": "حرّك الخريطة لإظهار الدبوس",
|
||||
"tripNoDrivers": "لم نجد سائقين بالقرب",
|
||||
"tripCancelled": "تم إلغاء الرحلة",
|
||||
"tripCancelledByDriver": "ألغى السائق الرحلة",
|
||||
"cancelFee": "رسوم الإلغاء: {fee} {currency}",
|
||||
"@cancelFee": {
|
||||
"placeholders": {
|
||||
"fee": {"type": "String"},
|
||||
"currency": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"waitFreeMinutes": "{minutes} دقائق انتظار مجانية",
|
||||
"@waitFreeMinutes": {
|
||||
"placeholders": {
|
||||
"minutes": {"type": "int"}
|
||||
}
|
||||
},
|
||||
"waitingCharge": "رسوم الانتظار: {amount} {currency}",
|
||||
"@waitingCharge": {
|
||||
"placeholders": {
|
||||
"amount": {"type": "String"},
|
||||
"currency": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"driverEnRoute": "السائق في طريقه إليك",
|
||||
"arrivingIn": "الوصول خلال {eta}",
|
||||
"@arrivingIn": {
|
||||
"placeholders": {
|
||||
"eta": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"tripStarted": "بدأت الرحلة",
|
||||
"tripEnd": "انتهت الرحلة",
|
||||
"fareBreakdown": "تفاصيل الأجرة",
|
||||
"baseFare": "الأجرة الأساسية",
|
||||
"distanceFare": "المسافة",
|
||||
"timeFare": "الوقت",
|
||||
"surgeMultiplier": "الذروة",
|
||||
"couponApplied": "تم تطبيق الكوبون",
|
||||
"youPaid": "دفعت",
|
||||
"payCash": "ادفع نقدي",
|
||||
"rateYourTrip": "قيّم رحلتك",
|
||||
"ratingComment": "أضف تعليقاً (اختياري)",
|
||||
"thankYou": "شكراً على ملاحظاتك",
|
||||
"tripDuration": "مدة الرحلة: {duration}",
|
||||
"@tripDuration": {
|
||||
"placeholders": {
|
||||
"duration": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"tripDistance": "مسافة الرحلة: {distance}",
|
||||
"@tripDistance": {
|
||||
"placeholders": {
|
||||
"distance": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"reconnect": "جارٍ إعادة الاتصال...",
|
||||
"tripExpired": "انتهت صلاحية الرحلة"
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"@@locale": "en",
|
||||
"appName": "Tripz",
|
||||
"appTagline": "Tap, ride, arrive",
|
||||
"phoneTitle": "Enter your phone number to continue",
|
||||
"phoneLabel": "Phone number",
|
||||
"phoneHint": "07XXXXXXXX",
|
||||
"sendCode": "Send code",
|
||||
"otpTitle": "Enter verification code",
|
||||
"otpSentTo": "Sent to {phone}",
|
||||
"@otpSentTo": {
|
||||
"placeholders": {
|
||||
"phone": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"otpLabel": "Code",
|
||||
"confirm": "Confirm",
|
||||
"welcome": "Welcome {name}",
|
||||
"@welcome": {
|
||||
"placeholders": {
|
||||
"name": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"welcomeBack": "Welcome back",
|
||||
"whereTo": "Where to?",
|
||||
"setLocationOnMap": "Set location on map",
|
||||
"myTrips": "My trips",
|
||||
"wallet": "Wallet",
|
||||
"coupons": "Coupons & invites",
|
||||
"settings": "Settings",
|
||||
"support": "Support",
|
||||
"logout": "Logout",
|
||||
"language": "Language",
|
||||
"arabic": "العربية",
|
||||
"english": "English",
|
||||
"theme": "Theme",
|
||||
"lightMode": "Light",
|
||||
"darkMode": "Dark",
|
||||
"systemMode": "System",
|
||||
"errorGeneric": "Something went wrong",
|
||||
"retry": "Try again",
|
||||
"emptyGeneric": "Nothing here yet",
|
||||
"loading": "Loading...",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"close": "Close",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"search": "Search",
|
||||
"noResults": "No results found",
|
||||
"connectionError": "Check your internet connection",
|
||||
"authError": "Failed to send code",
|
||||
"invalidOtp": "Invalid code",
|
||||
"phoneEmpty": "Enter your phone number",
|
||||
"selectDestination": "Choose your destination",
|
||||
"pickupLocation": "Pickup location",
|
||||
"dropoffLocation": "Destination",
|
||||
"chooseOnMap": "Choose on map",
|
||||
"favorites": "Favorites",
|
||||
"homePlace": "Home",
|
||||
"workPlace": "Work",
|
||||
"searchPlaces": "Search for a place...",
|
||||
"recent": "Recent",
|
||||
"addStop": "Add a stop",
|
||||
"removeStop": "Remove stop",
|
||||
"rideClasses": "Ride class",
|
||||
"cash": "Cash",
|
||||
"walletPayment": "Wallet",
|
||||
"couponCode": "Coupon code",
|
||||
"scheduleRide": "Schedule a ride",
|
||||
"requestRide": "Request a ride",
|
||||
"searchingDriver": "Looking for a driver...",
|
||||
"cancelSearch": "Cancel search",
|
||||
"driverAccepted": "Your driver accepted",
|
||||
"driverArriving": "Driver is on the way",
|
||||
"driverArrived": "Your driver has arrived",
|
||||
"rideInProgress": "Ride in progress",
|
||||
"rideCompleted": "Ride completed",
|
||||
"rateDriver": "Rate your driver",
|
||||
"tripFare": "Trip fare",
|
||||
"waitingFee": "Waiting fee",
|
||||
"discount": "Discount",
|
||||
"paymentMethod": "Payment method",
|
||||
"total": "Total",
|
||||
"submitRating": "Submit rating",
|
||||
"skipRating": "Skip",
|
||||
"freeWaitMinutes": "Free wait minutes",
|
||||
"minutes": "minutes",
|
||||
"callDriver": "Call driver",
|
||||
"chatWithDriver": "Chat with driver",
|
||||
"shareTrip": "Share trip",
|
||||
"emergencySOS": "Emergency SOS",
|
||||
"plateNumber": "Plate number",
|
||||
"vehicleInfo": "Vehicle info",
|
||||
"driverRating": "Driver rating",
|
||||
"eta": "Estimated arrival",
|
||||
"km": "km",
|
||||
"min": "min",
|
||||
"searchTimeout": "No drivers available right now. Please try again",
|
||||
"priceEstimate": "Price estimate",
|
||||
"perKm": "/km",
|
||||
"capacity": "{seats} seats",
|
||||
"@capacity": {
|
||||
"placeholders": {
|
||||
"seats": {"type": "int"}
|
||||
}
|
||||
},
|
||||
"confirmPickup": "Confirm pickup",
|
||||
"pickupSet": "Pickup set",
|
||||
"destinationSet": "Destination set",
|
||||
"routeSummary": "{distance} · {duration}",
|
||||
"@routeSummary": {
|
||||
"placeholders": {
|
||||
"distance": {"type": "String"},
|
||||
"duration": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"noPickupSet": "Set your pickup location",
|
||||
"mapPinInstructions": "Move the map to place the pin",
|
||||
"tripNoDrivers": "No drivers found nearby",
|
||||
"tripCancelled": "Trip cancelled",
|
||||
"tripCancelledByDriver": "Driver cancelled the trip",
|
||||
"cancelFee": "Cancellation fee: {fee} {currency}",
|
||||
"@cancelFee": {
|
||||
"placeholders": {
|
||||
"fee": {"type": "String"},
|
||||
"currency": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"waitFreeMinutes": "{minutes} min free wait",
|
||||
"@waitFreeMinutes": {
|
||||
"placeholders": {
|
||||
"minutes": {"type": "int"}
|
||||
}
|
||||
},
|
||||
"waitingCharge": "Waiting charge: {amount} {currency}",
|
||||
"@waitingCharge": {
|
||||
"placeholders": {
|
||||
"amount": {"type": "String"},
|
||||
"currency": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"driverEnRoute": "Driver is heading to you",
|
||||
"arrivingIn": "Arriving in {eta}",
|
||||
"@arrivingIn": {
|
||||
"placeholders": {
|
||||
"eta": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"tripStarted": "Ride started",
|
||||
"tripEnd": "Trip ended",
|
||||
"fareBreakdown": "Fare breakdown",
|
||||
"baseFare": "Base fare",
|
||||
"distanceFare": "Distance",
|
||||
"timeFare": "Time",
|
||||
"surgeMultiplier": "Surge",
|
||||
"couponApplied": "Coupon applied",
|
||||
"youPaid": "You paid",
|
||||
"payCash": "Pay cash",
|
||||
"rateYourTrip": "Rate your trip",
|
||||
"ratingComment": "Add a comment (optional)",
|
||||
"thankYou": "Thank you for your feedback",
|
||||
"tripDuration": "Trip duration: {duration}",
|
||||
"@tripDuration": {
|
||||
"placeholders": {
|
||||
"duration": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"tripDistance": "Trip distance: {distance}",
|
||||
"@tripDistance": {
|
||||
"placeholders": {
|
||||
"distance": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"reconnect": "Reconnecting...",
|
||||
"tripExpired": "Trip expired"
|
||||
}
|
||||
@@ -0,0 +1,859 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
|
||||
import 'app_localizations_ar.dart';
|
||||
import 'app_localizations_en.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// Callers can lookup localized strings with an instance of AppLocalizations
|
||||
/// returned by `AppLocalizations.of(context)`.
|
||||
///
|
||||
/// Applications need to include `AppLocalizations.delegate()` in their app's
|
||||
/// `localizationDelegates` list, and the locales they support in the app's
|
||||
/// `supportedLocales` list. For example:
|
||||
///
|
||||
/// ```dart
|
||||
/// import 'l10n/app_localizations.dart';
|
||||
///
|
||||
/// return MaterialApp(
|
||||
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
/// supportedLocales: AppLocalizations.supportedLocales,
|
||||
/// home: MyApplicationHome(),
|
||||
/// );
|
||||
/// ```
|
||||
///
|
||||
/// ## Update pubspec.yaml
|
||||
///
|
||||
/// Please make sure to update your pubspec.yaml to include the following
|
||||
/// packages:
|
||||
///
|
||||
/// ```yaml
|
||||
/// dependencies:
|
||||
/// # Internationalization support.
|
||||
/// flutter_localizations:
|
||||
/// sdk: flutter
|
||||
/// intl: any # Use the pinned version from flutter_localizations
|
||||
///
|
||||
/// # Rest of dependencies
|
||||
/// ```
|
||||
///
|
||||
/// ## iOS Applications
|
||||
///
|
||||
/// iOS applications define key application metadata, including supported
|
||||
/// locales, in an Info.plist file that is built into the application bundle.
|
||||
/// To configure the locales supported by your app, you’ll need to edit this
|
||||
/// file.
|
||||
///
|
||||
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
|
||||
/// Then, in the Project Navigator, open the Info.plist file under the Runner
|
||||
/// project’s Runner folder.
|
||||
///
|
||||
/// Next, select the Information Property List item, select Add Item from the
|
||||
/// Editor menu, then select Localizations from the pop-up menu.
|
||||
///
|
||||
/// Select and expand the newly-created Localizations item then, for each
|
||||
/// locale your application supports, add a new item and select the locale
|
||||
/// you wish to add from the pop-up menu in the Value field. This list should
|
||||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||||
/// property.
|
||||
abstract class AppLocalizations {
|
||||
AppLocalizations(String locale)
|
||||
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||||
|
||||
final String localeName;
|
||||
|
||||
static AppLocalizations? of(BuildContext context) {
|
||||
return Localizations.of<AppLocalizations>(context, AppLocalizations);
|
||||
}
|
||||
|
||||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||||
_AppLocalizationsDelegate();
|
||||
|
||||
/// A list of this localizations delegate along with the default localizations
|
||||
/// delegates.
|
||||
///
|
||||
/// Returns a list of localizations delegates containing this delegate along with
|
||||
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
|
||||
/// and GlobalWidgetsLocalizations.delegate.
|
||||
///
|
||||
/// Additional delegates can be added by appending to this list in
|
||||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||||
/// of delegates is preferred or required.
|
||||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||||
<LocalizationsDelegate<dynamic>>[
|
||||
delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
];
|
||||
|
||||
/// A list of this localizations delegate's supported locales.
|
||||
static const List<Locale> supportedLocales = <Locale>[
|
||||
Locale('ar'),
|
||||
Locale('en')
|
||||
];
|
||||
|
||||
/// No description provided for @appName.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'Tripz'**
|
||||
String get appName;
|
||||
|
||||
/// No description provided for @appTagline.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'اسحب، وصل، وصل'**
|
||||
String get appTagline;
|
||||
|
||||
/// No description provided for @phoneTitle.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'أدخل رقم هاتفك للمتابعة'**
|
||||
String get phoneTitle;
|
||||
|
||||
/// No description provided for @phoneLabel.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رقم الهاتف'**
|
||||
String get phoneLabel;
|
||||
|
||||
/// No description provided for @phoneHint.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'07XXXXXXXX'**
|
||||
String get phoneHint;
|
||||
|
||||
/// No description provided for @sendCode.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إرسال الرمز'**
|
||||
String get sendCode;
|
||||
|
||||
/// No description provided for @otpTitle.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'أدخل رمز التحقق'**
|
||||
String get otpTitle;
|
||||
|
||||
/// No description provided for @otpSentTo.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'أُرسل إلى {phone}'**
|
||||
String otpSentTo(String phone);
|
||||
|
||||
/// No description provided for @otpLabel.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الرمز'**
|
||||
String get otpLabel;
|
||||
|
||||
/// No description provided for @confirm.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تأكيد'**
|
||||
String get confirm;
|
||||
|
||||
/// No description provided for @welcome.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'مرحباً {name}'**
|
||||
String welcome(String name);
|
||||
|
||||
/// No description provided for @welcomeBack.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'مرحباً بعودتك'**
|
||||
String get welcomeBack;
|
||||
|
||||
/// No description provided for @whereTo.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إلى أين؟'**
|
||||
String get whereTo;
|
||||
|
||||
/// No description provided for @setLocationOnMap.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تحديد الموقع على الخريطة'**
|
||||
String get setLocationOnMap;
|
||||
|
||||
/// No description provided for @myTrips.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رحلاتي'**
|
||||
String get myTrips;
|
||||
|
||||
/// No description provided for @wallet.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'المحفظة'**
|
||||
String get wallet;
|
||||
|
||||
/// No description provided for @coupons.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الكوبونات والدعوات'**
|
||||
String get coupons;
|
||||
|
||||
/// No description provided for @settings.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الإعدادات'**
|
||||
String get settings;
|
||||
|
||||
/// No description provided for @support.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الدعم'**
|
||||
String get support;
|
||||
|
||||
/// No description provided for @logout.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تسجيل الخروج'**
|
||||
String get logout;
|
||||
|
||||
/// No description provided for @language.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'اللغة'**
|
||||
String get language;
|
||||
|
||||
/// No description provided for @arabic.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'العربية'**
|
||||
String get arabic;
|
||||
|
||||
/// No description provided for @english.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'English'**
|
||||
String get english;
|
||||
|
||||
/// No description provided for @theme.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'المظهر'**
|
||||
String get theme;
|
||||
|
||||
/// No description provided for @lightMode.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الوضع النهاري'**
|
||||
String get lightMode;
|
||||
|
||||
/// No description provided for @darkMode.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الوضع الليلي'**
|
||||
String get darkMode;
|
||||
|
||||
/// No description provided for @systemMode.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تلقائي'**
|
||||
String get systemMode;
|
||||
|
||||
/// No description provided for @errorGeneric.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'حدث خطأ ما'**
|
||||
String get errorGeneric;
|
||||
|
||||
/// No description provided for @retry.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'أعد المحاولة'**
|
||||
String get retry;
|
||||
|
||||
/// No description provided for @emptyGeneric.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'لا توجد عناصر بعد'**
|
||||
String get emptyGeneric;
|
||||
|
||||
/// No description provided for @loading.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'جارٍ التحميل...'**
|
||||
String get loading;
|
||||
|
||||
/// No description provided for @cancel.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إلغاء'**
|
||||
String get cancel;
|
||||
|
||||
/// No description provided for @save.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'حفظ'**
|
||||
String get save;
|
||||
|
||||
/// No description provided for @close.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إغلاق'**
|
||||
String get close;
|
||||
|
||||
/// No description provided for @next.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'التالي'**
|
||||
String get next;
|
||||
|
||||
/// No description provided for @back.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رجوع'**
|
||||
String get back;
|
||||
|
||||
/// No description provided for @search.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'بحث'**
|
||||
String get search;
|
||||
|
||||
/// No description provided for @noResults.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'لا توجد نتائج'**
|
||||
String get noResults;
|
||||
|
||||
/// No description provided for @connectionError.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تحقق من اتصالك بالإنترنت'**
|
||||
String get connectionError;
|
||||
|
||||
/// No description provided for @authError.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تعذّر إرسال الرمز'**
|
||||
String get authError;
|
||||
|
||||
/// No description provided for @invalidOtp.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رمز غير صحيح'**
|
||||
String get invalidOtp;
|
||||
|
||||
/// No description provided for @phoneEmpty.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'أدخل رقم الهاتف'**
|
||||
String get phoneEmpty;
|
||||
|
||||
/// No description provided for @selectDestination.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'اختر وجهتك'**
|
||||
String get selectDestination;
|
||||
|
||||
/// No description provided for @pickupLocation.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'نقطة الانطلاق'**
|
||||
String get pickupLocation;
|
||||
|
||||
/// No description provided for @dropoffLocation.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الوجهة'**
|
||||
String get dropoffLocation;
|
||||
|
||||
/// No description provided for @chooseOnMap.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'اختر من الخريطة'**
|
||||
String get chooseOnMap;
|
||||
|
||||
/// No description provided for @favorites.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'المفضلة'**
|
||||
String get favorites;
|
||||
|
||||
/// No description provided for @homePlace.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'البيت'**
|
||||
String get homePlace;
|
||||
|
||||
/// No description provided for @workPlace.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'العمل'**
|
||||
String get workPlace;
|
||||
|
||||
/// No description provided for @searchPlaces.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'ابحث عن مكان...'**
|
||||
String get searchPlaces;
|
||||
|
||||
/// No description provided for @recent.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الأخيرة'**
|
||||
String get recent;
|
||||
|
||||
/// No description provided for @addStop.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إضافة توقف'**
|
||||
String get addStop;
|
||||
|
||||
/// No description provided for @removeStop.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إزالة التوقف'**
|
||||
String get removeStop;
|
||||
|
||||
/// No description provided for @rideClasses.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'فئة الرحلة'**
|
||||
String get rideClasses;
|
||||
|
||||
/// No description provided for @cash.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'نقدي'**
|
||||
String get cash;
|
||||
|
||||
/// No description provided for @walletPayment.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'المحفظة'**
|
||||
String get walletPayment;
|
||||
|
||||
/// No description provided for @couponCode.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'كود الخصم'**
|
||||
String get couponCode;
|
||||
|
||||
/// No description provided for @scheduleRide.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'جدولة رحلة'**
|
||||
String get scheduleRide;
|
||||
|
||||
/// No description provided for @requestRide.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'اطلب رحلة'**
|
||||
String get requestRide;
|
||||
|
||||
/// No description provided for @searchingDriver.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'جارٍ البحث عن سائق...'**
|
||||
String get searchingDriver;
|
||||
|
||||
/// No description provided for @cancelSearch.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إلغاء البحث'**
|
||||
String get cancelSearch;
|
||||
|
||||
/// No description provided for @driverAccepted.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'قبل سائقك الرحلة'**
|
||||
String get driverAccepted;
|
||||
|
||||
/// No description provided for @driverArriving.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'السائق في طريقه إليك'**
|
||||
String get driverArriving;
|
||||
|
||||
/// No description provided for @driverArrived.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'وصل سائقك'**
|
||||
String get driverArrived;
|
||||
|
||||
/// No description provided for @rideInProgress.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الرحلة جارية'**
|
||||
String get rideInProgress;
|
||||
|
||||
/// No description provided for @rideCompleted.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'انتهت الرحلة'**
|
||||
String get rideCompleted;
|
||||
|
||||
/// No description provided for @rateDriver.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'قيّم سائقك'**
|
||||
String get rateDriver;
|
||||
|
||||
/// No description provided for @tripFare.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'أجرة الرحلة'**
|
||||
String get tripFare;
|
||||
|
||||
/// No description provided for @waitingFee.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رسوم الانتظار'**
|
||||
String get waitingFee;
|
||||
|
||||
/// No description provided for @discount.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الخصم'**
|
||||
String get discount;
|
||||
|
||||
/// No description provided for @paymentMethod.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'طريقة الدفع'**
|
||||
String get paymentMethod;
|
||||
|
||||
/// No description provided for @total.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'المجموع'**
|
||||
String get total;
|
||||
|
||||
/// No description provided for @submitRating.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'إرسال التقييم'**
|
||||
String get submitRating;
|
||||
|
||||
/// No description provided for @skipRating.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تخطي'**
|
||||
String get skipRating;
|
||||
|
||||
/// No description provided for @freeWaitMinutes.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'دقائق انتظار مجانية'**
|
||||
String get freeWaitMinutes;
|
||||
|
||||
/// No description provided for @minutes.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'دقائق'**
|
||||
String get minutes;
|
||||
|
||||
/// No description provided for @callDriver.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'اتصل بالسائق'**
|
||||
String get callDriver;
|
||||
|
||||
/// No description provided for @chatWithDriver.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'دردشة مع السائق'**
|
||||
String get chatWithDriver;
|
||||
|
||||
/// No description provided for @shareTrip.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'مشاركة الرحلة'**
|
||||
String get shareTrip;
|
||||
|
||||
/// No description provided for @emergencySOS.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'طارئ SOS'**
|
||||
String get emergencySOS;
|
||||
|
||||
/// No description provided for @plateNumber.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رقم اللوحة'**
|
||||
String get plateNumber;
|
||||
|
||||
/// No description provided for @vehicleInfo.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'معلومات المركبة'**
|
||||
String get vehicleInfo;
|
||||
|
||||
/// No description provided for @driverRating.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تقييم السائق'**
|
||||
String get driverRating;
|
||||
|
||||
/// No description provided for @eta.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الوصول المتوقع'**
|
||||
String get eta;
|
||||
|
||||
/// No description provided for @km.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'كم'**
|
||||
String get km;
|
||||
|
||||
/// No description provided for @min.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'د'**
|
||||
String get min;
|
||||
|
||||
/// No description provided for @searchTimeout.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'لم نجد سائقاً متاحاً حالياً. حاول مرة أخرى'**
|
||||
String get searchTimeout;
|
||||
|
||||
/// No description provided for @priceEstimate.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تقدير السعر'**
|
||||
String get priceEstimate;
|
||||
|
||||
/// No description provided for @perKm.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'/كم'**
|
||||
String get perKm;
|
||||
|
||||
/// No description provided for @capacity.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'{seats} مقاعد'**
|
||||
String capacity(int seats);
|
||||
|
||||
/// No description provided for @confirmPickup.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تأكيد نقطة الانطلاق'**
|
||||
String get confirmPickup;
|
||||
|
||||
/// No description provided for @pickupSet.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تم تحديد نقطة الانطلاق'**
|
||||
String get pickupSet;
|
||||
|
||||
/// No description provided for @destinationSet.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تم تحديد الوجهة'**
|
||||
String get destinationSet;
|
||||
|
||||
/// No description provided for @routeSummary.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'{distance} · {duration}'**
|
||||
String routeSummary(String distance, String duration);
|
||||
|
||||
/// No description provided for @noPickupSet.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'حدد نقطة انطلاقك'**
|
||||
String get noPickupSet;
|
||||
|
||||
/// No description provided for @mapPinInstructions.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'حرّك الخريطة لإظهار الدبوس'**
|
||||
String get mapPinInstructions;
|
||||
|
||||
/// No description provided for @tripNoDrivers.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'لم نجد سائقين بالقرب'**
|
||||
String get tripNoDrivers;
|
||||
|
||||
/// No description provided for @tripCancelled.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تم إلغاء الرحلة'**
|
||||
String get tripCancelled;
|
||||
|
||||
/// No description provided for @tripCancelledByDriver.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'ألغى السائق الرحلة'**
|
||||
String get tripCancelledByDriver;
|
||||
|
||||
/// No description provided for @cancelFee.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رسوم الإلغاء: {fee} {currency}'**
|
||||
String cancelFee(String fee, String currency);
|
||||
|
||||
/// No description provided for @waitFreeMinutes.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'{minutes} دقائق انتظار مجانية'**
|
||||
String waitFreeMinutes(int minutes);
|
||||
|
||||
/// No description provided for @waitingCharge.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'رسوم الانتظار: {amount} {currency}'**
|
||||
String waitingCharge(String amount, String currency);
|
||||
|
||||
/// No description provided for @driverEnRoute.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'السائق في طريقه إليك'**
|
||||
String get driverEnRoute;
|
||||
|
||||
/// No description provided for @arrivingIn.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الوصول خلال {eta}'**
|
||||
String arrivingIn(String eta);
|
||||
|
||||
/// No description provided for @tripStarted.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'بدأت الرحلة'**
|
||||
String get tripStarted;
|
||||
|
||||
/// No description provided for @tripEnd.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'انتهت الرحلة'**
|
||||
String get tripEnd;
|
||||
|
||||
/// No description provided for @fareBreakdown.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تفاصيل الأجرة'**
|
||||
String get fareBreakdown;
|
||||
|
||||
/// No description provided for @baseFare.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الأجرة الأساسية'**
|
||||
String get baseFare;
|
||||
|
||||
/// No description provided for @distanceFare.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'المسافة'**
|
||||
String get distanceFare;
|
||||
|
||||
/// No description provided for @timeFare.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الوقت'**
|
||||
String get timeFare;
|
||||
|
||||
/// No description provided for @surgeMultiplier.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'الذروة'**
|
||||
String get surgeMultiplier;
|
||||
|
||||
/// No description provided for @couponApplied.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'تم تطبيق الكوبون'**
|
||||
String get couponApplied;
|
||||
|
||||
/// No description provided for @youPaid.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'دفعت'**
|
||||
String get youPaid;
|
||||
|
||||
/// No description provided for @payCash.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'ادفع نقدي'**
|
||||
String get payCash;
|
||||
|
||||
/// No description provided for @rateYourTrip.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'قيّم رحلتك'**
|
||||
String get rateYourTrip;
|
||||
|
||||
/// No description provided for @ratingComment.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'أضف تعليقاً (اختياري)'**
|
||||
String get ratingComment;
|
||||
|
||||
/// No description provided for @thankYou.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'شكراً على ملاحظاتك'**
|
||||
String get thankYou;
|
||||
|
||||
/// No description provided for @tripDuration.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'مدة الرحلة: {duration}'**
|
||||
String tripDuration(String duration);
|
||||
|
||||
/// No description provided for @tripDistance.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'مسافة الرحلة: {distance}'**
|
||||
String tripDistance(String distance);
|
||||
|
||||
/// No description provided for @reconnect.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'جارٍ إعادة الاتصال...'**
|
||||
String get reconnect;
|
||||
|
||||
/// No description provided for @tripExpired.
|
||||
///
|
||||
/// In ar, this message translates to:
|
||||
/// **'انتهت صلاحية الرحلة'**
|
||||
String get tripExpired;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
extends LocalizationsDelegate<AppLocalizations> {
|
||||
const _AppLocalizationsDelegate();
|
||||
|
||||
@override
|
||||
Future<AppLocalizations> load(Locale locale) {
|
||||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||||
}
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) =>
|
||||
<String>['ar', 'en'].contains(locale.languageCode);
|
||||
|
||||
@override
|
||||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||||
}
|
||||
|
||||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||||
// Lookup logic when only language code is specified.
|
||||
switch (locale.languageCode) {
|
||||
case 'ar':
|
||||
return AppLocalizationsAr();
|
||||
case 'en':
|
||||
return AppLocalizationsEn();
|
||||
}
|
||||
|
||||
throw FlutterError(
|
||||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||||
'an issue with the localizations generation tool. Please file an issue '
|
||||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||||
'that was used.');
|
||||
}
|
||||
@@ -0,0 +1,393 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for Arabic (`ar`).
|
||||
class AppLocalizationsAr extends AppLocalizations {
|
||||
AppLocalizationsAr([String locale = 'ar']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appName => 'Tripz';
|
||||
|
||||
@override
|
||||
String get appTagline => 'اسحب، وصل، وصل';
|
||||
|
||||
@override
|
||||
String get phoneTitle => 'أدخل رقم هاتفك للمتابعة';
|
||||
|
||||
@override
|
||||
String get phoneLabel => 'رقم الهاتف';
|
||||
|
||||
@override
|
||||
String get phoneHint => '07XXXXXXXX';
|
||||
|
||||
@override
|
||||
String get sendCode => 'إرسال الرمز';
|
||||
|
||||
@override
|
||||
String get otpTitle => 'أدخل رمز التحقق';
|
||||
|
||||
@override
|
||||
String otpSentTo(String phone) {
|
||||
return 'أُرسل إلى $phone';
|
||||
}
|
||||
|
||||
@override
|
||||
String get otpLabel => 'الرمز';
|
||||
|
||||
@override
|
||||
String get confirm => 'تأكيد';
|
||||
|
||||
@override
|
||||
String welcome(String name) {
|
||||
return 'مرحباً $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String get welcomeBack => 'مرحباً بعودتك';
|
||||
|
||||
@override
|
||||
String get whereTo => 'إلى أين؟';
|
||||
|
||||
@override
|
||||
String get setLocationOnMap => 'تحديد الموقع على الخريطة';
|
||||
|
||||
@override
|
||||
String get myTrips => 'رحلاتي';
|
||||
|
||||
@override
|
||||
String get wallet => 'المحفظة';
|
||||
|
||||
@override
|
||||
String get coupons => 'الكوبونات والدعوات';
|
||||
|
||||
@override
|
||||
String get settings => 'الإعدادات';
|
||||
|
||||
@override
|
||||
String get support => 'الدعم';
|
||||
|
||||
@override
|
||||
String get logout => 'تسجيل الخروج';
|
||||
|
||||
@override
|
||||
String get language => 'اللغة';
|
||||
|
||||
@override
|
||||
String get arabic => 'العربية';
|
||||
|
||||
@override
|
||||
String get english => 'English';
|
||||
|
||||
@override
|
||||
String get theme => 'المظهر';
|
||||
|
||||
@override
|
||||
String get lightMode => 'الوضع النهاري';
|
||||
|
||||
@override
|
||||
String get darkMode => 'الوضع الليلي';
|
||||
|
||||
@override
|
||||
String get systemMode => 'تلقائي';
|
||||
|
||||
@override
|
||||
String get errorGeneric => 'حدث خطأ ما';
|
||||
|
||||
@override
|
||||
String get retry => 'أعد المحاولة';
|
||||
|
||||
@override
|
||||
String get emptyGeneric => 'لا توجد عناصر بعد';
|
||||
|
||||
@override
|
||||
String get loading => 'جارٍ التحميل...';
|
||||
|
||||
@override
|
||||
String get cancel => 'إلغاء';
|
||||
|
||||
@override
|
||||
String get save => 'حفظ';
|
||||
|
||||
@override
|
||||
String get close => 'إغلاق';
|
||||
|
||||
@override
|
||||
String get next => 'التالي';
|
||||
|
||||
@override
|
||||
String get back => 'رجوع';
|
||||
|
||||
@override
|
||||
String get search => 'بحث';
|
||||
|
||||
@override
|
||||
String get noResults => 'لا توجد نتائج';
|
||||
|
||||
@override
|
||||
String get connectionError => 'تحقق من اتصالك بالإنترنت';
|
||||
|
||||
@override
|
||||
String get authError => 'تعذّر إرسال الرمز';
|
||||
|
||||
@override
|
||||
String get invalidOtp => 'رمز غير صحيح';
|
||||
|
||||
@override
|
||||
String get phoneEmpty => 'أدخل رقم الهاتف';
|
||||
|
||||
@override
|
||||
String get selectDestination => 'اختر وجهتك';
|
||||
|
||||
@override
|
||||
String get pickupLocation => 'نقطة الانطلاق';
|
||||
|
||||
@override
|
||||
String get dropoffLocation => 'الوجهة';
|
||||
|
||||
@override
|
||||
String get chooseOnMap => 'اختر من الخريطة';
|
||||
|
||||
@override
|
||||
String get favorites => 'المفضلة';
|
||||
|
||||
@override
|
||||
String get homePlace => 'البيت';
|
||||
|
||||
@override
|
||||
String get workPlace => 'العمل';
|
||||
|
||||
@override
|
||||
String get searchPlaces => 'ابحث عن مكان...';
|
||||
|
||||
@override
|
||||
String get recent => 'الأخيرة';
|
||||
|
||||
@override
|
||||
String get addStop => 'إضافة توقف';
|
||||
|
||||
@override
|
||||
String get removeStop => 'إزالة التوقف';
|
||||
|
||||
@override
|
||||
String get rideClasses => 'فئة الرحلة';
|
||||
|
||||
@override
|
||||
String get cash => 'نقدي';
|
||||
|
||||
@override
|
||||
String get walletPayment => 'المحفظة';
|
||||
|
||||
@override
|
||||
String get couponCode => 'كود الخصم';
|
||||
|
||||
@override
|
||||
String get scheduleRide => 'جدولة رحلة';
|
||||
|
||||
@override
|
||||
String get requestRide => 'اطلب رحلة';
|
||||
|
||||
@override
|
||||
String get searchingDriver => 'جارٍ البحث عن سائق...';
|
||||
|
||||
@override
|
||||
String get cancelSearch => 'إلغاء البحث';
|
||||
|
||||
@override
|
||||
String get driverAccepted => 'قبل سائقك الرحلة';
|
||||
|
||||
@override
|
||||
String get driverArriving => 'السائق في طريقه إليك';
|
||||
|
||||
@override
|
||||
String get driverArrived => 'وصل سائقك';
|
||||
|
||||
@override
|
||||
String get rideInProgress => 'الرحلة جارية';
|
||||
|
||||
@override
|
||||
String get rideCompleted => 'انتهت الرحلة';
|
||||
|
||||
@override
|
||||
String get rateDriver => 'قيّم سائقك';
|
||||
|
||||
@override
|
||||
String get tripFare => 'أجرة الرحلة';
|
||||
|
||||
@override
|
||||
String get waitingFee => 'رسوم الانتظار';
|
||||
|
||||
@override
|
||||
String get discount => 'الخصم';
|
||||
|
||||
@override
|
||||
String get paymentMethod => 'طريقة الدفع';
|
||||
|
||||
@override
|
||||
String get total => 'المجموع';
|
||||
|
||||
@override
|
||||
String get submitRating => 'إرسال التقييم';
|
||||
|
||||
@override
|
||||
String get skipRating => 'تخطي';
|
||||
|
||||
@override
|
||||
String get freeWaitMinutes => 'دقائق انتظار مجانية';
|
||||
|
||||
@override
|
||||
String get minutes => 'دقائق';
|
||||
|
||||
@override
|
||||
String get callDriver => 'اتصل بالسائق';
|
||||
|
||||
@override
|
||||
String get chatWithDriver => 'دردشة مع السائق';
|
||||
|
||||
@override
|
||||
String get shareTrip => 'مشاركة الرحلة';
|
||||
|
||||
@override
|
||||
String get emergencySOS => 'طارئ SOS';
|
||||
|
||||
@override
|
||||
String get plateNumber => 'رقم اللوحة';
|
||||
|
||||
@override
|
||||
String get vehicleInfo => 'معلومات المركبة';
|
||||
|
||||
@override
|
||||
String get driverRating => 'تقييم السائق';
|
||||
|
||||
@override
|
||||
String get eta => 'الوصول المتوقع';
|
||||
|
||||
@override
|
||||
String get km => 'كم';
|
||||
|
||||
@override
|
||||
String get min => 'د';
|
||||
|
||||
@override
|
||||
String get searchTimeout => 'لم نجد سائقاً متاحاً حالياً. حاول مرة أخرى';
|
||||
|
||||
@override
|
||||
String get priceEstimate => 'تقدير السعر';
|
||||
|
||||
@override
|
||||
String get perKm => '/كم';
|
||||
|
||||
@override
|
||||
String capacity(int seats) {
|
||||
return '$seats مقاعد';
|
||||
}
|
||||
|
||||
@override
|
||||
String get confirmPickup => 'تأكيد نقطة الانطلاق';
|
||||
|
||||
@override
|
||||
String get pickupSet => 'تم تحديد نقطة الانطلاق';
|
||||
|
||||
@override
|
||||
String get destinationSet => 'تم تحديد الوجهة';
|
||||
|
||||
@override
|
||||
String routeSummary(String distance, String duration) {
|
||||
return '$distance · $duration';
|
||||
}
|
||||
|
||||
@override
|
||||
String get noPickupSet => 'حدد نقطة انطلاقك';
|
||||
|
||||
@override
|
||||
String get mapPinInstructions => 'حرّك الخريطة لإظهار الدبوس';
|
||||
|
||||
@override
|
||||
String get tripNoDrivers => 'لم نجد سائقين بالقرب';
|
||||
|
||||
@override
|
||||
String get tripCancelled => 'تم إلغاء الرحلة';
|
||||
|
||||
@override
|
||||
String get tripCancelledByDriver => 'ألغى السائق الرحلة';
|
||||
|
||||
@override
|
||||
String cancelFee(String fee, String currency) {
|
||||
return 'رسوم الإلغاء: $fee $currency';
|
||||
}
|
||||
|
||||
@override
|
||||
String waitFreeMinutes(int minutes) {
|
||||
return '$minutes دقائق انتظار مجانية';
|
||||
}
|
||||
|
||||
@override
|
||||
String waitingCharge(String amount, String currency) {
|
||||
return 'رسوم الانتظار: $amount $currency';
|
||||
}
|
||||
|
||||
@override
|
||||
String get driverEnRoute => 'السائق في طريقه إليك';
|
||||
|
||||
@override
|
||||
String arrivingIn(String eta) {
|
||||
return 'الوصول خلال $eta';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tripStarted => 'بدأت الرحلة';
|
||||
|
||||
@override
|
||||
String get tripEnd => 'انتهت الرحلة';
|
||||
|
||||
@override
|
||||
String get fareBreakdown => 'تفاصيل الأجرة';
|
||||
|
||||
@override
|
||||
String get baseFare => 'الأجرة الأساسية';
|
||||
|
||||
@override
|
||||
String get distanceFare => 'المسافة';
|
||||
|
||||
@override
|
||||
String get timeFare => 'الوقت';
|
||||
|
||||
@override
|
||||
String get surgeMultiplier => 'الذروة';
|
||||
|
||||
@override
|
||||
String get couponApplied => 'تم تطبيق الكوبون';
|
||||
|
||||
@override
|
||||
String get youPaid => 'دفعت';
|
||||
|
||||
@override
|
||||
String get payCash => 'ادفع نقدي';
|
||||
|
||||
@override
|
||||
String get rateYourTrip => 'قيّم رحلتك';
|
||||
|
||||
@override
|
||||
String get ratingComment => 'أضف تعليقاً (اختياري)';
|
||||
|
||||
@override
|
||||
String get thankYou => 'شكراً على ملاحظاتك';
|
||||
|
||||
@override
|
||||
String tripDuration(String duration) {
|
||||
return 'مدة الرحلة: $duration';
|
||||
}
|
||||
|
||||
@override
|
||||
String tripDistance(String distance) {
|
||||
return 'مسافة الرحلة: $distance';
|
||||
}
|
||||
|
||||
@override
|
||||
String get reconnect => 'جارٍ إعادة الاتصال...';
|
||||
|
||||
@override
|
||||
String get tripExpired => 'انتهت صلاحية الرحلة';
|
||||
}
|
||||
@@ -0,0 +1,394 @@
|
||||
// ignore: unused_import
|
||||
import 'package:intl/intl.dart' as intl;
|
||||
import 'app_localizations.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
|
||||
/// The translations for English (`en`).
|
||||
class AppLocalizationsEn extends AppLocalizations {
|
||||
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
||||
|
||||
@override
|
||||
String get appName => 'Tripz';
|
||||
|
||||
@override
|
||||
String get appTagline => 'Tap, ride, arrive';
|
||||
|
||||
@override
|
||||
String get phoneTitle => 'Enter your phone number to continue';
|
||||
|
||||
@override
|
||||
String get phoneLabel => 'Phone number';
|
||||
|
||||
@override
|
||||
String get phoneHint => '07XXXXXXXX';
|
||||
|
||||
@override
|
||||
String get sendCode => 'Send code';
|
||||
|
||||
@override
|
||||
String get otpTitle => 'Enter verification code';
|
||||
|
||||
@override
|
||||
String otpSentTo(String phone) {
|
||||
return 'Sent to $phone';
|
||||
}
|
||||
|
||||
@override
|
||||
String get otpLabel => 'Code';
|
||||
|
||||
@override
|
||||
String get confirm => 'Confirm';
|
||||
|
||||
@override
|
||||
String welcome(String name) {
|
||||
return 'Welcome $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String get welcomeBack => 'Welcome back';
|
||||
|
||||
@override
|
||||
String get whereTo => 'Where to?';
|
||||
|
||||
@override
|
||||
String get setLocationOnMap => 'Set location on map';
|
||||
|
||||
@override
|
||||
String get myTrips => 'My trips';
|
||||
|
||||
@override
|
||||
String get wallet => 'Wallet';
|
||||
|
||||
@override
|
||||
String get coupons => 'Coupons & invites';
|
||||
|
||||
@override
|
||||
String get settings => 'Settings';
|
||||
|
||||
@override
|
||||
String get support => 'Support';
|
||||
|
||||
@override
|
||||
String get logout => 'Logout';
|
||||
|
||||
@override
|
||||
String get language => 'Language';
|
||||
|
||||
@override
|
||||
String get arabic => 'العربية';
|
||||
|
||||
@override
|
||||
String get english => 'English';
|
||||
|
||||
@override
|
||||
String get theme => 'Theme';
|
||||
|
||||
@override
|
||||
String get lightMode => 'Light';
|
||||
|
||||
@override
|
||||
String get darkMode => 'Dark';
|
||||
|
||||
@override
|
||||
String get systemMode => 'System';
|
||||
|
||||
@override
|
||||
String get errorGeneric => 'Something went wrong';
|
||||
|
||||
@override
|
||||
String get retry => 'Try again';
|
||||
|
||||
@override
|
||||
String get emptyGeneric => 'Nothing here yet';
|
||||
|
||||
@override
|
||||
String get loading => 'Loading...';
|
||||
|
||||
@override
|
||||
String get cancel => 'Cancel';
|
||||
|
||||
@override
|
||||
String get save => 'Save';
|
||||
|
||||
@override
|
||||
String get close => 'Close';
|
||||
|
||||
@override
|
||||
String get next => 'Next';
|
||||
|
||||
@override
|
||||
String get back => 'Back';
|
||||
|
||||
@override
|
||||
String get search => 'Search';
|
||||
|
||||
@override
|
||||
String get noResults => 'No results found';
|
||||
|
||||
@override
|
||||
String get connectionError => 'Check your internet connection';
|
||||
|
||||
@override
|
||||
String get authError => 'Failed to send code';
|
||||
|
||||
@override
|
||||
String get invalidOtp => 'Invalid code';
|
||||
|
||||
@override
|
||||
String get phoneEmpty => 'Enter your phone number';
|
||||
|
||||
@override
|
||||
String get selectDestination => 'Choose your destination';
|
||||
|
||||
@override
|
||||
String get pickupLocation => 'Pickup location';
|
||||
|
||||
@override
|
||||
String get dropoffLocation => 'Destination';
|
||||
|
||||
@override
|
||||
String get chooseOnMap => 'Choose on map';
|
||||
|
||||
@override
|
||||
String get favorites => 'Favorites';
|
||||
|
||||
@override
|
||||
String get homePlace => 'Home';
|
||||
|
||||
@override
|
||||
String get workPlace => 'Work';
|
||||
|
||||
@override
|
||||
String get searchPlaces => 'Search for a place...';
|
||||
|
||||
@override
|
||||
String get recent => 'Recent';
|
||||
|
||||
@override
|
||||
String get addStop => 'Add a stop';
|
||||
|
||||
@override
|
||||
String get removeStop => 'Remove stop';
|
||||
|
||||
@override
|
||||
String get rideClasses => 'Ride class';
|
||||
|
||||
@override
|
||||
String get cash => 'Cash';
|
||||
|
||||
@override
|
||||
String get walletPayment => 'Wallet';
|
||||
|
||||
@override
|
||||
String get couponCode => 'Coupon code';
|
||||
|
||||
@override
|
||||
String get scheduleRide => 'Schedule a ride';
|
||||
|
||||
@override
|
||||
String get requestRide => 'Request a ride';
|
||||
|
||||
@override
|
||||
String get searchingDriver => 'Looking for a driver...';
|
||||
|
||||
@override
|
||||
String get cancelSearch => 'Cancel search';
|
||||
|
||||
@override
|
||||
String get driverAccepted => 'Your driver accepted';
|
||||
|
||||
@override
|
||||
String get driverArriving => 'Driver is on the way';
|
||||
|
||||
@override
|
||||
String get driverArrived => 'Your driver has arrived';
|
||||
|
||||
@override
|
||||
String get rideInProgress => 'Ride in progress';
|
||||
|
||||
@override
|
||||
String get rideCompleted => 'Ride completed';
|
||||
|
||||
@override
|
||||
String get rateDriver => 'Rate your driver';
|
||||
|
||||
@override
|
||||
String get tripFare => 'Trip fare';
|
||||
|
||||
@override
|
||||
String get waitingFee => 'Waiting fee';
|
||||
|
||||
@override
|
||||
String get discount => 'Discount';
|
||||
|
||||
@override
|
||||
String get paymentMethod => 'Payment method';
|
||||
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get submitRating => 'Submit rating';
|
||||
|
||||
@override
|
||||
String get skipRating => 'Skip';
|
||||
|
||||
@override
|
||||
String get freeWaitMinutes => 'Free wait minutes';
|
||||
|
||||
@override
|
||||
String get minutes => 'minutes';
|
||||
|
||||
@override
|
||||
String get callDriver => 'Call driver';
|
||||
|
||||
@override
|
||||
String get chatWithDriver => 'Chat with driver';
|
||||
|
||||
@override
|
||||
String get shareTrip => 'Share trip';
|
||||
|
||||
@override
|
||||
String get emergencySOS => 'Emergency SOS';
|
||||
|
||||
@override
|
||||
String get plateNumber => 'Plate number';
|
||||
|
||||
@override
|
||||
String get vehicleInfo => 'Vehicle info';
|
||||
|
||||
@override
|
||||
String get driverRating => 'Driver rating';
|
||||
|
||||
@override
|
||||
String get eta => 'Estimated arrival';
|
||||
|
||||
@override
|
||||
String get km => 'km';
|
||||
|
||||
@override
|
||||
String get min => 'min';
|
||||
|
||||
@override
|
||||
String get searchTimeout =>
|
||||
'No drivers available right now. Please try again';
|
||||
|
||||
@override
|
||||
String get priceEstimate => 'Price estimate';
|
||||
|
||||
@override
|
||||
String get perKm => '/km';
|
||||
|
||||
@override
|
||||
String capacity(int seats) {
|
||||
return '$seats seats';
|
||||
}
|
||||
|
||||
@override
|
||||
String get confirmPickup => 'Confirm pickup';
|
||||
|
||||
@override
|
||||
String get pickupSet => 'Pickup set';
|
||||
|
||||
@override
|
||||
String get destinationSet => 'Destination set';
|
||||
|
||||
@override
|
||||
String routeSummary(String distance, String duration) {
|
||||
return '$distance · $duration';
|
||||
}
|
||||
|
||||
@override
|
||||
String get noPickupSet => 'Set your pickup location';
|
||||
|
||||
@override
|
||||
String get mapPinInstructions => 'Move the map to place the pin';
|
||||
|
||||
@override
|
||||
String get tripNoDrivers => 'No drivers found nearby';
|
||||
|
||||
@override
|
||||
String get tripCancelled => 'Trip cancelled';
|
||||
|
||||
@override
|
||||
String get tripCancelledByDriver => 'Driver cancelled the trip';
|
||||
|
||||
@override
|
||||
String cancelFee(String fee, String currency) {
|
||||
return 'Cancellation fee: $fee $currency';
|
||||
}
|
||||
|
||||
@override
|
||||
String waitFreeMinutes(int minutes) {
|
||||
return '$minutes min free wait';
|
||||
}
|
||||
|
||||
@override
|
||||
String waitingCharge(String amount, String currency) {
|
||||
return 'Waiting charge: $amount $currency';
|
||||
}
|
||||
|
||||
@override
|
||||
String get driverEnRoute => 'Driver is heading to you';
|
||||
|
||||
@override
|
||||
String arrivingIn(String eta) {
|
||||
return 'Arriving in $eta';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tripStarted => 'Ride started';
|
||||
|
||||
@override
|
||||
String get tripEnd => 'Trip ended';
|
||||
|
||||
@override
|
||||
String get fareBreakdown => 'Fare breakdown';
|
||||
|
||||
@override
|
||||
String get baseFare => 'Base fare';
|
||||
|
||||
@override
|
||||
String get distanceFare => 'Distance';
|
||||
|
||||
@override
|
||||
String get timeFare => 'Time';
|
||||
|
||||
@override
|
||||
String get surgeMultiplier => 'Surge';
|
||||
|
||||
@override
|
||||
String get couponApplied => 'Coupon applied';
|
||||
|
||||
@override
|
||||
String get youPaid => 'You paid';
|
||||
|
||||
@override
|
||||
String get payCash => 'Pay cash';
|
||||
|
||||
@override
|
||||
String get rateYourTrip => 'Rate your trip';
|
||||
|
||||
@override
|
||||
String get ratingComment => 'Add a comment (optional)';
|
||||
|
||||
@override
|
||||
String get thankYou => 'Thank you for your feedback';
|
||||
|
||||
@override
|
||||
String tripDuration(String duration) {
|
||||
return 'Trip duration: $duration';
|
||||
}
|
||||
|
||||
@override
|
||||
String tripDistance(String distance) {
|
||||
return 'Trip distance: $distance';
|
||||
}
|
||||
|
||||
@override
|
||||
String get reconnect => 'Reconnecting...';
|
||||
|
||||
@override
|
||||
String get tripExpired => 'Trip expired';
|
||||
}
|
||||
Reference in New Issue
Block a user