export const fr = { common: { cancel: "Annuler", continue: "Continuer", back: "Retour", retry: "Réessayer", loading: "Chargement…", saving: "Enregistrement…", error: "Erreur", save: "Enregistrer", or: "Ou", browseHome: "Accueil", backHome: "Retour à l'accueil", openSettings: "Ouvrir les réglages", yourLocation: "Votre position", }, onboarding: { skip: "Passer", next: "Suivant", getStarted: "Commencer", slide1: { title: "La course parfaite à un geste près !", desc: "Votre voyage commence avec Waseel. Trouvez votre course idéale sans effort.", }, slide2: { title: "La meilleure voiture avec Waseel", desc: "Découvrez la facilité de trouver votre course idéale avec Waseel", }, slide3: { title: "Votre course, à votre façon. C'est parti !", desc: "Saisissez votre destination, détendez-vous, et laissez-nous faire le reste.", }, }, auth: { signIn: { welcome: "Bienvenue 👋", email: "E-mail", emailPlaceholder: "karim@email.com", password: "Mot de passe", passwordPlaceholder: "••••••••", keepSignedIn: "Rester connecté", signingIn: "Connexion…", signInBtn: "Se connecter", signInGoogle: "Se connecter avec Google", forgotPassword: "Mot de passe oublié ?", noAccount: "Pas encore de compte ? ", signUpLink: "S'inscrire", carAlt: "Voiture", reset: { title: "Réinitialiser le mot de passe", requestBody: "Saisissez votre e-mail et nous vous enverrons un code à 6 chiffres.", emailPlaceholder: "karim@email.com", sending: "Envoi…", sendCode: "Envoyer le code", newPassTitle: "Saisir le nouveau mot de passe", resetBody: "Nous avons envoyé un code à {email}", devBanner: "L'envoi d'e-mails n'est pas configuré sur ce serveur. Votre code est ", newPassLabel: "Nouveau mot de passe", newPasswordPlaceholder: "••••••••", resetting: "Réinitialisation…", resetBtn: "Réinitialiser le mot de passe", }, alertMissingTitle: "Informations manquantes", alertMissingBody: "Saisissez votre e-mail et votre mot de passe.", alertErrorTitle: "Erreur", alertErrorFallback: "Connexion impossible. Réessayez.", errEmail: "Saisissez votre adresse e-mail.", errCode: "Saisissez le code à 6 chiffres.", errPassword: "Le mot de passe doit comporter au moins 8 caractères.", errReset: "Réinitialisation impossible. Réessayez.", }, signUp: { createAccount: "Créez votre compte", howUse: "Comment utiliserez-vous Waseel ?", riderTitle: "J'ai besoin d'une course", riderDesc: "Réservez des courses et arrivez à destination", driverTitle: "Je veux conduire", driverDesc: "Proposez des courses et gagnez de l'argent avec votre voiture", carAlt: "Voiture", name: "Nom", namePlaceholder: "Karim Haddad", email: "E-mail", emailPlaceholder: "karim@email.com", phoneOptional: "Téléphone (facultatif)", phonePlaceholder: "70 123 456", password: "Mot de passe", passwordPlaceholder: "••••••••", signUpBtn: "S'inscrire", signUpGoogle: "S'inscrire avec Google", haveAccount: "Vous avez déjà un compte ? ", signInLink: "Se connecter", verify: { title: "Vérification", body: "Nous avons envoyé un code de vérification à {email}", devBanner: "L'envoi d'e-mails n'est pas configuré sur ce serveur. Votre code de vérification est ", verifying: "Vérification…", verifyBtn: "Vérifier l'e-mail", checkAlt: "Vérifié", }, verified: { title: "Vérifié", body: "Votre compte a été vérifié avec succès.", }, alertMissingTitle: "Informations manquantes", alertMissingBody: "Veuillez renseigner votre nom, votre e-mail et votre mot de passe.", alertPhoneTitle: "Numéro de téléphone invalide", alertPhoneBody: "Saisissez un numéro libanais valide, ex. 70 123 456.", alertErrorTitle: "Erreur", alertErrorFallback: "Création du compte impossible.", errCode: "Saisissez le code à 6 chiffres.", errVerify: "Échec de la vérification. Réessayez.", }, role: { title: "Comment utiliserez-vous Waseel ?", subtitle: "Vous pouvez changer cela plus tard en contactant le support.", riderTitle: "Je suis un passager", riderDesc: "Réservez des courses et déplacez-vous au Liban", driverTitle: "Je suis un chauffeur", driverDesc: "Proposez des courses et gagnez de l'argent", alertErrorTitle: "Erreur", alertErrorBody: "Enregistrement du choix impossible. Réessayez.", }, }, home: { welcome: "Bienvenue {name} 👋", logoutAlt: "Déconnexion", currentLocation: "Votre position actuelle", findingLocation: "Localisation en cours…", whatNeed: "De quoi avez-vous besoin ?", recentRides: "Courses récentes", noRecent: "Aucune course récente.", noRecentAlt: "Aucune course récente", }, rides: { allRides: "Toutes les courses", noRecent: "Aucune course récente.", noRecentAlt: "Aucune course récente", }, tabs: { home: "Accueil", rides: "Courses", chat: "Discussion", profile: "Profil", settings: "Réglages", }, chat: { title: "Discussion", messageAlt: "message", noMessages: "Pas encore de messages", startConversation: "Démarrez une conversation avec vos amis et votre famille", }, profile: { title: "Mon profil", avatarAlt: "Votre avatar", firstName: "Prénom", firstNamePlaceholder: "Votre prénom", lastName: "Nom", lastNamePlaceholder: "Votre nom", email: "E-mail", emailPlaceholder: "Votre adresse e-mail", }, findRide: { title: "Course", from: "De", to: "À", findNow: "Rechercher", }, confirmRide: { title: "Demander une course", yourTrip: "Votre trajet", pickup: "Départ", destination: "Destination", tripTime: "Durée {time}", paymentMethod: "Mode de paiement", cash: "💵 Espèces", card: "💳 Carte", fareDisplay: "${fare}", lbpEstimate: "≈ {lbp}", noDrivers: "Aucun chauffeur {service} en ligne pour l'instant", findingDrivers: "Recherche de chauffeurs à proximité…", nearestDriver: "Chauffeur le plus proche ≈ {eta} min", requesting: "Demande en cours…", noDriversOnline: "Aucun chauffeur en ligne", requestCash: "Demander une course · Payer en espèces", requestCard: "Demander une course · Payer par carte", alertMissingRouteTitle: "Itinéraire manquant", alertMissingRouteBody: "Veuillez d'abord définir un départ et une destination.", alertNoEstimateTitle: "Pas d'estimation", alertNoEstimateBody: "Nous n'avons pas pu estimer ce tarif. Réessayez.", alertErrorTitle: "Erreur", alertErrorFallback: "Une erreur est survenue lors de la réservation. Réessayez.", alertPayCardTitle: "Payer par carte", alertPayCardBody: "Votre carte sera débitée de ${fare}.", }, bookRide: { status: { requested: "Recherche de votre chauffeur…", accepted: "Chauffeur assigné — en route vers vous", enRoute: "Course en cours", completed: "Vous êtes arrivé !", cancelled: "Course annulée", }, rideNotFound: "Course introuvable.", couldNotLoad: "Chargement de cette course impossible.", backHome: "Retour à l'accueil", matchingDriver: "Nous vous mettons en relation avec le chauffeur {service} le plus proche.", ratingFallback: "—", paymentCash: "💵 Espèces au chauffeur", paymentCard: "💳 Payé par carte", fare: "Tarif : ${fare}", tripTime: "Durée {time}", rideCancelled: "Cette course a été annulée.", cancelRide: "Annuler la course", cancelling: "Annulation…", alertErrorTitle: "Erreur", alertErrorBody: "Annulation de cette course impossible. Réessayez.", }, driver: { home: { signOutAlt: "Déconnexion", driverMode: "Mode chauffeur", online: "● En ligne — réception des demandes", goOnline: "○ Passer en ligne pour rouler", todaysEarnings: "Gain du jour", completedToday: "Terminées aujourd'hui", incomingRequests: "Demandes entrantes", incomingRequestsOffline: "Demandes entrantes (hors ligne)", waitingRequests: "En attente de demandes…", goOnlineStart: "Passez en ligne pour commencer à rouler.", welcome: "Bienvenue, {name}", welcomeFallback: "chauffeur", setupIntro: "Configurez votre profil chauffeur pour commencer à recevoir des demandes.", whatDrive: "Que allez-vous conduire ?", carModel: "Modèle de voiture", carModelPlaceholder: "ex. Toyota Camry", carSeats: "Places", carSeatsPlaceholder: "4", saving: "Enregistrement…", startDriving: "Commencer à rouler", alertSeatsTitle: "Places invalides", alertSeatsBody: "Le nombre de places doit être un entier entre 1 et 8.", alertErrorTitle: "Erreur", alertCreateBody: "Création du profil chauffeur impossible. Réessayez.", alertToggleBody: "Changement de statut impossible. Réessayez.", noRequestsAlt: "Aucune course récente", }, offerCard: { newRequest: "Nouvelle demande · {service}", cash: "💵 Espèces", card: "💳 Carte", fromAlt: "De", toAlt: "À", tripTime: "Durée", fare: "Tarif", decline: "Refuser", accept: "Accepter", }, activeRide: { headToPickup: "Direction le départ", tripInProgress: "Course en cours", rider: "{name}", fromAlt: "De", toAlt: "À", fare: "Tarif", startTrip: "Démarrer la course", completeTrip: "Terminer la course", alertErrorTitle: "Erreur", alertAcceptBody: "Acceptation impossible. La course a peut-être été prise ou a expiré.", alertDeclineBody: "Refus de la course impossible. Réessayez.", alertUpdateBody: "Mise à jour de la course impossible. Réessayez.", }, }, services: { car: { label: "Voiture", tagline: "Une course quotidienne, jusqu'à 4 places.", }, moto: { label: "Moto", tagline: "Évitez le trafic — un passager, sans bagages.", }, courier: { label: "Coursier", tagline: "Envoyez un colis en ville sans vous déplacer.", }, chauffeur: { label: "Ma voiture", tagline: "Un chauffeur vient conduire votre propre voiture.", }, }, pois: { nearbyTitle: "Suggestions à proximité", mall: "Centre commercial", hospital: "Hôpital", pharmacy: "Pharmacie", restaurant: "Restaurant", searching: "recherche…", noneNearby: "rien à proximité", kmAway: "{km} km", routeAway: "{km} km · {min} min", nearbyPlace: "Lieu à proximité", }, units: { min: { zero: "0 min", one: "{n} min", other: "{n} min" }, h: "{n}h", m: "{n}m", hoursMinutes: "{h}h {m}m", seats: { zero: "{n} places", one: "{n} place", other: "{n} places" }, lbpSuffix: " LBP", }, months: { jan: "janv.", feb: "févr.", mar: "mars", apr: "avr.", may: "mai", jun: "juin", jul: "juil.", aug: "août", sep: "sept.", oct: "oct.", nov: "nov.", dec: "déc.", }, components: { oauth: { or: "Ou", googleLogoAlt: "Logo Google", alertFailTitle: "Échec de la connexion Google", alertFailNoToken: "Aucun jeton renvoyé. Réessayez.", alertFailFallback: "Réessayez.", }, otp: { code: "Code", codePlaceholder: "123456", pasteCode: "Coller le code depuis Gmail", }, googleTextInput: { searchAlt: "Rechercher", placeholder: "Où voulez-vous aller ?", }, inputField: { labelIconAlt: "Icône {label}", }, locationNotice: { denied: { title: "Accès à la position désactivé", body: "Waseel a besoin de votre position pour afficher les chauffeurs à proximité et définir votre point de départ.", action: "Ouvrir les réglages", }, servicesOff: { title: "Services de localisation désactivés", body: "Activez la localisation sur votre appareil, puis réessayez.", action: "Réessayer", }, unavailable: { title: "Position introuvable", body: "Déplacez-vous vers une zone avec un meilleur signal, ou définissez votre départ manuellement.", action: "Réessayer", }, }, map: { destination: "Destination", webUnavailable: "La carte n'est pas disponible sur le web.\nUtilisez Android ou iOS pour l'expérience complète.", }, rideCard: { mapAlt: "Carte", originAlt: "Origine", destinationAlt: "Destination", dateTime: "Date & Heure", driver: "Chauffeur", carSeats: "Places", fare: "Tarif", paymentStatus: "Statut du paiement", paymentCash: "Espèces · Payer au chauffeur", paymentPaid: "Payé par carte", paymentOther: "{status}", }, rideLayout: { goBack: "Retour", backArrowAlt: "Flèche retour", }, payment: { paymentMethod: "Mode de paiement", cash: "💵 Espèces", card: "💳 Carte", processing: "Traitement...", bookCash: "Réserver · Payer en espèces au chauffeur", confirmCard: "Confirmer & Payer par carte", checkAlt: "Vérifié", rideBooked: "Course réservée !", successBody: "Merci pour votre réservation.\n Votre commande a été enregistrée.\n", cashInstruction: "Préparez {lbp}.", backHome: "Retour à l'accueil", alertPayCardTitle: "Payer par carte", alertPayCardBody: "Votre carte sera débitée de ${amount}.", alertErrorTitle: "Erreur", alertErrorBody: "Une erreur est survenue lors de la réservation. Réessayez.", alertPaymentNotCompletedTitle: "Paiement non effectué", alertPaymentNotCompletedBody: "Votre paiement a été annulé ou n'a pas pu être vérifié. Réessayez.", alertProcessingTitle: "Erreur", alertProcessingBody: "Une erreur est survenue lors du traitement du paiement. Réessayez.", }, driverCard: { avatarAlt: "Avatar du chauffeur", starAlt: "Étoile", dollarAlt: "Dollar", carAlt: "Voiture", seats: "{n} places", }, }, settings: { title: "Réglages", maps: { title: "Cartes & Navigation", description: "Waseel utilise votre position pour afficher les chauffeurs à proximité et naviguer vers votre départ.", statusGranted: "Accordé", statusDenied: "Non autorisé", statusBlocked: "Bloqué", statusUnknown: "Vérification…", openSettings: "Ouvrir les réglages", }, appearance: { title: "Apparence", description: "Choisissez l'apparence de Waseel.", light: "Clair", dark: "Sombre", system: "Système", }, safety: { title: "Sécurité", call112: "Appeler le 112 — Urgences", call112Description: "Appelez le numéro d'urgence du Liban pour la police, les secours ou les pompiers.", callFailedTitle: "Appel impossible", callFailedBody: "Aucun composeur disponible sur cet appareil. Appelez le 112 manuellement.", proactive: { title: "Sécurité proactive", body: "Partagez le statut de votre course et votre position en direct avec vos contacts de confiance, et voyagez en sachant que l'aide est à un geste près.", }, verification: { title: "Vérification des passagers", body: "Passagers et chauffeurs vérifient leur numéro de téléphone et leur identité, afin que vous sachiez toujours avec qui vous roulez.", }, privacy: { title: "Protection de votre vie privée", body: "Votre numéro de téléphone et vos coordonnées restent masqués dans la discussion. Les messages ne sont visibles qu'entre vous et votre chauffeur pour cette course.", }, }, language: { title: "Langue", description: "Langue de l'application.", en: "English", ar: "العربية", fr: "Français", rtlRestartTitle: "Redémarrage pour l'arabe", rtlRestartBody: "La mise en page arabe s'appliquera pleinement à la prochaine ouverture de l'application.", }, keepAwake: { title: "Ne pas verrouiller l'écran", description: "Maintenir l'écran allumé lorsque l'application est ouverte.", }, overlay: { title: "Affichage par-dessus d'autres applications", description: "Requis pour que les alertes de course apparaissent par-dessus les autres applications.", allow: "Autoriser l'affichage par-dessus les autres applications", openedHint: "Réglages système ouverts", notAndroid: "Disponible uniquement sur Android.", }, }, };