Files
waseel/lib/translations/ar.ts
T

486 lines
19 KiB
TypeScript

export const ar = {
common: {
cancel: "إلغاء",
continue: "متابعة",
back: "رجوع",
retry: "حاول مجددًا",
loading: "جارٍ التحميل…",
saving: "جارٍ الحفظ…",
error: "خطأ",
save: "حفظ",
or: "أو",
browseHome: "الصفحة الرئيسية",
backHome: "العودة للرئيسية",
openSettings: "فتح الإعدادات",
yourLocation: "موقعك",
},
onboarding: {
skip: "تخطٍّ",
next: "التالي",
getStarted: "ابدأ الآن",
slide1: {
title: "رحلتك المثالية على بُعد نقرة واحدة!",
desc: "تبدأ رحلتك مع وصّيل. اعثر على رحلتك المثالية بكل سهولة.",
},
slide2: {
title: "أفضل سيارة بين يديك مع وصّيل",
desc: "اكتشف سهولة العثور على رحلتك المثالية مع وصّيل",
},
slide3: {
title: "رحلتك بطريقتك. لننطلق!",
desc: "أدخل وجهتك، وارتَح، ودعنا نتولّى الباقي.",
},
},
auth: {
signIn: {
welcome: "أهلاً 👋",
email: "البريد الإلكتروني",
emailPlaceholder: "karim@email.com",
password: "كلمة المرور",
passwordPlaceholder: "••••••••",
keepSignedIn: "إبقائي مسجّلاً",
signingIn: "جارٍ تسجيل الدخول…",
signInBtn: "تسجيل الدخول",
signInGoogle: "تسجيل الدخول عبر Google",
forgotPassword: "نسيت كلمة المرور؟",
noAccount: "ليس لديك حساب؟ ",
signUpLink: "إنشاء حساب",
carAlt: "سيارة",
reset: {
title: "إعادة تعيين كلمة المرور",
requestBody:
"أدخل بريدك الإلكتروني وسنرسل لك رمز إعادة تعيين مكوّن من 6 أرقام.",
emailPlaceholder: "karim@email.com",
sending: "جارٍ الإرسال…",
sendCode: "إرسال الرمز",
newPassTitle: "أدخل كلمة المرور الجديدة",
resetBody: "أرسلنا رمز إعادة التعيين إلى {email}",
devBanner:
"إرسال البريد غير مُفعّل على هذا الخادم. رمز إعادة التعيين هو ",
newPassLabel: "كلمة المرور الجديدة",
newPasswordPlaceholder: "••••••••",
resetting: "جارٍ إعادة التعيين…",
resetBtn: "إعادة تعيين كلمة المرور",
},
alertMissingTitle: "معلومات ناقصة",
alertMissingBody: "أدخل بريدك الإلكتروني وكلمة المرور.",
alertErrorTitle: "خطأ",
alertErrorFallback: "تعذّر تسجيل الدخول. حاول مرة أخرى.",
errEmail: "أدخل بريدك الإلكتروني.",
errCode: "أدخل الرمز المكوّن من 6 أرقام.",
errPassword: "يجب أن تكون كلمة المرور 8 أحرف على الأقل.",
errReset: "تعذّر إعادة تعيين كلمة المرور. حاول مرة أخرى.",
},
signUp: {
createAccount: "أنشئ حسابك",
howUse: "كيف ستستخدم وصّيل؟",
riderTitle: "أحتاج رحلة",
riderDesc: "احجز رحلات وصل إلى وجهتك",
driverTitle: "أريد القيادة",
driverDesc: "قدّم رحلات واكسب المال بسيارتك",
carAlt: "سيارة",
name: "الاسم",
namePlaceholder: "كريم حداد",
email: "البريد الإلكتروني",
emailPlaceholder: "karim@email.com",
phoneOptional: "الهاتف (اختياري)",
phonePlaceholder: "70 123 456",
password: "كلمة المرور",
passwordPlaceholder: "••••••••",
signUpBtn: "إنشاء حساب",
signUpGoogle: "التسجيل عبر Google",
haveAccount: "هل لديك حساب بالفعل؟ ",
signInLink: "تسجيل الدخول",
verify: {
title: "التحقق",
body: "أرسلنا رمز تحقق إلى {email}",
devBanner: "إرسال البريد غير مُفعّل على هذا الخادم. رمز التحقق هو ",
verifying: "جارٍ التحقق…",
verifyBtn: "تحقق من البريد",
checkAlt: "تحقق",
},
verified: {
title: "تم التحقق",
body: "تم التحقق من حسابك بنجاح.",
},
alertMissingTitle: "معلومات ناقصة",
alertMissingBody: "يرجى ملء الاسم والبريد الإلكتروني وكلمة المرور.",
alertPhoneTitle: "رقم هاتف غير صالح",
alertPhoneBody: "أدخل رقمًا لبنانيًا صالحًا، مثلاً 70 123 456.",
alertErrorTitle: "خطأ",
alertErrorFallback: "تعذّر إنشاء حسابك.",
errCode: "أدخل الرمز المكوّن من 6 أرقام.",
errVerify: "فشل التحقق. حاول مرة أخرى.",
},
role: {
title: "كيف ستستخدم وصّيل؟",
subtitle: "يمكنك تغيير ذلك لاحقًا بالتواصل مع الدعم.",
riderTitle: "أنا راكب",
riderDesc: "احجز رحلات وتنقّل في لبنان",
driverTitle: "أنا سائق",
driverDesc: "قدّم رحلات واكسب المال",
alertErrorTitle: "خطأ",
alertErrorBody: "تعذّر حفظ اختيارك. حاول مرة أخرى.",
},
},
home: {
welcome: "أهلاً {name} 👋",
logoutAlt: "تسجيل الخروج",
currentLocation: "موقعك الحالي",
findingLocation: "جارٍ العثور على موقعك…",
whatNeed: "بماذا تحتاج؟",
recentRides: "الرحلات الأخيرة",
noRecent: "لا توجد رحلات حديثة.",
noRecentAlt: "لا توجد رحلات حديثة",
},
rides: {
allRides: "كل الرحلات",
noRecent: "لا توجد رحلات حديثة.",
noRecentAlt: "لا توجد رحلات حديثة",
},
tabs: {
home: "الرئيسية",
rides: "الرحلات",
chat: "الدردشة",
profile: "الملف",
settings: "الإعدادات",
},
chat: {
title: "الدردشة",
messageAlt: "رسالة",
noMessages: "لا توجد رسائل بعد",
startConversation: "ابدأ محادثة مع أصدقائك وعائلتك",
},
profile: {
title: "ملفي الشخصي",
avatarAlt: "صورتك الشخصية",
firstName: "الاسم الأول",
firstNamePlaceholder: "اسمك الأول",
lastName: "اسم العائلة",
lastNamePlaceholder: "اسم عائلتك",
email: "البريد الإلكتروني",
emailPlaceholder: "بريدك الإلكتروني",
},
findRide: {
title: "الرحلة",
from: "من",
to: "إلى",
findNow: "ابحث الآن",
},
confirmRide: {
title: "طلب رحلة",
yourTrip: "رحلتك",
pickup: "نقطة الصعود",
destination: "الوجهة",
tripTime: "زمن الرحلة {time}",
paymentMethod: "طريقة الدفع",
cash: "💵 نقدًا",
card: "💳 بطاقة",
fareDisplay: "${fare}",
lbpEstimate: "≈ {lbp}",
noDrivers: "لا يوجد سائقو {service} متصلون الآن",
findingDrivers: "جارٍ البحث عن سائقين قريبين…",
nearestDriver: "أقرب سائق ≈ {eta} دقيقة",
requesting: "جارٍ الطلب…",
noDriversOnline: "لا يوجد سائقون متصلون",
requestCash: "اطلب رحلة · ادفع نقدًا للسائق",
requestCard: "اطلب رحلة · ادفع بالبطاقة",
alertMissingRouteTitle: "المسار ناقص",
alertMissingRouteBody: "يرجى تحديد نقطة الصعود والوجهة أولاً.",
alertNoEstimateTitle: "لا يوجد تقدير",
alertNoEstimateBody: "تعذّر تقدير الأجرة. حاول مرة أخرى.",
alertErrorTitle: "خطأ",
alertErrorFallback: "حدث خطأ أثناء حجز رحلتك. حاول مرة أخرى.",
alertPayCardTitle: "الدفع بالبطاقة",
alertPayCardBody: "سيتم خصم ${fare} من بطاقتك.",
},
bookRide: {
status: {
requested: "جارٍ البحث عن سائقك…",
accepted: "تم تعيين سائق — في طريقه إليك",
enRoute: "أنت في الرحلة",
completed: "وصلت!",
cancelled: "تم إلغاء الرحلة",
},
rideNotFound: "الرحلة غير موجودة.",
couldNotLoad: "تعذّر تحميل هذه الرحلة.",
backHome: "العودة للرئيسية",
matchingDriver: "نطابقك مع أقرب سائق {service}.",
ratingFallback: "—",
paymentCash: "💵 نقدًا للسائق",
paymentCard: "💳 مدفوع بالبطاقة",
fare: "الأجرة: ${fare}",
tripTime: "زمن الرحلة {time}",
rideCancelled: "تم إلغاء هذه الرحلة.",
cancelRide: "إلغاء الرحلة",
cancelling: "جارٍ الإلغاء…",
alertErrorTitle: "خطأ",
alertErrorBody: "تعذّر إلغاء هذه الرحلة. حاول مرة أخرى.",
},
driver: {
home: {
signOutAlt: "تسجيل الخروج",
driverMode: "وضع السائق",
online: "● متصل — يتلقّى طلبات الرحلات",
goOnline: "○ اتصل لتقديم الرحلات",
todaysEarnings: "أرباح اليوم",
completedToday: "المكتملة اليوم",
incomingRequests: "الطلبات الواردة",
incomingRequestsOffline: "الطلبات الواردة (غير متصل)",
waitingRequests: "بانتظار طلبات الرحلات…",
goOnlineStart: "اتصل لبدء القيادة.",
welcome: "أهلاً {name}",
welcomeFallback: "سائق",
setupIntro: "أكمل ملف السائق لبدء تلقّي طلبات الرحلات.",
whatDrive: "ماذا ستقود؟",
carModel: "موديل السيارة",
carModelPlaceholder: "مثال: Toyota Camry",
carSeats: "عدد المقاعد",
carSeatsPlaceholder: "4",
saving: "جارٍ الحفظ…",
startDriving: "ابدأ القيادة",
alertSeatsTitle: "عدد مقاعد غير صالح",
alertSeatsBody: "يجب أن يكون عدد المقاعد عددًا صحيحًا بين 1 و8.",
alertErrorTitle: "خطأ",
alertCreateBody: "تعذّر إنشاء ملف السائق. حاول مرة أخرى.",
alertToggleBody: "تعذّر تغيير حالتك. حاول مرة أخرى.",
noRequestsAlt: "لا توجد رحلات حديثة",
},
offerCard: {
newRequest: "طلب جديد · {service}",
cash: "💵 نقدًا",
card: "💳 بطاقة",
fromAlt: "من",
toAlt: "إلى",
tripTime: "زمن الرحلة",
fare: "الأجرة",
decline: "رفض",
accept: "قبول",
},
activeRide: {
headToPickup: "اتجه إلى نقطة الصعود",
tripInProgress: "الرحلة جارية",
rider: "{name}",
fromAlt: "من",
toAlt: "إلى",
fare: "الأجرة",
startTrip: "ابدأ الرحلة",
completeTrip: "أنهِ الرحلة",
alertErrorTitle: "خطأ",
alertAcceptBody: "تعذّر قبول هذه الرحلة. ربما حُجزت أو انتهت صلاحيتها.",
alertDeclineBody: "تعذّر رفض هذه الرحلة. حاول مرة أخرى.",
alertUpdateBody: "تعذّر تحديث الرحلة. حاول مرة أخرى.",
},
},
services: {
car: { label: "سيارة", tagline: "رحلة يومية، حتى 4 مقاعد." },
moto: { label: "موتور", tagline: "تجنّب الزحام — راكب واحد، بدون أمتعة." },
courier: {
label: "توصيل طرود",
tagline: "أرسل طردًا عبر المدينة دون ركوب.",
},
chauffeur: { label: "سائق خاص", tagline: "يأتيك سائق ويقود سيارتك أنت." },
},
pois: {
nearbyTitle: "اقتراحات قريبة",
mall: "مركز تسوّق",
hospital: "مستشفى",
pharmacy: "صيدلية",
restaurant: "مطعم",
searching: "جارٍ البحث…",
noneNearby: "لا يوجد قريب",
kmAway: "{km} كم",
routeAway: "{km} كم · {min} دقيقة",
nearbyPlace: "مكان قريب",
},
units: {
min: { zero: "0 دقيقة", one: "{n} دقيقة", other: "{n} دقائق" },
h: "{n} س",
m: "{n} د",
hoursMinutes: "{h}س {m}د",
seats: { zero: "{n} مقاعد", one: "مقعد", other: "{n} مقاعد" },
lbpSuffix: " ل.ل.",
},
months: {
jan: "يناير",
feb: "فبراير",
mar: "مارس",
apr: "أبريل",
may: "مايو",
jun: "يونيو",
jul: "يوليو",
aug: "أغسطس",
sep: "سبتمبر",
oct: "أكتوبر",
nov: "نوفمبر",
dec: "ديسمبر",
},
components: {
oauth: {
or: "أو",
googleLogoAlt: "شعار Google",
alertFailTitle: "فشل تسجيل الدخول عبر Google",
alertFailNoToken: "لم يُعَد أي رمز. حاول مرة أخرى.",
alertFailFallback: "حاول مرة أخرى.",
},
otp: {
code: "الرمز",
codePlaceholder: "123456",
pasteCode: "لصق الرمز من Gmail",
},
googleTextInput: {
searchAlt: "بحث",
placeholder: "إلى أين تريد الذهاب؟",
},
inputField: {
labelIconAlt: "أيقونة {label}",
},
locationNotice: {
denied: {
title: "الوصول إلى الموقع مُيقَف",
body: "يحتاج وصّيل إلى موقعك لإظهار السائقين القريبين وتحديد نقطة الصعود.",
action: "فتح الإعدادات",
},
servicesOff: {
title: "خدمات الموقع مُيقَفة",
body: "فعّل الموقع على جهازك ثم حاول مجددًا.",
action: "حاول مجددًا",
},
unavailable: {
title: "تعذّر العثور على موقعك",
body: "انتقل إلى مكان بإشارة أوضح، أو حدّد نقطة الصعود يدويًا.",
action: "حاول مجددًا",
},
},
map: {
destination: "الوجهة",
webUnavailable:
"الخريطة غير متاحة على الويب.\nافتح التطبيق على أندرويد أو iOS للتجربة الكاملة.",
},
rideCard: {
mapAlt: "خريطة",
originAlt: "المصدر",
destinationAlt: "الوجهة",
dateTime: "التاريخ والوقت",
driver: "السائق",
carSeats: "المقاعد",
fare: "الأجرة",
paymentStatus: "حالة الدفع",
paymentCash: "نقدًا · ادفع للسائق",
paymentPaid: "مدفوع بالبطاقة",
paymentOther: "{status}",
},
rideLayout: {
goBack: "رجوع",
backArrowAlt: "سهم الرجوع",
},
payment: {
paymentMethod: "طريقة الدفع",
cash: "💵 نقدًا",
card: "💳 بطاقة",
processing: "جارٍ المعالجة...",
bookCash: "احجز رحلة · ادفع نقدًا للسائق",
confirmCard: "تأكيد والدفع بالبطاقة",
checkAlt: "تحقق",
rideBooked: "تم حجز الرحلة!",
successBody: "شكرًا لحجزك.\n تم تسجيل حجزك.\n",
cashInstruction: "يرجى تجهيز {lbp}.",
backHome: "العودة للرئيسية",
alertPayCardTitle: "الدفع بالبطاقة",
alertPayCardBody: "سيتم خصم ${amount} من بطاقتك.",
alertErrorTitle: "خطأ",
alertErrorBody: "حدث خطأ أثناء حجز رحلتك. حاول مرة أخرى.",
alertPaymentNotCompletedTitle: "لم يكتمل الدفع",
alertPaymentNotCompletedBody:
"أُلغي الدفع أو تعذّر التحقق منه. حاول مرة أخرى.",
alertProcessingTitle: "خطأ",
alertProcessingBody: "حدث خطأ أثناء معالجة الدفع. حاول مرة أخرى.",
},
driverCard: {
avatarAlt: "صورة السائق",
starAlt: "نجمة",
dollarAlt: "دولار",
carAlt: "سيارة",
seats: "{n} مقاعد",
},
},
settings: {
title: "الإعدادات",
maps: {
title: "الخرائط والتنقّل",
description:
"يستخدم وصّيل موقعك لإظهار السائقين القريبين والتنقّل إلى نقطة الصعود.",
statusGranted: "مُتاح",
statusDenied: "غير مسموح",
statusBlocked: "محظور",
statusUnknown: "جارٍ التحقق…",
openSettings: "فتح الإعدادات",
},
appearance: {
title: "المظهر",
description: "اختر شكل وصّيل.",
light: "فاتح",
dark: "داكن",
system: "النظام",
},
safety: {
title: "الأمان",
call112: "اتصل بـ 112 — الطوارئ",
call112Description:
"اتصل برقم الطوارئ في لبنان للشرطة أو الإسعاف أو الإطفاء.",
callFailedTitle: "تعذّر إجراء المكالمة",
callFailedBody: "لا يوجد هاتف على هذا الجهاز. اتصل بـ 112 يدويًا.",
proactive: {
title: "الأمان الاستباقي",
body: "شارك حالة رحلتك وموقعك المباشر مع جهات موثوقة، وامتحن بثقة مع وجود المساعدة على بُعد نقرة.",
},
verification: {
title: "التحقق من الركاب",
body: "يتحقق الركاب والسائقون من أرقام هواتفهم وهويتهم، فتعرف دائمًا مع من تركب.",
},
privacy: {
title: "حماية خصوصيتك",
body: "يبقى رقم هاتفك وبياناتك مخفية في الدردشة. الرسائل ظاهرة فقط بينك وبين سائقك لهذه الرحلة.",
},
},
language: {
title: "اللغة",
description: "لغة التطبيق.",
en: "English",
ar: "العربية",
fr: "Français",
rtlRestartTitle: "إعادة التشغيل للعربية",
rtlRestartBody:
"سيُطبَّق التخطيط العربي بالكامل في المرة القادمة التي تفتح فيها التطبيق.",
},
keepAwake: {
title: "عدم قفل الشاشة",
description: "إبقاء الشاشة مضاءة أثناء فتح التطبيق.",
},
overlay: {
title: "العرض فوق التطبيقات الأخرى",
description: "مطلوب لتظهر تنبيهات الرحلات فوق التطبيقات الأخرى.",
allow: "السماح بالعرض فوق التطبيقات الأخرى",
openedHint: "تم فتح إعدادات النظام",
notAndroid: "متاح على أندرويد فقط.",
},
},
};