{
  "common": {
    "help": "Help",
    "close": "Close",
    "open": "Open",
    "print": "Print",
    "cancel": "Cancel",
    "save": "Save",
    "delete": "Delete",
    "clear": "Clear",
    "submit": "Submit",
    "back": "Back",
    "next": "Next",
    "previous": "Previous",
    "today": "Today",
    "yes": "Yes",
    "no": "No",
    "loading": "Loading...",
    "confirmClearAllPlays": "Are you sure you want to clear all plays?"
  },
  "topbar": {
    "terminal": "",
    "results": "RESULTS",
    "sync": "Sync",
    "contacts": "Contacts",
    "profile": "Profile",
    "notifications": "Notifications",
    "changePassword": "Change password",
    "logout": "Log out",
    "noNotifications": "No notifications right now",
    "more": "More"
  },
  "sidebar": {
    "menu": "Menu",
    "monitoring": "Monitoring",
    "pending": "Pending payments",
    "sales": "Historical sales",
    "printReport": "Print report",
    "duplicate": "Duplicate",
    "duplicatePlays": "Duplicate plays",
    "plays": "Plays",
    "pay": "Pay",
    "viewSales": "View sales",
    "schedules": "Schedules",
    "help": "Help",
    "settings": "Settings",
    "authorize": "Authorize punch",
    "generator": "Random play generator",
    "logout": "Log out",
    "language": "Language"
  },
  "horarios": {
    "morning": "Morning",
    "afternoon": "Afternoon",
    "night": "Night",
    "lotteries": "lotteries"
  },
  "input": {
    "lottery": "LOTTERY",
    "play": "PLAY",
    "amount": "AMOUNT",
    "enterNumbers": "Enter numbers",
    "enterAmount": "Enter amount",
    "recentTickets": "Recent tickets",
    "searchLottery": "Search lottery...",
    "noLotteriesFound": "No lotteries found",
    "closes": "Closes",
    "searchTickets": "Search tickets...",
    "plays": "Plays",
    "total": "Total",
    "telegramOn": "Telegram enabled",
    "telegramOff": "Telegram disabled",
    "whatsappOn": "WhatsApp enabled",
    "whatsappOff": "WhatsApp disabled",
    "ticketLanguage": "Ticket language",
    "cancelTicket": "Cancel selected ticket",
    "printCopy": "Print ticket copy",
    "cancelShort": "Cancel",
    "copyShort": "Copy",
    "convertPlaysShortcut": "+ to convert plays",
    "saveTicket": "Save Ticket",
    "invalidPlay": "Invalid play - Numbers must have even digits (2, 4, or 6)",
    "error": {
      "minLength": "Minimum 2 characters required",
      "invalidAmount": "Invalid amount",
      "noLotterySelected": "No lottery selected. Please choose a lottery first.",
      "oddLength": "Numbers must have even digits (2, 4, or 6)",
      "maxLengthDominican": "Maximum 6 digits allowed (Tripleta)",
      "invalidCharacters": "Invalid characters in play",
      "invalidDPattern": "Invalid 'd' pattern - Must be equal pairs (e.g., 33d66)",
      "invalidDSequence": "Invalid sequence - End must be >= start",
      "invalidDotPattern": "Invalid '.' pattern - Must end with period",
      "oddLengthDot": "Numbers with '.' must have even digits",
      "invalidCash3Sequence": "Invalid Cash3 sequence - Must be 3 digits + 3 digits (e.g., 345+348)",
      "invalidSequenceRange": "Invalid sequence - End number must be >= start number",
      "invalidBolita": "Invalid bolita - Must be 2 digits + 1 or 2 (e.g., 12+1 or 12+2)",
      "invalidSingulacion": "Invalid singulación - Must be 1 digit + 1, 2, or 3 (e.g., 1-2)",
      "invalidIncrement": "Invalid increment - Must be -10, -20, or -30 (e.g., 123-20)",
      "invalidQPattern": "Invalid 'q' pattern - Must be 3 or 4 digits (e.g., 123q or 1234q)",
      "invalidFBPattern": "Invalid F/B pattern - Must be 2 or 3 digits",
      "invalidLength": "Invalid length - Must be 2-6 digits",
      "singleDigit": "Single digit not allowed - Minimum 2 digits required",
      "tooLong": "Too long - Maximum 6 digits allowed",
      "gameTypeNotAllowed": "{gameType} is not available for {lotteries}"
    }
  },
  "error": {
    "invalidBets": "Invalid Bets Detected",
    "invalidBetsDesc": "The following bets exceed the allowed limits and cannot be processed:",
    "continueWithValidBets": "Continue with Valid Bets"
  },
  "controlBar": {
    "discount": "Disc.",
    "discountEnabled": "Discount enabled",
    "discountDisabled": "Discount disabled",
    "multiLottery": "Multi lot",
    "multiLotteryEnabled": "Multi-lottery enabled",
    "multiLotteryDisabled": "Multi-lottery disabled",
    "ticketLanguage": "Ticket Lan.",
    "createTicket": "CREATE TICKET",
    "duplicate": "Duplicate",
    "printReport": "Print report",
    "pay": "Pay",
    "help": "Help",
    "plays": "Plays",
    "noPlaysAdded": "No plays added",
    "closedLotteriesError": "Cannot print ticket. The following lotteries are closed:",
    "resultados": "Results",
    "ventaFutura": "Future sale",
    "verVentas": "View sales",
    "monitoreo": "Monitoring",
    "pagarTicket": "Pay ticket",
    "pendientesPago": "Pending payments",
    "horarios": "Schedules",
    "duplicar": "Duplicate",
    "ventaFuturaComingSoon": "This feature is coming soon!",
    "selectAllLotteries": "All lot.",
    "dailySaleLimitReached": "Daily sale limit exceeded. Please contact your broker or administrator.",
    "notAuthorizedToSell": "You are not authorized to sell tickets. Please contact your broker or administrator.",
    "splitAmountNotAllowed": "Split amount (Straight+Box) only applies to Cash3, Play4, and Pick5.",
    "amountCannotBeZero": "Amount cannot be 0."
  },
  "playSection": {
    "lot": "LOT",
    "num": "NUM",
    "amount": "$",
    "total": "TOTAL",
    "tipo": "TYPE",
    "playsTitle": "PLAYS",
    "directoTitle": "STRAIGHT / SINGLE",
    "paleTripleta": "PALE / TRIPLE",
    "cash3Title": "PICK2 / PICK3",
    "play4Pick5Title": "PICK4 / PICK5",
    "notEnoughAvailable": "Not enough available for this bet. Please try a lower amount.",
    "cancelPlayAndCheck": "Cancel and Review Plays",
    "exceeds-limit": "Exceeds limit",
    "invalid-for-lottery": "Invalid for this lottery"
  },
  "gameTypes": {
    "directo": "Straight",
    "pale": "Palé",
    "tripleta": "Triple",
    "cash3": "Cash 3",
    "play4": "Play 4",
    "pick5": "Pick 5",
    "superPale": "Super Palé",
    "bolita": "Bolita",
    "singulacion": "Single",
    "pickTwo": "Pick Two",
    "panama": "Panama"
  },
  "help": {
    "title": "Help",
    "shortcuts": "Keys",
    "howToPlay": "How to play?",
    "keyboardShortcuts": "Keyboard Shortcuts",
    "key": "Key",
    "description": "Description",
    "gameInstructions": "Game Instructions",
    "steps": "Steps",
    "shortcuts_arrowUp": "Clear bet fields and amount",
    "shortcuts_L": "Cancel ticket and clear screen",
    "shortcuts_slash": "Change lottery",
    "shortcuts_asterisk": "Print ticket",
    "shortcuts_c": "Duplicate ticket",
    "shortcuts_P": "Mark ticket as paid",
    "shortcuts_q": "Cash 3 and Play 4 only. Type the bet followed by 'q' (e.g., 123q) to generate all number combinations",
    "shortcuts_dot": "Directo, Palé, and Tripleta only. Type the bet followed by a period (e.g., 1234.) to generate all combinations",
    "shortcuts_d": "Directo only. Enter an initial bet with two equal digits followed by 'd' then two equal digits for the final bet (e.g., 33d66) to generate a sequence of equal pairs",
    "shortcuts_minus10": "Cash 3 only. Enter a three-digit bet followed by '-10' (e.g., 123-10) to generate all combinations containing the last two digits, incrementing by 100 each value",
    "shortcuts_plus": "Cash 3 Straight only. Enter a three-digit bet followed by '+' and another three-digit bet (e.g., 345+348) to generate a straight sequence: 345, 346, 347",
    "shortcuts_F8": "Open Future Sale (Venta Futura) modal to select future dates for ticket sales",
    "game_directo": "Select a 2-digit number from 00 to 99. If your number matches the winning number in exact order, you win.",
    "game_pale": "Select a 2-digit number. Win if your number matches the winning number in any order.",
    "game_tripleta": "Select a 3-digit number from 000 to 999. Win if your number matches the last three digits of the winning number in exact order.",
    "game_cash3Straight": "Pick 3 digits (0-9). Win if your numbers match the winning numbers in exact order.",
    "game_cash3Box": "Pick 3 digits. Win if your numbers match the winning numbers in any order.",
    "game_play4Straight": "Pick 4 digits (0-9). Win if your numbers match the winning numbers in exact order.",
    "game_play4Box": "Pick 4 digits. Win if your numbers match the winning numbers in any order.",
    "game_superPale": "Similar to Palé but with special rules. Select a 2-digit number and win if it matches in any order.",
    "game_bolita": "A 2-digit game where you select from 00-99. The winning number is derived from the main lottery draw.",
    "game_singulacion": "Single digit game (0-9). Win if your digit matches any of the designated winning positions.",
    "game_pick5Straight": "Select 5 digits (0-9). Win if all your numbers match the winning numbers in exact order.",
    "game_pick5Box": "Select 5 digits. Win if your numbers match the winning numbers in any order.",
    "game_pickTwo": "Select 2 digits (0-9). Win if both digits match the winning numbers in exact order.",
    "game_cash3Front": "Match the first 2 digits in exact order or any order.",
    "game_cash3Back": "Match the last 2 digits in exact order or any order.",
    "game_pickTwoPositions": "Choose your preferred position: Front (first 2 digits), Back (last 2 digits), or Middle (middle 2 digits).",
    "game_panama": "Special lottery format with unique drawing rules. Select numbers according to the current game format.",
    "howToPlay_directo": "1. Enter a two-digit number in the play field and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_pale": "1. Enter a four-digit number in the play field and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_tripleta": "1. Enter a six-digit number in the play field and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_cash3Straight": "1. Enter a three-digit number in the play field and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_cash3Box": "1. Enter a three-digit number followed by the + sign (Ex.: 123+) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_play4Straight": "1. Enter a four-digit number followed by the - sign (Ex.: 1234-) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_play4Box": "1. Enter a four-digit number followed by the + sign (Ex.: 1234+) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_superPale": "1. Enter a four-digit number in the play field and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_bolita": "1. Enter a two-digit number followed by the + sign, followed by the range (1 or 2) (Ex.: 12+1) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_singulacion": "1. Enter a single digit followed by the - sign, followed by the range (1, 2 or 3) (Ex.: 1-2) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_pick5Straight": "1. Enter a five-digit number followed by the - sign (Ex.: 12345-) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_pick5Box": "1. Enter a five-digit number followed by the + sign (Ex.: 12345+) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_pickTwo": "1. Enter a two-digit number in the play field and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_cash3FrontStraight": "1. Enter a three-digit number then the letter F and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_cash3FrontBox": "1. Enter a three-digit number then the letter F followed by the + sign (Ex.: 123F+) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_cash3BackStraight": "1. Enter a three-digit number then the letter B and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_cash3BackBox": "1. Enter a three-digit number then the letter B followed by the + sign (Ex.: 123B+) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_pickTwoFront": "1. Enter a two-digit number, the letter F and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_pickTwoBack": "1. Enter a two-digit number, the letter B and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_pickTwoMiddle": "1. Enter a two-digit number followed by the - sign and the range (3) (Ex.: 10-3) and press enter.\n2. Enter the amount and press enter.",
    "howToPlay_panama": "1. Enter a four-digit number followed by the - sign (Ex.: 1234-) and press enter.\n2. Enter the amount and press enter."
  },
  "dateTime": {
    "monday": "Monday",
    "tuesday": "Tuesday",
    "wednesday": "Wednesday",
    "thursday": "Thursday",
    "friday": "Friday",
    "saturday": "Saturday",
    "sunday": "Sunday",
    "january": "January",
    "february": "February",
    "march": "March",
    "april": "April",
    "may": "May",
    "june": "June",
    "july": "July",
    "august": "August",
    "september": "September",
    "october": "October",
    "november": "November",
    "december": "December"
  },
  "languages": {
    "spanish": "Español",
    "english": "English",
    "french": "Français",
    "creole": "Kreyòl"
  },
  "modals": {
    "duplicateTicket": "Duplicate Ticket",
    "payTicket": "Pay Ticket",
    "duplicatePlays": "Duplicate Plays",
    "ticketNumber": "Ticket Number",
    "enterTicketNumber": "Enter ticket number",
    "enterOrScanTicket": "Enter or scan ticket",
    "scan": "Scan",
    "duplicate": "Duplicate",
    "markAsPaid": "Mark as Paid",
    "targetLottery": "Target Lottery",
    "duplicatePlaysDescription": "Duplicate all plays from current lottery to another lottery"
  },
  "payTicket": {
    "search": "Search",
    "ticketCode": "Ticket Code",
    "date": "Date",
    "user": "User",
    "totalBet": "Total Bet",
    "lines": "Lines",
    "totalPrize": "Total Prize",
    "winningLines": "Winning Lines",
    "statusWinner": "Winner",
    "statusPaid": "Paid",
    "statusCancelled": "Cancelled",
    "statusPending": "Pending",
    "statusLoser": "No Prize",
    "paidBy": "Paid by",
    "paidAt": "Paid at",
    "method": "Method",
    "playNumber": "Number",
    "playAmount": "Amount",
    "playType": "Play Type",
    "playPrize": "Prize",
    "playPaid": "Paid",
    "drawResults": "Winning Numbers",
    "paymentSuccess": "Ticket paid successfully",
    "paymentError": "Error paying ticket",
    "alreadyPaid": "Ticket is already paid"
  },
  "ticket": {
    "ticketLabel": "Ticket",
    "date": "Date",
    "session": "Session",
    "pos": "POS",
    "play": "PLAY",
    "amount": "AMOUNT",
    "total": "TOTAL",
    "totalTicket": "TOTAL TICKET",
    "subtotal": "SUBTOTAL",
    "discountLabel": "DESC.",
    "serial": "Serial",
    "futureSale": "FUTURE SALE",
    "printDate": "Printed",
    "forDate": "For",
    "daySun": "SUN",
    "dayMon": "MON",
    "dayTue": "TUE",
    "dayWed": "WED",
    "dayThu": "THU",
    "dayFri": "FRI",
    "daySat": "SAT",
    "prizeInfo1": "1st$56 2nd$12 3rd$4 Pick2 $75",
    "prizeInfo2": "Pale $1000 Pick3$600 Win4$5000",
    "prizeInfo3": "Super pale$2000 Triplet$10,000",
    "prizeInfo4": "x2 $100",
    "website": "QUICKMONEYNYC.COM",
    "statusOriginal": "ORIGINAL",
    "statusCopy": "COPY",
    "statusCancelled": "CANCELLED",
    "statusPreview": "PREVIEW",
    "copyNotice": "═══ THIS IS A COPY ═══",
    "cancelledNotice": "═══ TICKET CANCELLED ═══",
    "previewNotice": "═══ PREVIEW ONLY - NOT VALID ═══",
    "cancelTicket": "Cancel Ticket",
    "confirmCancel": "Are you sure you want to cancel ticket",
    "errors": {
      "TICKET_NOT_FOUND": "Ticket not found",
      "TICKET_ALREADY_CANCELLED": "Ticket is already cancelled",
      "TICKET_ALREADY_PAID": "Cannot cancel a paid ticket",
      "CANCELLATION_TIME_EXPIRED": "Cancellation time ({minutes} minutes) has expired",
      "CANCEL_AMOUNT_EXCEEDED": "Ticket amount ({ticketAmount}) exceeds maximum allowed ({maxAmount})",
      "DAILY_CANCEL_LIMIT_REACHED": "Ticket cannot be deleted, daily deleted-ticket limit reached ({cancelledToday}/{maxPerDay})",
      "MAX_TICKET_AMOUNT_EXCEEDED": "Ticket amount ({ticketAmount}) exceeds maximum allowed ({maxAmount})",
      "CREDIT_EXHAUSTED": "Your available credit is exhausted. Remaining credit: ${currentCredit}. Please contact your broker or administrator.",
      "CREDIT_INSUFFICIENT": "This ticket exceeds your available credit. Remaining credit: ${currentCredit}. Please contact your broker or administrator.",
      "DAILY_SALE_LIMIT_EXCEEDED": "Daily sale limit exceeded. Available: ${remaining}. Please contact your broker or administrator.",
      "USER_NOT_FOUND": "User not found"
    }
  },
  "monitor": {
    "title": "Ticket Monitor",
    "date": "Date",
    "filter": "Filter",
    "all": "ALL",
    "winners": "WINNERS",
    "pending": "PENDING",
    "losers": "LOSERS",
    "cancelled": "CANCELLED",
    "totalAmount": "Total amount",
    "totalPrizes": "Total prizes",
    "totalPendingPayment": "Total pending payment",
    "printPending": "PRINT PENDING PAYMENTS",
    "quickFilter": "Quick filter",
    "number": "Number",
    "user": "User",
    "prize": "Prize",
    "cancelDate": "Cancel date",
    "status": "Status",
    "actions": "Actions",
    "showing": "Showing",
    "entries": "entries",
    "close": "CLOSE",
    "print": "Print",
    "sendMessage": "Send message",
    "ticketDetail": "Ticket Detail",
    "legend": "Legend",
    "cancelSuccess": "Ticket cancelled successfully"
  },
  "pendingPayments": {
    "title": "Pending Payments",
    "totalPending": "Total pending",
    "totalAmount": "Total amount to pay",
    "noPending": "No pending payments",
    "markAsPaid": "Mark as paid",
    "paymentSuccess": "Payment marked successfully",
    "paymentError": "Error marking payment"
  },
  "salesHistory": {
    "title": "Sales History",
    "startDate": "Start date",
    "endDate": "End date",
    "viewSales": "View Sales",
    "resetPointOfSale": "Reset Point of Sale",
    "total": "Total",
    "code": "Code",
    "ref": "Ref.",
    "tickets": "Tickets",
    "sales": "Sales",
    "commissions": "Commissions",
    "prizes": "Prizes",
    "net": "Net",
    "paid": "Paid",
    "final": "Final",
    "totals": "Totals",
    "noData": "No sales data for selected period",
    "showing": "Showing",
    "entries": "entries"
  },
  "playsMonitor": {
    "title": "Plays Monitor",
    "date": "Date",
    "lottery": "Lottery",
    "refresh": "Refresh",
    "print": "Print",
    "totalFor": "Total for draw",
    "play": "Play",
    "amount": "Amount",
    "total": "Total",
    "printedAt": "Printed on",
    "noResults": "No results"
  },
  "authorizePunch": {
    "title": "Authorize Punch",
    "password": "Password",
    "confirmation": "Confirmation",
    "authorize": "Authorize"
  },
  "viewSales": {
    "title": "View Sales",
    "viewSales": "View Sales",
    "printReport": "Print Report",
    "salesTab": "Sales",
    "transactionsTab": "Transactions",
    "salesSummary": "Sales Summary",
    "balanceToDate": "Balance of the Day",
    "totalPendingTickets": "Total Pending Tickets",
    "totalLoans": "Total Loans",
    "store": "Store",
    "code": "Code",
    "pending": "Pending",
    "losers": "Losers",
    "winners": "Winners",
    "total": "Total",
    "sales": "Sales",
    "commissions": "Commissions",
    "discounts": "Discounts",
    "prizes": "Prizes",
    "net": "Net",
    "caida": "Caída",
    "final": "Final",
    "balance": "Balance",
    "caidaAcumulada": "Accumulated Caída",
    "totalsByDraw": "Totals by Draw",
    "draw": "Draw",
    "totalSales": "Total Sales",
    "winningTickets": "Winning Tickets",
    "winningNumbers": "Winning Numbers",
    "date": "Date",
    "ticketNumber": "Ticket Number",
    "amountToPay": "Amount to Pay",
    "paid": "Paid",
    "details": "Details",
    "view": "View",
    "recentTransactions": "Recent Transactions (Last 12 Days)",
    "concept": "Concept",
    "previous": "Previous",
    "debit": "Debit",
    "credit": "Credit",
    "salesResults": "Sales Results",
    "noData": "No data available",
    "loading": "Loading...",
    "retry": "Retry",
    "notAvailableYet": "Not available yet",
    "noTransactions": "No transactions",
    "counterparty": "Counterparty",
    "amount": "Amount",
    "status": "Status",
    "statusApproved": "Approved",
    "statusPending": "Pending",
    "lotShort": "LOT",
    "salesShort": "SALES",
    "commissionsShort": "COMM",
    "prizesShort": "PRIZE",
    "netShort": "NET",
    "drawResults": "Draw Results",
    "drawForDate": "Draw for date",
    "printedOn": "Printed",
    "type": "Type",
    "drawDetail": "Draw Detail"
  },
  "settings": {
    "title": "Banca Settings",
    "print": "Print",
    "smsOnly": "SMS Only",
    "showCaida": "Show Caida Statistics",
    "printMode": "Print Mode",
    "language": "Language",
    "layout": "Layout",
    "adminNotification": "Admin Notification",
    "notificationDescription": "Message will scroll in the top bar. Leave empty to hide notification.",
    "notificationPlaceholder": "e.g., LOTEKA is deactivated today due to Hurricane Melissa Category 5...",
    "testSection": "Lottery Closing Test",
    "testDescription": "Simulate different lottery timer states",
    "testNormal": "Normal",
    "testWarning": "Warning (8m)",
    "testClosing": "Closing (2m)",
    "testClosed": "Closed",
    "saveChanges": "SAVE CHANGES"
  },
  "layouts": {
    "title": "Choose Layout",
    "description": "Select your preferred interface layout",
    "classic": "Classic",
    "classicDesc": "Traditional lottery terminal layout",
    "modern": "Modern",
    "modernDesc": "Modern interface layout",
    "preview": "Preview",
    "select": "Select",
    "current": "Current"
  },
  "lottery": {
    "searchPlaceholder": "Search lotteries...",
    "selectLotteries": "Select lotteries...",
    "selectLotteriesRange": "Select Lotteries (0-4)",
    "removeLottery": "Remove lottery",
    "limitExceed": "Limit Exceed",
    "noLimit": "No Limit",
    "selectAll": "Select All",
    "deselectAll": "Deselect All"
  },
  "statistics": {
    "title": "Statistics",
    "show": "Show statistics",
    "hide": "Hide statistics",
    "credito": "Credit",
    "venta": "Sales",
    "percentage": "%",
    "commission": "Commission",
    "discount": "Discount",
    "premio": "Prize",
    "neto": "Net",
    "caida": "Drop",
    "final": "Final",
    "balance": "Balance",
    "caidaAcumulada": "Accum. Drop"
  },
  "ventaFutura": {
    "title": "Future Sale",
    "description": "Select one or more dates to create tickets for future days. You can select up to 7 days in advance.",
    "notAllowed": "Future sales are not enabled for this banca",
    "selectAll": "Select all",
    "deselectAll": "Deselect all",
    "clearSelection": "Clear selection",
    "selected": "Selected",
    "selectedCount": "{count} dates selected",
    "ticketsInfo": "{count} tickets will be generated (one per date)",
    "noSelection": "No future dates selected",
    "currentDaySale": "Tickets will be created for today",
    "apply": "Apply",
    "day1": "Tomorrow",
    "day2": "2 days",
    "day3": "3 days",
    "day4": "4 days",
    "day5": "5 days",
    "day6": "6 days",
    "day7": "7 days",
    "activeMode": "Future sale active",
    "day": "day",
    "days": "days",
    "indicator": "One ticket will be generated per selected date when printing"
  },
  "results": {
    "loading": "Loading results...",
    "noResults": "No results available for this date",
    "retry": "Retry",
    "error": "Error loading results",
    "1era": "1st",
    "2da": "2nd",
    "3era": "3rd",
    "pick3": "Pick 3",
    "pick4": "Pick 4",
    "pick5": "Pick 5",
    "bolita": "Bolita",
    "singulaccion": "Singulaccion"
  },
  "phoneDirectory": {
    "title": "Phone Directory",
    "createTab": "Create",
    "listTab": "List",
    "contactName": "Contact name",
    "contactNamePlaceholder": "Enter contact name",
    "phone": "Phone",
    "telegramChatId": "Telegram Chat ID (Optional)",
    "telegramChatIdHint": "User must send /start to your bot first to get their Chat ID",
    "saving": "SAVING...",
    "update": "UPDATE",
    "create": "CREATE",
    "invalidPhone": "Please enter a valid 10-digit phone number",
    "confirmDelete": "Are you sure you want to delete this contact?",
    "errorSaving": "Error saving contact",
    "errorDeleting": "Error deleting contact",
    "errorLoading": "Error loading contacts",
    "entriesPerPage": "Entries per page",
    "quickFilter": "Quick filter",
    "loadingContacts": "Loading contacts...",
    "retry": "Retry",
    "telegramId": "Telegram ID",
    "actions": "Actions",
    "noEntries": "No entries available",
    "showing": "Showing",
    "to": "to",
    "of": "of",
    "entries": "entries"
  },
  "contactSelector": {
    "selectContact": "Select Contact",
    "searchPlaceholder": "Search by name or phone...",
    "loadingContacts": "Loading contacts...",
    "noMatchingContacts": "No contacts match your search",
    "noContactsAvailable": "No contacts available. Add contacts in Phone Directory.",
    "sending": "SENDING...",
    "sendVia": "SEND VIA {platform}"
  },
  "changePassword": {
    "title": "Change password for",
    "currentPassword": "Current password",
    "currentHint": "Enter your current password",
    "newPassword": "New password",
    "confirmPassword": "Confirm password",
    "hint": "Minimum 6 characters, at least one letter and one number",
    "confirmHint": "Repeat password to confirm",
    "mismatch": "Passwords do not match",
    "submit": "Change password",
    "changing": "Changing...",
    "errorGeneric": "Error changing password",
    "success": "Password changed successfully"
  },
  "limits": {
    "blocked": "Limit reached for {number} on {lottery} ({used}/{max})",
    "reservationError": "Could not check limit, play added without reservation",
    "blockedByGlobal": "Global limit reached",
    "blockedByZona": "Zone limit reached",
    "blockedByBanca": "Banca limit reached",
    "blockedByLocalBanca": "Local banca limit reached",
    "blockedByNoLimit": "No limits configured for this banca",
    "blockedByDailySaleLimit": "Daily sale limit reached. Available: ${dailySaleRemaining}",
    "blockedByCreditLimit": "Credit exhausted. Remaining credit: ${creditRemaining}",
    "blockedByFutureSalesDisabled": "This lottery does not allow future sales",
    "playRemovedNoAvailability": "Play {number} ({lottery}) removed — no availability",
    "playsRemovedNoAvailability": "{count} plays removed due to no availability: {list}",
    "scope": {
      "banca": "Banca limit",
      "local-banca": "Local banca limit",
      "zona": "Zone limit",
      "global": "Global limit",
      "por-numero-banca": "Number limit (banca)",
      "por-numero-zona": "Number limit (zone)",
      "por-numero-global": "Number limit (global)",
      "no-config": "No limits configured"
    },
    "attempted": "Attempted",
    "available": "Available",
    "overBy": "Over by",
    "currentUsed": "Used",
    "limitAmount": "Limit"
  },
  "convertPlays": {
    "title": "Convert plays",
    "amount": "Amount",
    "convertTo": "Convert to",
    "directo": "Straight",
    "pale": "Pale",
    "tripleta": "Tripleta",
    "noPlays": "No plays to convert",
    "numbersFound": "{count} numbers available",
    "noLotterySelected": "Select a lottery first",
    "added": "{count} plays added"
  },
  "randomGen": {
    "lottery": "Lottery",
    "playType": "Play Type",
    "amount": "Amount",
    "quantity": "Quantity",
    "generate": "Generate",
    "noPlayTypes": "This lottery doesn't allow random plays",
    "generated": "{count} plays generated",
    "errorInvalidAmountOrQuantity": "Enter a valid amount and quantity",
    "errorNoLottery": "Select a lottery",
    "errorNoPlayType": "Select a play type"
  },
  "ticketHistory": {
    "title": "Ticket History",
    "searchPlaceholder": "Search by barcode, ticket ID, or hash...",
    "search": "Search",
    "filter": "Filter",
    "filterAll": "All Tickets",
    "filterActive": "Active",
    "filterPaid": "Paid",
    "filterCancelled": "Cancelled",
    "export": "Export",
    "clearAll": "Clear All",
    "noTickets": "No tickets found",
    "barcode": "Barcode",
    "plays": "Plays",
    "total": "Total",
    "lottery": "Lottery",
    "pay": "Pay",
    "cancel": "Cancel",
    "duplicate": "Duplicate",
    "markAsPaid": "Mark as Paid",
    "cancelTicket": "Cancel Ticket",
    "duplicateTicket": "Duplicate Ticket",
    "totalTickets": "Total Tickets: {count}",
    "confirmCancel": "Are you sure you want to cancel this ticket?",
    "markedAsPaid": "Ticket marked as paid",
    "ticketCancelled": "Ticket cancelled",
    "newTicketCreated": "New ticket created: {id}",
    "ticketsExported": "Tickets exported successfully",
    "allCleared": "All tickets cleared"
  },
  "toast": {
    "ticketCancelled": "Ticket #{code} cancelled successfully",
    "noMessagingEnabled": "No messaging platform enabled",
    "sendingTelegram": "Sending {type} ticket to {name} via Telegram...",
    "sentTelegram": "Sent to {name} via Telegram",
    "errorTelegram": "Error sending via Telegram",
    "sendingWhatsapp": "Sending {type} ticket to {name} via WhatsApp...",
    "whatsappComingSoon": "WhatsApp integration coming soon",
    "errorSendingTicket": "Error sending ticket: {message}",
    "noPlaysToPrint": "No plays added. Add plays before printing a ticket.",
    "ticketDuplicated": "Ticket {barcode} duplicated successfully"
  },
  "apiErrors": {
    "NOT_FOUND": "Resource not found",
    "DUPLICATE_RESOURCE": "Resource already exists",
    "UNAUTHORIZED": "Unauthorized",
    "FORBIDDEN": "Action not allowed",
    "BAD_REQUEST": "Invalid request",
    "CONFLICT": "Conflict with current state",
    "VALIDATION_FAILED": "Invalid data",
    "INTERNAL_ERROR": "Internal server error",
    "DB_UNIQUE_CONSTRAINT": "A record with this data already exists",
    "DB_FK_IN_USE": "Cannot delete: records depend on this",
    "DB_MISSING_REQUIRED": "Missing required fields",
    "DB_TIMEOUT": "Database timed out",
    "DB_GENERIC": "Database error",
    "INVALID_CREDENTIALS": "Invalid credentials",
    "INVALID_PIN": "Invalid PIN",
    "ACCOUNT_BLOCKED": "Account blocked",
    "SESSION_EXPIRED": "Session expired",
    "PASSWORD_CHANGE_REQUIRED": "You must change your password",
    "PIN_CHANGE_REQUIRED": "You must change your PIN",
    "TOKEN_INVALID": "Invalid token",
    "USER_NOT_FOUND": "User not found",
    "USER_ALREADY_EXISTS": "User already exists",
    "PASSWORD_TOO_WEAK": "Password is too weak",
    "PASSWORD_MISMATCH": "Passwords do not match",
    "PASSWORD_SAME_AS_OLD": "New password cannot match the old one",
    "OLD_PASSWORD_INCORRECT": "Current password is incorrect",
    "LANGUAGE_INVALID": "Invalid language",
    "PERMISSION_DENIED": "Permission denied",
    "BETTING_POOL_NOT_FOUND": "Banca not found",
    "BETTING_POOL_CODE_EXISTS": "Banca code already exists",
    "BETTING_POOL_HAS_USERS": "Banca has assigned users",
    "BETTING_POOL_DISABLED": "Banca is disabled",
    "BANK_NOT_FOUND": "Bank not found",
    "TICKET_NOT_FOUND": "Ticket not found",
    "TICKET_ALREADY_PAID": "Ticket has already been paid",
    "TICKET_ALREADY_CANCELLED": "Ticket is already cancelled",
    "TICKET_CANCEL_WINDOW_EXPIRED": "Cancellation window has expired",
    "TICKET_DATE_PAST_FORBIDDEN": "Cannot create a ticket with a past date",
    "TICKET_DATE_FUTURE_FORBIDDEN": "Cannot create a ticket with a future date",
    "TICKET_INVALID_BETS_EXCEED_LIMITS": "Some bets exceed the configured limits",
    "TICKET_HAS_NO_PRIZE": "Ticket has no prize",
    "MAX_TICKET_AMOUNT_EXCEEDED": "Ticket amount ({ticketAmount}) exceeds maximum allowed ({maxAmount})",
    "DAILY_SALE_LIMIT_EXCEEDED": "Daily sale limit exceeded. Available: ${remaining}. Please contact your broker or administrator.",
    "DAILY_CANCEL_LIMIT_REACHED": "Ticket cannot be deleted, daily deleted-ticket limit reached ({cancelledToday}/{maxPerDay})",
    "CANCEL_AMOUNT_EXCEEDED": "Ticket amount ({ticketAmount}) exceeds maximum allowed ({maxAmount})",
    "CREDIT_EXHAUSTED": "Your available credit is exhausted. Remaining credit: ${currentCredit}. Please contact your broker or administrator.",
    "CREDIT_INSUFFICIENT": "This ticket exceeds your available credit. Remaining credit: ${currentCredit}. Please contact your broker or administrator.",
    "LIMIT_NOT_FOUND": "Limit not found",
    "LIMIT_TYPE_INVALID": "Invalid limit type",
    "LIMIT_GLOBAL_REQUIRED_FIRST": "Global limit must be configured first",
    "LIMIT_ZONE_REQUIRED_FIRST": "Zone limit must be configured first",
    "LIMIT_PARENT_VIOLATION": "Limit exceeds its parent level",
    "LIMIT_BANCA_LOCAL_CONFLICT": "Banca and local limit conflict",
    "LOAN_NOT_FOUND": "Loan not found",
    "LOAN_NOT_ACTIVE": "Loan is not active",
    "LOAN_ONLY_ACTIVE_EDITABLE": "Only active loans can be edited",
    "LOAN_ONLY_ACTIVE_CANCELLABLE": "Only active loans can be cancelled",
    "DRAW_NOT_FOUND": "Draw not found",
    "LOTTERY_NOT_FOUND": "Lottery not found",
    "GAME_TYPE_NOT_FOUND": "Game type not found",
    "DRAW_CLOSED": "Draw is closed",
    "DRAW_ALREADY_HAS_RESULTS": "Draw already has results",
    "RESULT_NOT_FOUND": "Result not found",
    "TRANSACTION_NOT_FOUND": "Transaction not found",
    "TRANSACTION_GROUP_NOT_FOUND": "Transaction group not found",
    "TRANSACTION_LINE_INVALID": "Invalid transaction line",
    "TRANSACTION_AMOUNT_MISMATCH": "Amounts don't match",
    "TRANSACTION_APPROVE_PERMISSION_DENIED": "No permission to approve",
    "NOTIFICATION_NOT_FOUND": "Notification not found",
    "NOTIFICATION_MESSAGE_REQUIRED": "Message is required",
    "NOTIFICATION_RECIPIENTS_REQUIRED": "Select at least one recipient"
  },
  "mobile": {
    "sell": "Sell",
    "salesSummary": "Sales summary",
    "winningNumbers": "Winning numbers",
    "checkUpdate": "Check for updates",
    "printTicket": "Print ticket",
    "sendWhatsApp": "Send via WhatsApp",
    "sendTelegram": "Send via Telegram",
    "dayTickets": "Today's tickets",
    "discount": "Discount",
    "randomPlays": "Random plays",
    "selectLottery": "Select lottery",
    "lotteries": "Lotteries",
    "closed": "CLOSED",
    "fieldPlay": "PLAY",
    "fieldAmount": "AMOUNT",
    "enterPlay": "Enter a play",
    "selectLotteryFirst": "Select a lottery",
    "invalidAmount": "Invalid amount",
    "invalidQty": "Invalid quantity (1-100)",
    "splitNotCompound": "X+Y amount doesn't apply to compound plays",
    "splitOnly": "X+Y amount only for Cash3, Play4 or Pick5",
    "noAvailResponse": "No availability response — try again",
    "noAvailFor": "No availability for {number}",
    "availableVs": "Available: ${available} (you asked ${requested})",
    "blockedIn": "No availability: {number} on {lot}",
    "removedNoAvail": "Removed {number} on {lot}: no availability",
    "lotteryClosedName": "{name} is closed",
    "lotteryNotAvailable": "Lottery not available for {number}",
    "sourceNoPlays": "Source lottery has no plays",
    "discountNotEnabled": "Discount not enabled for this banca",
    "ticketNotFound": "Ticket not found",
    "comingSoon": "coming soon",
    "sellTicket": "Sell ticket",
    "noPlays": "No plays",
    "noResults": "No results yet",
    "searchByCode": "Scan or type the barcode…",
    "loadPlays": "Load plays",
    "amountPerPlay": "Amount per play…",
    "from": "From:",
    "to": "To:",
    "pay": "Pay",
    "payAnother": "Search another",
    "copy": "Copy",
    "done": "Done",
    "cancelTicketQ": "Cancel ticket {code}?",
    "yesCancel": "Yes, cancel",
    "logoutQ": "Are you sure you want to log out?",
    "dupHint": "Plays are added to the current ticket with their original lottery.",
    "login": "Sign in",
    "username": "Username",
    "password": "Password",
    "enter": "Log in",
    "rememberCreds": "Remember username & password",
    "printer": "Printer",
    "internalPrinter": "Verifone",
    "paperSize": "Paper size",
    "testPrint": "Test print",
    "sessionExpired": "Your session expired. Please sign in again.",
    "ticketCreated": "Ticket {code} created ✓",
    "ticketsCreated": "{count} tickets created ✓",
    "upToDate": "You are up to date (v{version})",
    "updateAvailable": "Update available",
    "updateVersion": "New version: {version}",
    "updateNow": "Update",
    "downloadingUpdate": "Downloading update…",
    "updateFailed": "Could not check for updates",
    "updatesTitle": "Updates",
    "autoUpdateOn": "Automatic",
    "autoUpdateOff": "Manual",
    "autoUpdateHint": "In automatic mode the app checks for updates at startup and at the chosen interval. When a new version is found it asks before installing — it never installs on its own."
  },
  "printAgent": {
    "title": "Local printing (agent)",
    "connected": "Connected",
    "notFound": "Not detected",
    "detect": "Detect",
    "fallbackHint": "Without the local agent, tickets print via the browser dialog. Install the agent to print straight to the thermal printer.",
    "printer": "Printer",
    "auto": "Automatic",
    "paper": "Paper",
    "enabled": "Print through the agent",
    "testPrint": "Test",
    "testing": "Printing…",
    "testOk": "Sent to the printer ✓"
  }
}
