{
  "common": {
    "help": "Aide",
    "close": "Fermer",
    "open": "Ouvrir",
    "print": "Imprimer",
    "cancel": "Annuler",
    "save": "Enregistrer",
    "delete": "Supprimer",
    "clear": "Effacer",
    "submit": "Soumettre",
    "back": "Retour",
    "next": "Suivant",
    "previous": "Précédent",
    "today": "Aujourd'hui",
    "yes": "Oui",
    "no": "Non",
    "loading": "Chargement...",
    "confirmClearAllPlays": "Êtes-vous sûr de vouloir effacer toutes les mises?"
  },
  "topbar": {
    "terminal": "",
    "results": "RÉSULTATS",
    "sync": "Synchro",
    "contacts": "Contacts",
    "profile": "Profil",
    "notifications": "Notifications",
    "changePassword": "Changer le mot de passe",
    "logout": "Déconnexion",
    "noNotifications": "Aucune notification pour le moment",
    "more": "Plus"
  },
  "sidebar": {
    "menu": "Menu",
    "monitoring": "Surveillance",
    "pending": "Paiements en attente",
    "sales": "Historique des ventes",
    "printReport": "Imprimer le rapport",
    "duplicate": "Dupliquer",
    "duplicatePlays": "Dupliquer les jeux",
    "plays": "Jeux",
    "pay": "Payer",
    "viewSales": "Voir les ventes",
    "schedules": "Horaires",
    "help": "Aide",
    "settings": "Paramètres",
    "authorize": "Autoriser le poinçon",
    "generator": "Générateur de jeux aléatoires",
    "logout": "Déconnexion",
    "language": "Langue"
  },
  "horarios": {
    "morning": "Matin",
    "afternoon": "Après-midi",
    "night": "Nuit",
    "lotteries": "loteries"
  },
  "input": {
    "lottery": "LOTERIE",
    "play": "JEU",
    "amount": "MONTANT",
    "enterNumbers": "Entrer les numéros",
    "enterAmount": "Entrer le montant",
    "recentTickets": "Tickets récents",
    "searchLottery": "Rechercher loterie...",
    "noLotteriesFound": "Aucune loterie trouvée",
    "closes": "Ferme",
    "searchTickets": "Rechercher des tickets...",
    "plays": "Jeux",
    "total": "Total",
    "telegramOn": "Telegram activé",
    "telegramOff": "Telegram désactivé",
    "whatsappOn": "WhatsApp activé",
    "whatsappOff": "WhatsApp désactivé",
    "ticketLanguage": "Langue du ticket",
    "cancelTicket": "Annuler le ticket sélectionné",
    "printCopy": "Imprimer une copie du ticket",
    "cancelShort": "Annuler",
    "copyShort": "Copie",
    "convertPlaysShortcut": "+ pour convertir les jeux",
    "saveTicket": "Enregistrer le Ticket",
    "invalidPlay": "Jeu invalide - Les numéros doivent avoir un nombre pair de chiffres (2, 4 ou 6)",
    "error": {
      "minLength": "Minimum 2 caractères requis",
      "invalidAmount": "Montant invalide",
      "noLotterySelected": "Aucune loterie sélectionnée. Veuillez d'abord choisir une loterie.",
      "oddLength": "Les numéros doivent avoir un nombre pair de chiffres (2, 4 ou 6)",
      "maxLengthDominican": "Maximum 6 chiffres autorisés (Tripleta)",
      "invalidCharacters": "Caractères invalides dans le jeu",
      "invalidDPattern": "Modèle 'd' invalide - Doit être des paires égales (ex: 33d66)",
      "invalidDSequence": "Séquence invalide - La fin doit être >= début",
      "invalidDotPattern": "Modèle '.' invalide - Doit se terminer par un point",
      "oddLengthDot": "Les numéros avec '.' doivent avoir un nombre pair de chiffres",
      "invalidCash3Sequence": "Séquence Cash3 invalide - Doit être 3 chiffres + 3 chiffres (ex: 345+348)",
      "invalidSequenceRange": "Séquence invalide - Le numéro de fin doit être >= numéro de début",
      "invalidBolita": "Bolita invalide - Doit être 2 chiffres + 1 ou 2 (ex: 12+1 ou 12+2)",
      "invalidSingulacion": "Singulación invalide - Doit être 1 chiffre + 1, 2 ou 3 (ex: 1-2)",
      "invalidIncrement": "Incrément invalide - Doit être -10, -20 ou -30 (ex: 123-20)",
      "invalidQPattern": "Modèle 'q' invalide - Doit être 3 ou 4 chiffres (ex: 123q ou 1234q)",
      "invalidFBPattern": "Modèle F/B invalide - Doit être 2 ou 3 chiffres",
      "invalidLength": "Longueur invalide - Doit être 2-6 chiffres",
      "singleDigit": "Chiffre unique non autorisé - Minimum 2 chiffres requis",
      "tooLong": "Trop long - Maximum 6 chiffres autorisés",
      "gameTypeNotAllowed": "{gameType} n'est pas disponible pour {lotteries}"
    }
  },
  "error": {
    "invalidBets": "Jeux Invalides Détectés",
    "invalidBetsDesc": "Les jeux suivants dépassent les limites autorisées et ne peuvent pas être traités:",
    "continueWithValidBets": "Continuer avec les Jeux Valides"
  },
  "controlBar": {
    "discount": "Remise",
    "discountEnabled": "Remise activée",
    "discountDisabled": "Remise désactivée",
    "multiLottery": "Multi lot",
    "multiLotteryEnabled": "Multi-loterie activée",
    "multiLotteryDisabled": "Multi-loterie désactivée",
    "ticketLanguage": "Langue Ticket",
    "createTicket": "CRÉER TICKET",
    "duplicate": "Dupliquer",
    "printReport": "Imprimer rapport",
    "pay": "Payer",
    "help": "Aide",
    "plays": "Jeux",
    "noPlaysAdded": "Aucun jeu ajouté",
    "closedLotteriesError": "Impossible d'imprimer le ticket. Les loteries suivantes sont fermées:",
    "resultados": "Résultats",
    "ventaFutura": "Vente future",
    "verVentas": "Voir les ventes",
    "monitoreo": "Surveillance",
    "pagarTicket": "Payer ticket",
    "pendientesPago": "Paiements en attente",
    "horarios": "Horaires",
    "duplicar": "Dupliquer",
    "ventaFuturaComingSoon": "Cette fonctionnalité sera bientôt disponible!",
    "selectAllLotteries": "Toutes lot.",
    "dailySaleLimitReached": "La limite de vente quotidienne a été dépassée. Veuillez contacter votre courtier ou administrateur.",
    "notAuthorizedToSell": "Vous n'êtes pas autorisé à vendre des tickets. Veuillez contacter votre courtier ou administrateur.",
    "splitAmountNotAllowed": "Le montant divisé (Straight+Box) ne s'applique qu'à Cash3, Play4 et Pick5.",
    "amountCannotBeZero": "Le montant ne peut pas être 0."
  },
  "playSection": {
    "lot": "LOT",
    "num": "NUM",
    "amount": "$",
    "total": "TOTAL",
    "tipo": "TYPE",
    "playsTitle": "JEUX",
    "directoTitle": "DIRECT / SIMPLE",
    "paleTripleta": "PALÉ / TRIPLE",
    "cash3Title": "PICK2 / PICK3",
    "play4Pick5Title": "PICK4 / PICK5",
    "notEnoughAvailable": "Pas assez disponible pour ce pari. Veuillez essayer un montant plus bas.",
    "cancelPlayAndCheck": "Annuler et Vérifier les Jeux",
    "exceeds-limit": "Dépasse la limite",
    "invalid-for-lottery": "Invalide pour cette loterie"
  },
  "gameTypes": {
    "directo": "Direct",
    "pale": "Palé",
    "tripleta": "Triple",
    "cash3": "Cash 3",
    "play4": "Play 4",
    "pick5": "Pick 5",
    "superPale": "Super Palé",
    "bolita": "Bolita",
    "singulacion": "Simple",
    "pickTwo": "Pick Two",
    "panama": "Panama"
  },
  "help": {
    "title": "Aide",
    "shortcuts": "Touches",
    "howToPlay": "Comment jouer?",
    "keyboardShortcuts": "Raccourcis clavier",
    "key": "Touche",
    "description": "Description",
    "gameInstructions": "Instructions de jeu",
    "steps": "Étapes",
    "shortcuts_arrowUp": "Effacer les champs de pari et le montant",
    "shortcuts_L": "Annuler le ticket et effacer l'écran",
    "shortcuts_slash": "Changer de loterie",
    "shortcuts_asterisk": "Imprimer le ticket",
    "shortcuts_c": "Dupliquer le ticket",
    "shortcuts_P": "Marquer le ticket comme payé",
    "shortcuts_q": "Cash 3 et Play 4 uniquement. Tapez le pari suivi de 'q' (ex: 123q) pour générer toutes les combinaisons de numéros",
    "shortcuts_dot": "Directo, Palé et Tripleta uniquement. Tapez le pari suivi d'un point (ex: 1234.) pour générer toutes les combinaisons",
    "shortcuts_d": "Directo uniquement. Entrez un pari initial avec deux chiffres égaux suivi de 'd' puis deux chiffres égaux pour le pari final (ex: 33d66) pour générer une séquence de paires égales",
    "shortcuts_minus10": "Cash 3 uniquement. Entrez un pari à trois chiffres suivi de '-10' (ex: 123-10) pour générer toutes les combinaisons contenant les deux derniers chiffres, en incrémentant de 100 chaque valeur",
    "shortcuts_plus": "Cash 3 Direct uniquement. Entrez un pari à trois chiffres suivi de '+' et un autre pari à trois chiffres (ex: 345+348) pour générer une séquence directe: 345, 346, 347",
    "shortcuts_F8": "Ouvrir le modal Vente Futura pour sélectionner les dates futures pour la vente de tickets",
    "game_directo": "Sélectionnez un numéro à 2 chiffres de 00 à 99. Si votre numéro correspond au numéro gagnant dans l'ordre exact, vous gagnez.",
    "game_pale": "Sélectionnez un numéro à 2 chiffres. Gagnez si votre numéro correspond au numéro gagnant dans n'importe quel ordre.",
    "game_tripleta": "Sélectionnez un numéro à 3 chiffres de 000 à 999. Gagnez si votre numéro correspond aux trois derniers chiffres du numéro gagnant dans l'ordre exact.",
    "game_cash3Straight": "Choisissez 3 chiffres (0-9). Gagnez si vos numéros correspondent aux numéros gagnants dans l'ordre exact.",
    "game_cash3Box": "Choisissez 3 chiffres. Gagnez si vos numéros correspondent aux numéros gagnants dans n'importe quel ordre.",
    "game_play4Straight": "Choisissez 4 chiffres (0-9). Gagnez si vos numéros correspondent aux numéros gagnants dans l'ordre exact.",
    "game_play4Box": "Choisissez 4 chiffres. Gagnez si vos numéros correspondent aux numéros gagnants dans n'importe quel ordre.",
    "game_superPale": "Similaire à Palé mais avec des règles spéciales. Sélectionnez un numéro à 2 chiffres et gagnez s'il correspond dans n'importe quel ordre.",
    "game_bolita": "Un jeu à 2 chiffres où vous sélectionnez de 00-99. Le numéro gagnant est dérivé du tirage de loterie principal.",
    "game_singulacion": "Jeu à chiffre unique (0-9). Gagnez si votre chiffre correspond à l'une des positions gagnantes désignées.",
    "game_pick5Straight": "Sélectionnez 5 chiffres (0-9). Gagnez si tous vos numéros correspondent aux numéros gagnants dans l'ordre exact.",
    "game_pick5Box": "Sélectionnez 5 chiffres. Gagnez si vos numéros correspondent aux numéros gagnants dans n'importe quel ordre.",
    "game_pickTwo": "Sélectionnez 2 chiffres (0-9). Gagnez si les deux chiffres correspondent aux numéros gagnants dans l'ordre exact.",
    "game_cash3Front": "Faites correspondre les 2 premiers chiffres dans l'ordre exact ou dans n'importe quel ordre.",
    "game_cash3Back": "Faites correspondre les 2 derniers chiffres dans l'ordre exact ou dans n'importe quel ordre.",
    "game_pickTwoPositions": "Choisissez votre position préférée: Avant (2 premiers chiffres), Arrière (2 derniers chiffres) ou Milieu (2 chiffres du milieu).",
    "game_panama": "Format de loterie spécial avec des règles de tirage uniques. Sélectionnez les numéros selon le format de jeu actuel.",
    "howToPlay_directo": "1. Entrez un numéro à deux chiffres dans le champ de jeu et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_pale": "1. Entrez un numéro à quatre chiffres dans le champ de jeu et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_tripleta": "1. Entrez un numéro à six chiffres dans le champ de jeu et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_cash3Straight": "1. Entrez un numéro à trois chiffres dans le champ de jeu et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_cash3Box": "1. Entrez un numéro à trois chiffres suivi du signe + (Ex.: 123+) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_play4Straight": "1. Entrez un numéro à quatre chiffres suivi du signe - (Ex.: 1234-) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_play4Box": "1. Entrez un numéro à quatre chiffres suivi du signe + (Ex.: 1234+) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_superPale": "1. Entrez un numéro à quatre chiffres dans le champ de jeu et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_bolita": "1. Entrez un numéro à deux chiffres suivi du signe +, suivi de la plage (1 ou 2) (Ex.: 12+1) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_singulacion": "1. Entrez un seul chiffre suivi du signe -, suivi de la plage (1, 2 ou 3) (Ex.: 1-2) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_pick5Straight": "1. Entrez un numéro à cinq chiffres suivi du signe - (Ex.: 12345-) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_pick5Box": "1. Entrez un numéro à cinq chiffres suivi du signe + (Ex.: 12345+) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_pickTwo": "1. Entrez un numéro à deux chiffres dans le champ de jeu et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_cash3FrontStraight": "1. Entrez un numéro à trois chiffres puis la lettre F et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_cash3FrontBox": "1. Entrez un numéro à trois chiffres puis la lettre F suivie du signe + (Ex.: 123F+) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_cash3BackStraight": "1. Entrez un numéro à trois chiffres puis la lettre B et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_cash3BackBox": "1. Entrez un numéro à trois chiffres puis la lettre B suivie du signe + (Ex.: 123B+) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_pickTwoFront": "1. Entrez un numéro à deux chiffres, la lettre F et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_pickTwoBack": "1. Entrez un numéro à deux chiffres, la lettre B et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_pickTwoMiddle": "1. Entrez un numéro à deux chiffres suivi du signe - et de la plage (3) (Ex.: 10-3) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée.",
    "howToPlay_panama": "1. Entrez un numéro à quatre chiffres suivi du signe - (Ex.: 1234-) et appuyez sur entrée.\n2. Entrez le montant et appuyez sur entrée."
  },
  "dateTime": {
    "monday": "Lundi",
    "tuesday": "Mardi",
    "wednesday": "Mercredi",
    "thursday": "Jeudi",
    "friday": "Vendredi",
    "saturday": "Samedi",
    "sunday": "Dimanche",
    "january": "Janvier",
    "february": "Février",
    "march": "Mars",
    "april": "Avril",
    "may": "Mai",
    "june": "Juin",
    "july": "Juillet",
    "august": "Août",
    "september": "Septembre",
    "october": "Octobre",
    "november": "Novembre",
    "december": "Décembre"
  },
  "languages": {
    "spanish": "Español",
    "english": "English",
    "french": "Français",
    "creole": "Kreyòl"
  },
  "modals": {
    "duplicateTicket": "Dupliquer le ticket",
    "payTicket": "Payer le ticket",
    "duplicatePlays": "Dupliquer les jeux",
    "ticketNumber": "Numéro de ticket",
    "enterTicketNumber": "Entrer le numéro de ticket",
    "enterOrScanTicket": "Entrer ou scanner le ticket",
    "scan": "Scanner",
    "duplicate": "Dupliquer",
    "markAsPaid": "Marquer comme payé",
    "targetLottery": "Loterie cible",
    "duplicatePlaysDescription": "Dupliquer tous les jeux de la loterie actuelle vers une autre loterie"
  },
  "payTicket": {
    "search": "Rechercher",
    "ticketCode": "Code du ticket",
    "date": "Date",
    "user": "Utilisateur",
    "totalBet": "Mise totale",
    "lines": "Lignes",
    "totalPrize": "Prix total",
    "winningLines": "Lignes gagnantes",
    "statusWinner": "Gagnant",
    "statusPaid": "Payé",
    "statusCancelled": "Annulé",
    "statusPending": "En attente",
    "statusLoser": "Sans prix",
    "paidBy": "Payé par",
    "paidAt": "Payé le",
    "method": "Méthode",
    "playNumber": "Numéro",
    "playAmount": "Montant",
    "playType": "Type de Jeu",
    "playPrize": "Prix",
    "playPaid": "Payé",
    "drawResults": "Numéros Gagnants",
    "paymentSuccess": "Ticket payé avec succès",
    "paymentError": "Erreur lors du paiement du ticket",
    "alreadyPaid": "Le ticket est déjà payé"
  },
  "ticket": {
    "ticketLabel": "Ticket",
    "date": "Date",
    "session": "Session",
    "pos": "POS",
    "play": "JEU",
    "amount": "MONTANT",
    "total": "TOTAL",
    "totalTicket": "TOTAL TICKET",
    "subtotal": "SOUS-TOTAL",
    "discountLabel": "REMISE",
    "serial": "Série",
    "futureSale": "VENTE FUTURE",
    "printDate": "Imprimé",
    "forDate": "Pour",
    "daySun": "DIM",
    "dayMon": "LUN",
    "dayTue": "MAR",
    "dayWed": "MER",
    "dayThu": "JEU",
    "dayFri": "VEN",
    "daySat": "SAM",
    "prizeInfo1": "1er$56 2e$12 3e$4 Pick2 $75",
    "prizeInfo2": "Palé $1000 Pick3$600 Win4$5000",
    "prizeInfo3": "Super palé$2000 Triplette$10,000",
    "prizeInfo4": "x2 $100",
    "website": "QUICKMONEYNYC.COM",
    "statusOriginal": "ORIGINAL",
    "statusCopy": "COPIE",
    "statusCancelled": "ANNULÉ",
    "statusPreview": "APERÇU",
    "copyNotice": "═══ CECI EST UNE COPIE ═══",
    "cancelledNotice": "═══ TICKET ANNULÉ ═══",
    "previewNotice": "═══ APERÇU UNIQUEMENT - NON VALIDE ═══",
    "cancelTicket": "Annuler le Ticket",
    "confirmCancel": "Êtes-vous sûr de vouloir annuler le ticket",
    "errors": {
      "TICKET_NOT_FOUND": "Ticket non trouvé",
      "TICKET_ALREADY_CANCELLED": "Le ticket est déjà annulé",
      "TICKET_ALREADY_PAID": "Impossible d'annuler un ticket payé",
      "CANCELLATION_TIME_EXPIRED": "Le délai d'annulation ({minutes} minutes) a expiré",
      "CANCEL_AMOUNT_EXCEEDED": "Le montant du ticket ({ticketAmount}) dépasse le maximum autorisé ({maxAmount})",
      "DAILY_CANCEL_LIMIT_REACHED": "Le ticket ne peut pas être supprimé, la limite quotidienne de tickets supprimés a été atteinte ({cancelledToday}/{maxPerDay})",
      "MAX_TICKET_AMOUNT_EXCEEDED": "Le montant du ticket ({ticketAmount}) dépasse le maximum autorisé ({maxAmount})",
      "CREDIT_EXHAUSTED": "Votre crédit disponible est épuisé. Crédit restant: ${currentCredit}. Veuillez contacter votre courtier ou administrateur.",
      "CREDIT_INSUFFICIENT": "Ce ticket dépasse votre crédit disponible. Crédit restant: ${currentCredit}. Veuillez contacter votre courtier ou administrateur.",
      "DAILY_SALE_LIMIT_EXCEEDED": "La limite de vente quotidienne a été dépassée. Disponible: ${remaining}. Veuillez contacter votre courtier ou administrateur.",
      "USER_NOT_FOUND": "Utilisateur non trouvé"
    }
  },
  "monitor": {
    "title": "Moniteur de tickets",
    "date": "Date",
    "filter": "Filtre",
    "all": "TOUS",
    "winners": "GAGNANTS",
    "pending": "EN ATTENTE",
    "losers": "PERDANTS",
    "cancelled": "ANNULÉS",
    "totalAmount": "Montant total",
    "totalPrizes": "Total des prix",
    "totalPendingPayment": "Total paiement en attente",
    "printPending": "IMPRIMER PAIEMENTS EN ATTENTE",
    "quickFilter": "Filtre rapide",
    "number": "Numéro",
    "user": "Utilisateur",
    "prize": "Prix",
    "cancelDate": "Date d'annulation",
    "status": "Statut",
    "actions": "Actions",
    "showing": "Affichage",
    "entries": "entrées",
    "close": "FERMER",
    "print": "Imprimer",
    "sendMessage": "Envoyer message",
    "ticketDetail": "Détail du Ticket",
    "legend": "Légende",
    "cancelSuccess": "Ticket annulé avec succès"
  },
  "pendingPayments": {
    "title": "Paiements en attente",
    "totalPending": "Total en attente",
    "totalAmount": "Montant total à payer",
    "noPending": "Aucun paiement en attente",
    "markAsPaid": "Marquer comme payé",
    "paymentSuccess": "Paiement marqué avec succès",
    "paymentError": "Erreur lors du marquage du paiement"
  },
  "salesHistory": {
    "title": "Historique des ventes",
    "startDate": "Date de début",
    "endDate": "Date de fin",
    "viewSales": "Voir les ventes",
    "resetPointOfSale": "Réinitialiser le point de vente",
    "total": "Total",
    "code": "Code",
    "ref": "Réf.",
    "tickets": "Tickets",
    "sales": "Ventes",
    "commissions": "Commissions",
    "prizes": "Prix",
    "net": "Net",
    "paid": "Payé",
    "final": "Final",
    "totals": "Totaux",
    "noData": "Aucune donnée de vente pour la période sélectionnée",
    "showing": "Affichage",
    "entries": "entrées"
  },
  "playsMonitor": {
    "title": "Moniteur de jeux",
    "date": "Date",
    "lottery": "Loterie",
    "refresh": "Actualiser",
    "print": "Imprimer",
    "totalFor": "Total pour le tirage",
    "play": "Jeu",
    "amount": "Montant",
    "total": "Total",
    "printedAt": "Imprimé le",
    "noResults": "Aucun résultat"
  },
  "authorizePunch": {
    "title": "Autoriser le poinçon",
    "password": "Mot de passe",
    "confirmation": "Confirmation",
    "authorize": "Autoriser"
  },
  "viewSales": {
    "title": "Voir les ventes",
    "viewSales": "Voir les ventes",
    "printReport": "Imprimer le rapport",
    "salesTab": "Ventes",
    "transactionsTab": "Transactions",
    "salesSummary": "Résumé des ventes",
    "balanceToDate": "Solde du Jour",
    "totalPendingTickets": "Total des tickets en attente",
    "totalLoans": "Total des prêts",
    "store": "Magasin",
    "code": "Code",
    "pending": "En attente",
    "losers": "Perdants",
    "winners": "Gagnants",
    "total": "Total",
    "sales": "Ventes",
    "commissions": "Commissions",
    "discounts": "Remises",
    "prizes": "Prix",
    "net": "Net",
    "caida": "Caída",
    "final": "Final",
    "balance": "Solde",
    "caidaAcumulada": "Caída accumulée",
    "totalsByDraw": "Totaux par tirage",
    "draw": "Tirage",
    "totalSales": "Ventes totales",
    "winningTickets": "Tickets gagnants",
    "winningNumbers": "Numéros gagnants",
    "date": "Date",
    "ticketNumber": "Numéro de ticket",
    "amountToPay": "Montant à payer",
    "paid": "Payé",
    "details": "Détails",
    "view": "Voir",
    "recentTransactions": "Transactions récentes (12 derniers jours)",
    "concept": "Concept",
    "previous": "Précédent",
    "debit": "Débit",
    "credit": "Crédit",
    "salesResults": "Résultats des ventes",
    "noData": "Aucune donnée disponible",
    "loading": "Chargement...",
    "retry": "Réessayer",
    "notAvailableYet": "Pas encore disponible",
    "noTransactions": "Aucune transaction",
    "counterparty": "Contrepartie",
    "amount": "Montant",
    "status": "Statut",
    "statusApproved": "Approuvé",
    "statusPending": "En attente",
    "lotShort": "LOT",
    "salesShort": "VENTE",
    "commissionsShort": "COMM",
    "prizesShort": "PRIX",
    "netShort": "NET",
    "drawResults": "Résultats du tirage",
    "drawForDate": "Tirage pour la date",
    "printedOn": "Imprimé",
    "type": "Type",
    "drawDetail": "Détail du Tirage"
  },
  "settings": {
    "title": "Paramètres de la Banca",
    "print": "Imprimer",
    "smsOnly": "SMS Seulement",
    "showCaida": "Afficher les Statistiques de Caída",
    "printMode": "Mode d'impression",
    "language": "Langue",
    "layout": "Mise en page",
    "adminNotification": "Notification Administrateur",
    "notificationDescription": "Le message défilera dans la barre supérieure. Laissez vide pour masquer la notification.",
    "notificationPlaceholder": "ex., LOTEKA est désactivée aujourd'hui en raison de l'ouragan Melissa catégorie 5...",
    "testSection": "Test de Fermeture de Loterie",
    "testDescription": "Simuler différents états du minuteur de loterie",
    "testNormal": "Normal",
    "testWarning": "Avertissement (8m)",
    "testClosing": "Fermeture (2m)",
    "testClosed": "Fermé",
    "saveChanges": "ENREGISTRER LES MODIFICATIONS"
  },
  "layouts": {
    "title": "Choisir la disposition",
    "description": "Sélectionnez votre disposition d'interface préférée",
    "classic": "Classique",
    "classicDesc": "Disposition traditionnelle de terminal de loterie",
    "modern": "Moderne",
    "modernDesc": "Disposition d'interface moderne",
    "preview": "Aperçu",
    "select": "Sélectionner",
    "current": "Actuel"
  },
  "lottery": {
    "searchPlaceholder": "Rechercher des loteries...",
    "selectLotteries": "Sélectionner des loteries...",
    "selectLotteriesRange": "Sélectionner Loteries (0-4)",
    "removeLottery": "Retirer la loterie",
    "limitExceed": "Limite dépassée",
    "noLimit": "Sans Limite",
    "selectAll": "Tout sélectionner",
    "deselectAll": "Tout désélectionner"
  },
  "statistics": {
    "title": "Statistiques",
    "show": "Afficher les statistiques",
    "hide": "Masquer les statistiques",
    "credito": "Crédit",
    "venta": "Ventes",
    "percentage": "%",
    "commission": "Commission",
    "discount": "Remise",
    "premio": "Prix",
    "neto": "Net",
    "caida": "Chute",
    "final": "Final",
    "balance": "Solde",
    "caidaAcumulada": "Chute Accum."
  },
  "ventaFutura": {
    "title": "Vente Future",
    "description": "Sélectionnez une ou plusieurs dates pour créer des tickets pour les jours à venir. Vous pouvez sélectionner jusqu'à 7 jours à l'avance.",
    "notAllowed": "Les ventes futures ne sont pas activées pour cette banca",
    "selectAll": "Tout sélectionner",
    "deselectAll": "Tout désélectionner",
    "clearSelection": "Effacer la sélection",
    "selected": "Sélectionné",
    "selectedCount": "{count} dates sélectionnées",
    "ticketsInfo": "{count} tickets seront générés (un par date)",
    "noSelection": "Aucune date future sélectionnée",
    "currentDaySale": "Les tickets seront créés pour aujourd'hui",
    "apply": "Appliquer",
    "day1": "Demain",
    "day2": "2 jours",
    "day3": "3 jours",
    "day4": "4 jours",
    "day5": "5 jours",
    "day6": "6 jours",
    "day7": "7 jours",
    "activeMode": "Vente future active",
    "day": "jour",
    "days": "jours",
    "indicator": "Un ticket sera généré par date sélectionnée lors de l'impression"
  },
  "results": {
    "loading": "Chargement des résultats...",
    "noResults": "Aucun résultat disponible pour cette date",
    "retry": "Réessayer",
    "error": "Erreur lors du chargement des résultats",
    "1era": "1er",
    "2da": "2ème",
    "3era": "3ème",
    "pick3": "Pick 3",
    "pick4": "Pick 4",
    "pick5": "Pick 5",
    "bolita": "Bolita",
    "singulaccion": "Singulaccion"
  },
  "phoneDirectory": {
    "title": "Répertoire Téléphonique",
    "createTab": "Créer",
    "listTab": "Liste",
    "contactName": "Nom du contact",
    "contactNamePlaceholder": "Entrer le nom du contact",
    "phone": "Téléphone",
    "telegramChatId": "Chat ID Telegram (Optionnel)",
    "telegramChatIdHint": "L'utilisateur doit d'abord envoyer /start à votre bot pour obtenir son Chat ID",
    "saving": "ENREGISTREMENT...",
    "update": "MODIFIER",
    "create": "CRÉER",
    "invalidPhone": "Veuillez entrer un numéro de téléphone valide à 10 chiffres",
    "confirmDelete": "Êtes-vous sûr de vouloir supprimer ce contact?",
    "errorSaving": "Erreur lors de l'enregistrement du contact",
    "errorDeleting": "Erreur lors de la suppression du contact",
    "errorLoading": "Erreur lors du chargement des contacts",
    "entriesPerPage": "Entrées par page",
    "quickFilter": "Filtre rapide",
    "loadingContacts": "Chargement des contacts...",
    "retry": "Réessayer",
    "telegramId": "ID Telegram",
    "actions": "Actions",
    "noEntries": "Aucune entrée disponible",
    "showing": "Affichage",
    "to": "à",
    "of": "de",
    "entries": "entrées"
  },
  "contactSelector": {
    "selectContact": "Sélectionner un Contact",
    "searchPlaceholder": "Rechercher par nom ou téléphone...",
    "loadingContacts": "Chargement des contacts...",
    "noMatchingContacts": "Aucun contact ne correspond à votre recherche",
    "noContactsAvailable": "Aucun contact disponible. Ajoutez des contacts dans le Répertoire.",
    "sending": "ENVOI...",
    "sendVia": "ENVOYER PAR {platform}"
  },
  "changePassword": {
    "title": "Changer le mot de passe de",
    "currentPassword": "Mot de passe actuel",
    "currentHint": "Entrez votre mot de passe actuel",
    "newPassword": "Nouveau mot de passe",
    "confirmPassword": "Confirmer le mot de passe",
    "hint": "Minimum 6 caractères, au moins une lettre et un chiffre",
    "confirmHint": "Répétez le mot de passe pour confirmer",
    "mismatch": "Les mots de passe ne correspondent pas",
    "submit": "Changer le mot de passe",
    "changing": "Changement...",
    "errorGeneric": "Erreur lors du changement de mot de passe",
    "success": "Mot de passe changé avec succès"
  },
  "limits": {
    "blocked": "Limite atteinte pour {number} sur {lottery} ({used}/{max})",
    "reservationError": "Impossible de vérifier la limite, mise ajoutée sans réservation",
    "blockedByGlobal": "Limite globale atteinte",
    "blockedByZona": "Limite de zone atteinte",
    "blockedByBanca": "Limite de banca atteinte",
    "blockedByLocalBanca": "Limite locale de banca atteinte",
    "blockedByNoLimit": "Aucune limite configurée pour cette banca",
    "blockedByDailySaleLimit": "Limite de vente quotidienne atteinte. Disponible: ${dailySaleRemaining}",
    "blockedByCreditLimit": "Crédit épuisé. Crédit restant: ${creditRemaining}",
    "blockedByFutureSalesDisabled": "Cette loterie n'autorise pas les ventes futures",
    "playRemovedNoAvailability": "Jeu {number} ({lottery}) supprimé — pas de disponibilité",
    "playsRemovedNoAvailability": "{count} jeux supprimés par manque de disponibilité : {list}",
    "scope": {
      "banca": "Limite de banca",
      "local-banca": "Limite locale de banca",
      "zona": "Limite de zone",
      "global": "Limite globale",
      "por-numero-banca": "Limite du numéro (banca)",
      "por-numero-zona": "Limite du numéro (zone)",
      "por-numero-global": "Limite du numéro (global)",
      "no-config": "Aucune limite configurée"
    },
    "attempted": "Tenté",
    "available": "Disponible",
    "overBy": "Dépasse de",
    "currentUsed": "Utilisé",
    "limitAmount": "Limite"
  },
  "convertPlays": {
    "title": "Convertir les jeux",
    "amount": "Montant",
    "convertTo": "Convertir en",
    "directo": "Direct",
    "pale": "Palé",
    "tripleta": "Tripleta",
    "noPlays": "Aucun jeu à convertir",
    "numbersFound": "{count} numéros disponibles",
    "noLotterySelected": "Sélectionnez d'abord une loterie",
    "added": "{count} jeux ajoutés"
  },
  "randomGen": {
    "lottery": "Loterie",
    "playType": "Type de jeu",
    "amount": "Montant",
    "quantity": "Quantité",
    "generate": "Générer",
    "noPlayTypes": "Cette loterie n'autorise pas les jeux aléatoires",
    "generated": "{count} jeux générés",
    "errorInvalidAmountOrQuantity": "Entrez un montant et une quantité valides",
    "errorNoLottery": "Sélectionnez une loterie",
    "errorNoPlayType": "Sélectionnez un type de jeu"
  },
  "ticketHistory": {
    "title": "Historique des Tickets",
    "searchPlaceholder": "Rechercher par code-barres, ID ou hash...",
    "search": "Rechercher",
    "filter": "Filtre",
    "filterAll": "Tous les tickets",
    "filterActive": "Actifs",
    "filterPaid": "Payés",
    "filterCancelled": "Annulés",
    "export": "Exporter",
    "clearAll": "Tout effacer",
    "noTickets": "Aucun ticket trouvé",
    "barcode": "Code-barres",
    "plays": "Jeux",
    "total": "Total",
    "lottery": "Loterie",
    "pay": "Payer",
    "cancel": "Annuler",
    "duplicate": "Dupliquer",
    "markAsPaid": "Marquer comme payé",
    "cancelTicket": "Annuler le ticket",
    "duplicateTicket": "Dupliquer le ticket",
    "totalTickets": "Total des tickets : {count}",
    "confirmCancel": "Êtes-vous sûr de vouloir annuler ce ticket ?",
    "markedAsPaid": "Ticket marqué comme payé",
    "ticketCancelled": "Ticket annulé",
    "newTicketCreated": "Nouveau ticket créé : {id}",
    "ticketsExported": "Tickets exportés avec succès",
    "allCleared": "Tous les tickets ont été effacés"
  },
  "toast": {
    "ticketCancelled": "Ticket #{code} annulé avec succès",
    "noMessagingEnabled": "Aucun canal de messagerie activé",
    "sendingTelegram": "Envoi du ticket {type} à {name} via Telegram...",
    "sentTelegram": "Envoyé à {name} via Telegram",
    "errorTelegram": "Erreur d'envoi via Telegram",
    "sendingWhatsapp": "Envoi du ticket {type} à {name} via WhatsApp...",
    "whatsappComingSoon": "Intégration WhatsApp bientôt disponible",
    "errorSendingTicket": "Erreur d'envoi du ticket : {message}",
    "noPlaysToPrint": "Aucun jeu ajouté. Ajoutez des jeux avant d'imprimer un ticket.",
    "ticketDuplicated": "Ticket {barcode} dupliqué avec succès"
  },
  "apiErrors": {
    "NOT_FOUND": "Ressource introuvable",
    "DUPLICATE_RESOURCE": "La ressource existe déjà",
    "UNAUTHORIZED": "Non autorisé",
    "FORBIDDEN": "Action non autorisée",
    "BAD_REQUEST": "Requête invalide",
    "CONFLICT": "Conflit avec l'état actuel",
    "VALIDATION_FAILED": "Données invalides",
    "INTERNAL_ERROR": "Erreur interne du serveur",
    "DB_UNIQUE_CONSTRAINT": "Un enregistrement avec ces données existe déjà",
    "DB_FK_IN_USE": "Impossible de supprimer : des enregistrements en dépendent",
    "DB_MISSING_REQUIRED": "Champs obligatoires manquants",
    "DB_TIMEOUT": "La base de données n'a pas répondu à temps",
    "DB_GENERIC": "Erreur de base de données",
    "INVALID_CREDENTIALS": "Identifiants invalides",
    "INVALID_PIN": "PIN invalide",
    "ACCOUNT_BLOCKED": "Compte bloqué",
    "SESSION_EXPIRED": "Session expirée",
    "PASSWORD_CHANGE_REQUIRED": "Vous devez changer votre mot de passe",
    "PIN_CHANGE_REQUIRED": "Vous devez changer votre PIN",
    "TOKEN_INVALID": "Jeton invalide",
    "USER_NOT_FOUND": "Utilisateur introuvable",
    "USER_ALREADY_EXISTS": "L'utilisateur existe déjà",
    "PASSWORD_TOO_WEAK": "Le mot de passe est trop faible",
    "PASSWORD_MISMATCH": "Les mots de passe ne correspondent pas",
    "PASSWORD_SAME_AS_OLD": "Le nouveau mot de passe ne peut pas être identique à l'ancien",
    "OLD_PASSWORD_INCORRECT": "Le mot de passe actuel est incorrect",
    "LANGUAGE_INVALID": "Langue invalide",
    "PERMISSION_DENIED": "Permission refusée",
    "BETTING_POOL_NOT_FOUND": "Banca introuvable",
    "BETTING_POOL_CODE_EXISTS": "Le code de la banca existe déjà",
    "BETTING_POOL_HAS_USERS": "La banca a des utilisateurs assignés",
    "BETTING_POOL_DISABLED": "La banca est désactivée",
    "BANK_NOT_FOUND": "Banque introuvable",
    "TICKET_NOT_FOUND": "Ticket introuvable",
    "TICKET_ALREADY_PAID": "Le ticket a déjà été payé",
    "TICKET_ALREADY_CANCELLED": "Le ticket est déjà annulé",
    "TICKET_CANCEL_WINDOW_EXPIRED": "Le délai d'annulation a expiré",
    "TICKET_DATE_PAST_FORBIDDEN": "Impossible de créer un ticket avec une date passée",
    "TICKET_DATE_FUTURE_FORBIDDEN": "Impossible de créer un ticket avec une date future",
    "TICKET_INVALID_BETS_EXCEED_LIMITS": "Certains jeux dépassent les limites configurées",
    "TICKET_HAS_NO_PRIZE": "Le ticket n'a pas de prix",
    "MAX_TICKET_AMOUNT_EXCEEDED": "Le montant du ticket ({ticketAmount}) dépasse le maximum autorisé ({maxAmount})",
    "DAILY_SALE_LIMIT_EXCEEDED": "La limite de vente quotidienne a été dépassée. Disponible: ${remaining}. Veuillez contacter votre courtier ou administrateur.",
    "DAILY_CANCEL_LIMIT_REACHED": "Le ticket ne peut pas être supprimé, la limite quotidienne de tickets supprimés a été atteinte ({cancelledToday}/{maxPerDay})",
    "CANCEL_AMOUNT_EXCEEDED": "Le montant du ticket ({ticketAmount}) dépasse le maximum autorisé ({maxAmount})",
    "CREDIT_EXHAUSTED": "Votre crédit disponible est épuisé. Crédit restant : ${currentCredit}. Veuillez contacter votre courtier ou administrateur.",
    "CREDIT_INSUFFICIENT": "Ce ticket dépasse votre crédit disponible. Crédit restant : ${currentCredit}. Veuillez contacter votre courtier ou administrateur.",
    "LIMIT_NOT_FOUND": "Limite introuvable",
    "LIMIT_TYPE_INVALID": "Type de limite invalide",
    "LIMIT_GLOBAL_REQUIRED_FIRST": "La limite globale doit être configurée d'abord",
    "LIMIT_ZONE_REQUIRED_FIRST": "La limite de zone doit être configurée d'abord",
    "LIMIT_PARENT_VIOLATION": "La limite dépasse son niveau parent",
    "LIMIT_BANCA_LOCAL_CONFLICT": "Conflit entre la limite de la banca et locale",
    "LOAN_NOT_FOUND": "Prêt introuvable",
    "LOAN_NOT_ACTIVE": "Le prêt n'est pas actif",
    "LOAN_ONLY_ACTIVE_EDITABLE": "Seuls les prêts actifs peuvent être modifiés",
    "LOAN_ONLY_ACTIVE_CANCELLABLE": "Seuls les prêts actifs peuvent être annulés",
    "DRAW_NOT_FOUND": "Tirage introuvable",
    "LOTTERY_NOT_FOUND": "Loterie introuvable",
    "GAME_TYPE_NOT_FOUND": "Type de jeu introuvable",
    "DRAW_CLOSED": "Le tirage est fermé",
    "DRAW_ALREADY_HAS_RESULTS": "Le tirage a déjà des résultats",
    "RESULT_NOT_FOUND": "Résultat introuvable",
    "TRANSACTION_NOT_FOUND": "Transaction introuvable",
    "TRANSACTION_GROUP_NOT_FOUND": "Groupe de transactions introuvable",
    "TRANSACTION_LINE_INVALID": "Ligne de transaction invalide",
    "TRANSACTION_AMOUNT_MISMATCH": "Les montants ne correspondent pas",
    "TRANSACTION_APPROVE_PERMISSION_DENIED": "Pas de permission pour approuver",
    "NOTIFICATION_NOT_FOUND": "Notification introuvable",
    "NOTIFICATION_MESSAGE_REQUIRED": "Le message est requis",
    "NOTIFICATION_RECIPIENTS_REQUIRED": "Sélectionnez au moins un destinataire"
  },
  "mobile": {
    "sell": "Vendre",
    "salesSummary": "Résumé des ventes",
    "winningNumbers": "Numéros gagnants",
    "checkUpdate": "Rechercher une mise à jour",
    "printTicket": "Imprimer le ticket",
    "sendWhatsApp": "Envoyer par WhatsApp",
    "sendTelegram": "Envoyer par Telegram",
    "dayTickets": "Tickets du jour",
    "discount": "Remise",
    "randomPlays": "Jeux aléatoires",
    "selectLottery": "Choisir la loterie",
    "lotteries": "Loteries",
    "closed": "FERMÉE",
    "fieldPlay": "JOUER",
    "fieldAmount": "MONTANT",
    "enterPlay": "Entrez un jeu",
    "selectLotteryFirst": "Sélectionnez une loterie",
    "invalidAmount": "Montant invalide",
    "invalidQty": "Quantité invalide (1-100)",
    "splitNotCompound": "Le montant X+Y ne s'applique pas aux jeux composés",
    "splitOnly": "Montant X+Y uniquement pour Cash3, Play4 ou Pick5",
    "noAvailResponse": "Pas de réponse de disponibilité — réessayez",
    "noAvailFor": "Pas de disponibilité pour {number}",
    "availableVs": "Disponible : ${available} (demandé ${requested})",
    "blockedIn": "Pas de disponibilité : {number} sur {lot}",
    "removedNoAvail": "{number} retiré sur {lot} : pas de disponibilité",
    "lotteryClosedName": "{name} est fermée",
    "lotteryNotAvailable": "Loterie non disponible pour {number}",
    "sourceNoPlays": "La loterie source n'a aucun jeu",
    "discountNotEnabled": "Remise non activée pour cette banca",
    "ticketNotFound": "Ticket introuvable",
    "comingSoon": "bientôt",
    "sellTicket": "Vendre le ticket",
    "noPlays": "Aucun jeu",
    "noResults": "Pas encore de résultats",
    "searchByCode": "Scannez ou saisissez le code-barres…",
    "loadPlays": "Charger les jeux",
    "amountPerPlay": "Montant par jeu…",
    "from": "De :",
    "to": "Vers :",
    "pay": "Payer",
    "payAnother": "Chercher un autre",
    "copy": "Copie",
    "done": "Terminé",
    "cancelTicketQ": "Annuler le ticket {code} ?",
    "yesCancel": "Oui, annuler",
    "logoutQ": "Voulez-vous vraiment vous déconnecter ?",
    "dupHint": "Les jeux sont ajoutés au ticket actuel avec leur loterie d’origine.",
    "login": "Connexion",
    "username": "Utilisateur",
    "password": "Mot de passe",
    "enter": "Entrer",
    "rememberCreds": "Mémoriser l'utilisateur et le mot de passe",
    "printer": "Imprimante",
    "internalPrinter": "Verifone",
    "paperSize": "Taille du papier",
    "testPrint": "Impression test",
    "sessionExpired": "Votre session a expiré. Veuillez vous reconnecter.",
    "ticketCreated": "Ticket {code} créé ✓",
    "ticketsCreated": "{count} tickets créés ✓",
    "upToDate": "Vous êtes à jour (v{version})",
    "updateAvailable": "Mise à jour disponible",
    "updateVersion": "Nouvelle version : {version}",
    "updateNow": "Mettre à jour",
    "downloadingUpdate": "Téléchargement de la mise à jour…",
    "updateFailed": "Impossible de vérifier les mises à jour",
    "updatesTitle": "Mises à jour",
    "autoUpdateOn": "Automatique",
    "autoUpdateOff": "Manuel",
    "autoUpdateHint": "En mode automatique, l'application vérifie les mises à jour au démarrage et à l'intervalle choisi. Si une nouvelle version existe, elle demande avant d'installer — jamais toute seule."
  },
  "printAgent": {
    "title": "Impression locale (agent)",
    "connected": "Connecté",
    "notFound": "Non détecté",
    "detect": "Détecter",
    "fallbackHint": "Sans l'agent local, les tickets s'impriment via la boîte de dialogue du navigateur. Installez l'agent pour imprimer directement.",
    "printer": "Imprimante",
    "auto": "Automatique",
    "paper": "Papier",
    "enabled": "Imprimer via l'agent",
    "testPrint": "Test",
    "testing": "Impression…",
    "testOk": "Envoyé à l'imprimante ✓"
  }
}
