Files
waseel/lib/translations/fr.ts
T

510 lines
17 KiB
TypeScript

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.",
},
},
};