{
  "common": {
    "help": "Ayuda",
    "close": "Cerrar",
    "open": "Abrir",
    "print": "Imprimir",
    "cancel": "Cancelar",
    "save": "Guardar",
    "delete": "Eliminar",
    "clear": "Limpiar",
    "submit": "Enviar",
    "back": "Volver",
    "next": "Siguiente",
    "previous": "Anterior",
    "today": "Hoy",
    "yes": "Sí",
    "no": "No",
    "loading": "Cargando...",
    "confirmClearAllPlays": "¿Está seguro que desea borrar todas las jugadas?"
  },
  "topbar": {
    "terminal": "",
    "results": "RESULTADOS",
    "sync": "Sincronizar",
    "contacts": "Contactos",
    "profile": "Perfil",
    "notifications": "Notificaciones",
    "changePassword": "Cambiar contraseña",
    "logout": "Cerrar sesión",
    "noNotifications": "No hay notificaciones en este momento",
    "more": "Más"
  },
  "sidebar": {
    "menu": "Menú",
    "monitoring": "Monitoreo",
    "pending": "Pendientes de pago",
    "sales": "Ventas históricas",
    "printReport": "Imprimir reporte",
    "duplicate": "Duplicar",
    "duplicatePlays": "Duplicar jugadas",
    "plays": "Jugadas",
    "pay": "Pagar",
    "viewSales": "Ver ventas",
    "schedules": "Horarios",
    "help": "Ayuda",
    "settings": "Configuración",
    "authorize": "Autorizar ponchado",
    "generator": "Generador de jugadas aleatorias",
    "logout": "Cerrar sesión",
    "language": "Idioma"
  },
  "horarios": {
    "morning": "Mañana",
    "afternoon": "Tarde",
    "night": "Noche",
    "lotteries": "loterías"
  },
  "input": {
    "lottery": "LOTERÍA",
    "play": "JUGADA",
    "amount": "MONTO",
    "enterNumbers": "Ingrese números",
    "enterAmount": "Ingrese monto",
    "recentTickets": "Tickets recientes",
    "searchTickets": "Buscar tickets...",
    "searchLottery": "Buscar lotería...",
    "noLotteriesFound": "No se encontraron loterías",
    "closes": "Cierra",
    "plays": "Jugadas",
    "total": "Total",
    "telegramOn": "Telegram activado",
    "telegramOff": "Telegram desactivado",
    "whatsappOn": "WhatsApp activado",
    "whatsappOff": "WhatsApp desactivado",
    "ticketLanguage": "Idioma del ticket",
    "cancelTicket": "Cancelar ticket seleccionado",
    "printCopy": "Imprimir copia del ticket",
    "cancelShort": "Cancelar",
    "copyShort": "Copia",
    "convertPlaysShortcut": "+ para convertir jugadas",
    "saveTicket": "Guardar Ticket",
    "invalidPlay": "Jugada inválida - Los números deben tener dígitos pares (2, 4 o 6)",
    "error": {
      "minLength": "Se requieren mínimo 2 caracteres",
      "invalidAmount": "Monto inválido",
      "noLotterySelected": "No hay lotería seleccionada. Por favor seleccione una lotería.",
      "oddLength": "Los números deben tener dígitos pares (2, 4 o 6)",
      "maxLengthDominican": "Máximo 6 dígitos permitidos (Tripleta)",
      "invalidCharacters": "Caracteres inválidos en la jugada",
      "invalidDPattern": "Patrón 'd' inválido - Deben ser pares iguales (ej., 33d66)",
      "invalidDSequence": "Secuencia inválida - El final debe ser >= inicio",
      "invalidDotPattern": "Patrón '.' inválido - Debe terminar con punto",
      "oddLengthDot": "Números con '.' deben tener dígitos pares",
      "invalidCash3Sequence": "Secuencia Cash3 inválida - Debe ser 3 dígitos + 3 dígitos (ej., 345+348)",
      "invalidSequenceRange": "Secuencia inválida - Número final debe ser >= número inicial",
      "invalidBolita": "Bolita inválida - Debe ser 2 dígitos + 1 o 2 (ej., 12+1 o 12+2)",
      "invalidSingulacion": "Singulación inválida - Debe ser 1 dígito + 1, 2 o 3 (ej., 1-2)",
      "invalidIncrement": "Incremento inválido - Debe ser -10, -20 o -30 (ej., 123-20)",
      "invalidQPattern": "Patrón 'q' inválido - Debe ser 3 o 4 dígitos (ej., 123q o 1234q)",
      "invalidFBPattern": "Patrón F/B inválido - Debe ser 2 o 3 dígitos",
      "invalidLength": "Longitud inválida - Debe ser 2-6 dígitos",
      "singleDigit": "Dígito único no permitido - Se requieren mínimo 2 dígitos",
      "tooLong": "Demasiado largo - Máximo 6 dígitos permitidos",
      "gameTypeNotAllowed": "{gameType} no está disponible para {lotteries}"
    }
  },
  "error": {
    "invalidBets": "Jugadas Inválidas Detectadas",
    "invalidBetsDesc": "Las siguientes jugadas exceden los límites permitidos y no pueden ser procesadas:",
    "continueWithValidBets": "Continuar con Jugadas Válidas"
  },
  "controlBar": {
    "discount": "Desc.",
    "discountEnabled": "Descuento activado",
    "discountDisabled": "Descuento desactivado",
    "multiLottery": "Mult. lot",
    "multiLotteryEnabled": "Multi-lotería activado",
    "multiLotteryDisabled": "Multi-lotería desactivado",
    "ticketLanguage": "Idioma Ticket",
    "createTicket": "CREAR TICKET",
    "duplicate": "Duplicar",
    "printReport": "Imprimir reporte",
    "pay": "Pagar",
    "help": "Ayuda",
    "plays": "Plays",
    "noPlaysAdded": "No hay jugadas agregadas",
    "closedLotteriesError": "No se puede imprimir el ticket. Las siguientes loterías están cerradas:",
    "resultados": "Resultados",
    "ventaFutura": "Venta futura",
    "verVentas": "Ver ventas",
    "monitoreo": "Monitoreo",
    "pagarTicket": "Pagar ticket",
    "pendientesPago": "Pendientes de pago",
    "horarios": "Horarios",
    "duplicar": "Duplicar",
    "ventaFuturaComingSoon": "¡Esta función estará disponible pronto!",
    "selectAllLotteries": "Todas lot.",
    "dailySaleLimitReached": "Se ha sobrepasado el límite de venta diaria. Debe comunicarse con su corredor o administrador.",
    "notAuthorizedToSell": "No está autorizado para vender tickets. Debe comunicarse con su corredor o administrador.",
    "splitAmountNotAllowed": "El monto dividido (Straight+Box) solo aplica a Cash3, Play4 y Pick5.",
    "amountCannotBeZero": "El monto no puede ser 0."
  },
  "playSection": {
    "lot": "LOT",
    "num": "NUM",
    "amount": "$",
    "total": "TOTAL",
    "tipo": "TIPO",
    "playsTitle": "JUGADAS",
    "directoTitle": "QUINIELA / SINGULAR",
    "paleTripleta": "PALÉ / TRIPLETA",
    "cash3Title": "PICK2 / PICK3",
    "play4Pick5Title": "PICK4 / PICK5",
    "notEnoughAvailable": "No hay suficiente disponible para esta jugada. Por favor ingrese una cantidad menor.",
    "cancelPlayAndCheck": "Cancelar y Revisar Jugadas",
    "exceeds-limit": "Excede el límite",
    "invalid-for-lottery": "Inválido para esta lotería"
  },
  "gameTypes": {
    "directo": "Directo",
    "pale": "Palé",
    "tripleta": "Tripleta",
    "cash3": "Cash 3",
    "play4": "Play 4",
    "pick5": "Pick 5",
    "superPale": "Super Palé",
    "bolita": "Bolita",
    "singulacion": "Singulación",
    "pickTwo": "Pick Two",
    "panama": "Panamá"
  },
  "help": {
    "title": "Ayuda",
    "shortcuts": "Teclas",
    "howToPlay": "¿Cómo jugar?",
    "keyboardShortcuts": "Atajos de Teclado",
    "key": "Tecla",
    "description": "Descripción",
    "gameInstructions": "Instrucciones de Juego",
    "steps": "Pasos",
    "shortcuts_arrowUp": "Limpiar campos de apuesta y monto",
    "shortcuts_L": "Cancelar ticket y limpiar pantalla",
    "shortcuts_slash": "Cambiar lotería",
    "shortcuts_asterisk": "Imprimir ticket",
    "shortcuts_c": "Duplicar ticket",
    "shortcuts_P": "Marcar ticket como pagado",
    "shortcuts_q": "Solo para Cash 3 y Play 4. Escriba la apuesta seguida de 'q' (ej., 123q) para generar todas las combinaciones",
    "shortcuts_dot": "Solo para Directo, Palé y Tripleta. Escriba la apuesta seguida de un punto (ej., 1234.) para generar todas las combinaciones",
    "shortcuts_d": "Solo para Directo. Ingrese una apuesta inicial con dos dígitos iguales seguida de 'd' y dos dígitos iguales para la apuesta final (ej., 33d66) para generar una secuencia de pares iguales",
    "shortcuts_minus10": "Solo para Cash 3. Ingrese una apuesta de tres dígitos seguida de '-10' (ej., 123-10) para generar todas las combinaciones que contienen los últimos dos dígitos, incrementando en 100 cada valor",
    "shortcuts_plus": "Solo para Cash 3 Directo. Ingrese una apuesta de tres dígitos seguida de '+' y otra apuesta de tres dígitos (ej., 345+348) para generar una secuencia directa: 345, 346, 347",
    "shortcuts_F8": "Abrir el modal de Venta Futura para seleccionar fechas futuras para venta de tickets",
    "game_directo": "Seleccione un número de 2 dígitos del 00 al 99. Si su número coincide con el número ganador en orden exacto, usted gana.",
    "game_pale": "Seleccione un número de 2 dígitos. Gana si su número coincide con el número ganador en cualquier orden.",
    "game_tripleta": "Seleccione un número de 3 dígitos del 000 al 999. Gana si su número coincide con los últimos tres dígitos del número ganador en orden exacto.",
    "game_cash3Straight": "Elija 3 dígitos (0-9). Gana si sus números coinciden con los números ganadores en orden exacto.",
    "game_cash3Box": "Elija 3 dígitos. Gana si sus números coinciden con los números ganadores en cualquier orden.",
    "game_play4Straight": "Elija 4 dígitos (0-9). Gana si sus números coinciden con los números ganadores en orden exacto.",
    "game_play4Box": "Elija 4 dígitos. Gana si sus números coinciden con los números ganadores en cualquier orden.",
    "game_superPale": "Similar a Palé pero con reglas especiales. Seleccione un número de 2 dígitos y gane si coincide en cualquier orden.",
    "game_bolita": "Un juego de 2 dígitos donde selecciona del 00-99. El número ganador se deriva del sorteo de la lotería principal.",
    "game_singulacion": "Juego de un solo dígito (0-9). Gana si su dígito coincide con cualquiera de las posiciones ganadoras designadas.",
    "game_pick5Straight": "Seleccione 5 dígitos (0-9). Gana si todos sus números coinciden con los números ganadores en orden exacto.",
    "game_pick5Box": "Seleccione 5 dígitos. Gana si sus números coinciden con los números ganadores en cualquier orden.",
    "game_pickTwo": "Seleccione 2 dígitos (0-9). Gana si ambos dígitos coinciden con los números ganadores en orden exacto.",
    "game_cash3Front": "Coincide con los primeros 2 dígitos en orden exacto o cualquier orden.",
    "game_cash3Back": "Coincide con los últimos 2 dígitos en orden exacto o cualquier orden.",
    "game_pickTwoPositions": "Elija su posición preferida: Frente (primeros 2 dígitos), Atrás (últimos 2 dígitos), o Medio (2 dígitos del medio).",
    "game_panama": "Formato especial de lotería con reglas de sorteo únicas. Seleccione números según el formato actual del juego.",
    "howToPlay_directo": "1. Ingresar en la jugada un número de dos dígitos y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_pale": "1. Ingresar en la jugada un número de cuatro dígitos y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_tripleta": "1. Ingresar en la jugada un número de seis dígitos y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_cash3Straight": "1. Ingresar en la jugada un número de tres dígitos y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_cash3Box": "1. Ingresar en la jugada un número de tres dígitos seguido del signo + (Ej.: 123+) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_play4Straight": "1. Ingresar en la jugada un número de cuatro dígitos seguido del signo - (Ej.: 1234-) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_play4Box": "1. Ingresar en la jugada un número de cuatro dígitos seguido del signo + (Ej.: 1234+) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_superPale": "1. Ingresar en la jugada un número de cuatro dígitos y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_bolita": "1. Ingresar en la jugada un número de dos dígitos seguido del signo +, seguido del rango (1 o 2) (Ej.: 12+1) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_singulacion": "1. Ingresar en la jugada un número de un dígito seguido del signo -, seguido del rango (1, 2 o 3) (Ej.: 1-2) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_pick5Straight": "1. Ingresar en la jugada un número de cinco dígitos seguido del signo - (Ej.: 12345-) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_pick5Box": "1. Ingresar en la jugada un número de cinco dígitos seguido del signo + (Ej.: 12345+) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_pickTwo": "1. Ingresar en la jugada un número de dos dígitos y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_cash3FrontStraight": "1. Ingresar en la jugada un número de tres dígitos luego la letra F y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_cash3FrontBox": "1. Ingresar en la jugada un número de tres dígitos luego la letra F seguido del signo + (Ej.: 123F+) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_cash3BackStraight": "1. Ingresar en la jugada un número de tres dígitos luego la letra B y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_cash3BackBox": "1. Ingresar en la jugada un número de tres dígitos luego la letra B seguido del signo + (Ej.: 123B+) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_pickTwoFront": "1. Ingresar en la jugada un número de dos dígitos, la letra F y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_pickTwoBack": "1. Ingresar en la jugada un número de dos dígitos, la letra B y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_pickTwoMiddle": "1. Ingresar en la jugada un número de dos dígitos seguido del signo de - y el rango (3) (Ej.: 10-3) y presionar enter.\n2. Ingresar el monto y presionar enter.",
    "howToPlay_panama": "1. Ingresar en la jugada un número de cuatro dígitos seguido del signo - (Ej.: 1234-) y presionar enter.\n2. Ingresar el monto y presionar enter."
  },
  "dateTime": {
    "monday": "Lunes",
    "tuesday": "Martes",
    "wednesday": "Miércoles",
    "thursday": "Jueves",
    "friday": "Viernes",
    "saturday": "Sábado",
    "sunday": "Domingo",
    "january": "Enero",
    "february": "Febrero",
    "march": "Marzo",
    "april": "Abril",
    "may": "Mayo",
    "june": "Junio",
    "july": "Julio",
    "august": "Agosto",
    "september": "Septiembre",
    "october": "Octubre",
    "november": "Noviembre",
    "december": "Diciembre"
  },
  "languages": {
    "spanish": "Español",
    "english": "English",
    "french": "Français",
    "creole": "Kreyòl"
  },
  "modals": {
    "duplicateTicket": "Duplicar Ticket",
    "payTicket": "Pagar Ticket",
    "duplicatePlays": "Duplicar Jugadas",
    "ticketNumber": "Número de Ticket",
    "enterTicketNumber": "Ingrese número de ticket",
    "enterOrScanTicket": "Ingrese o escanee el ticket",
    "scan": "Escanear",
    "duplicate": "Duplicar",
    "markAsPaid": "Marcar como Pagado",
    "targetLottery": "Lotería Destino",
    "duplicatePlaysDescription": "Duplicar todas las jugadas de la lotería actual a otra lotería"
  },
  "payTicket": {
    "search": "Buscar",
    "ticketCode": "Código de Ticket",
    "date": "Fecha",
    "user": "Usuario",
    "totalBet": "Total Apostado",
    "lines": "Líneas",
    "totalPrize": "Total Premio",
    "winningLines": "Líneas Ganadoras",
    "statusWinner": "Ganador",
    "statusPaid": "Pagado",
    "statusCancelled": "Cancelado",
    "statusPending": "Pendiente",
    "statusLoser": "Sin Premio",
    "paidBy": "Pagado por",
    "paidAt": "Pagado el",
    "method": "Método",
    "playNumber": "Número",
    "playAmount": "Monto",
    "playType": "Tipo de Jugada",
    "playPrize": "Premio",
    "playPaid": "Pagado",
    "drawResults": "Números Ganadores",
    "paymentSuccess": "Ticket pagado exitosamente",
    "paymentError": "Error al pagar el ticket",
    "alreadyPaid": "El ticket ya fue pagado"
  },
  "ticket": {
    "ticketLabel": "Ticket",
    "date": "Fecha",
    "session": "Sesión",
    "pos": "POS",
    "play": "JUGADA",
    "amount": "MONTO",
    "total": "TOTAL",
    "totalTicket": "TOTAL TICKET",
    "subtotal": "SUBTOTAL",
    "discountLabel": "DESC.",
    "serial": "Serial",
    "futureSale": "VENTA FUTURA",
    "printDate": "Impreso",
    "forDate": "Para",
    "daySun": "DOM",
    "dayMon": "LUN",
    "dayTue": "MAR",
    "dayWed": "MIE",
    "dayThu": "JUE",
    "dayFri": "VIE",
    "daySat": "SAB",
    "prizeInfo1": "1ro$56 2do$12 3ro$4 Pick2 $75",
    "prizeInfo2": "Palé $1000 Pick3$600 Win4$5000",
    "prizeInfo3": "Super palé$2000 Tripleta$10,000",
    "prizeInfo4": "x2 $100",
    "website": "QUICKMONEYNYC.COM",
    "statusOriginal": "ORIGINAL",
    "statusCopy": "COPIA",
    "statusCancelled": "CANCELADO",
    "statusPreview": "VISTA PREVIA",
    "copyNotice": "═══ ESTO ES UNA COPIA ═══",
    "cancelledNotice": "═══ TICKET CANCELADO ═══",
    "previewNotice": "═══ VISTA PREVIA - NO VÁLIDO ═══",
    "cancelTicket": "Cancelar Ticket",
    "confirmCancel": "¿Está seguro que desea cancelar el ticket",
    "errors": {
      "TICKET_NOT_FOUND": "Ticket no encontrado",
      "TICKET_ALREADY_CANCELLED": "El ticket ya está cancelado",
      "TICKET_ALREADY_PAID": "No se puede cancelar un ticket pagado",
      "CANCELLATION_TIME_EXPIRED": "El tiempo de cancelación ({minutes} minutos) ha expirado",
      "CANCEL_AMOUNT_EXCEEDED": "El monto del ticket ({ticketAmount}) excede el máximo permitido ({maxAmount})",
      "DAILY_CANCEL_LIMIT_REACHED": "El ticket no puede ser eliminado, ya alcanzó el límite de tickets eliminados del día ({cancelledToday}/{maxPerDay})",
      "MAX_TICKET_AMOUNT_EXCEEDED": "El monto del ticket ({ticketAmount}) excede el máximo permitido ({maxAmount})",
      "CREDIT_EXHAUSTED": "Se ha agotado su crédito disponible. Crédito restante: ${currentCredit}. Debe comunicarse con su corredor o administrador.",
      "CREDIT_INSUFFICIENT": "Este ticket excede su crédito disponible. Crédito restante: ${currentCredit}. Debe comunicarse con su corredor o administrador.",
      "DAILY_SALE_LIMIT_EXCEEDED": "Se ha sobrepasado el límite de venta diaria. Disponible: ${remaining}. Debe comunicarse con su corredor o administrador.",
      "USER_NOT_FOUND": "Usuario no encontrado"
    }
  },
  "monitor": {
    "title": "Monitor de tickets",
    "date": "Fecha",
    "filter": "Filtrar",
    "all": "TODOS",
    "winners": "GANADORES",
    "pending": "PENDIENTES",
    "losers": "PERDEDORES",
    "cancelled": "CANCELADO",
    "totalAmount": "Monto total",
    "totalPrizes": "Total de premios",
    "totalPendingPayment": "Total pendiente de pago",
    "printPending": "IMPRIMIR PENDIENTES DE PAGO",
    "quickFilter": "Filtro rápido",
    "number": "Número",
    "user": "Usuario",
    "prize": "Premio",
    "cancelDate": "Fecha de cancelación",
    "status": "Estado",
    "actions": "Acciones",
    "showing": "Mostrando",
    "entries": "entradas",
    "close": "CERRAR",
    "print": "Imprimir",
    "sendMessage": "Enviar mensaje",
    "ticketDetail": "Detalle del Ticket",
    "legend": "Leyenda",
    "cancelSuccess": "Ticket cancelado exitosamente"
  },
  "pendingPayments": {
    "title": "Pendientes de Pago",
    "totalPending": "Total pendiente",
    "totalAmount": "Total a pagar",
    "noPending": "No hay pagos pendientes",
    "markAsPaid": "Marcar como pagado",
    "paymentSuccess": "Pago marcado exitosamente",
    "paymentError": "Error al marcar pago"
  },
  "salesHistory": {
    "title": "Histórico de ventas",
    "startDate": "Fecha inicial",
    "endDate": "Fecha final",
    "viewSales": "Ver Ventas",
    "resetPointOfSale": "Volver a Punto de Venta",
    "total": "Total",
    "code": "Código",
    "ref": "Ref.",
    "tickets": "Tickets",
    "sales": "Venta",
    "commissions": "Comisiones",
    "prizes": "Premios",
    "net": "Neto",
    "paid": "Caída",
    "final": "Final",
    "totals": "Totales",
    "noData": "No hay datos de ventas para el período seleccionado",
    "showing": "Mostrando",
    "entries": "entradas"
  },
  "playsMonitor": {
    "title": "Monitoreo de jugadas",
    "date": "Fecha",
    "lottery": "Sorteos",
    "refresh": "Refrescar",
    "print": "Imprimir",
    "totalFor": "Total para sorteo",
    "play": "Jugada",
    "amount": "Monto",
    "total": "Total",
    "printedAt": "Impreso en",
    "noResults": "Sin resultados"
  },
  "authorizePunch": {
    "title": "Autorizar ponchado",
    "password": "Contraseña",
    "confirmation": "Confirmación",
    "authorize": "Autorizar"
  },
  "viewSales": {
    "title": "Ver Ventas",
    "viewSales": "Ver Ventas",
    "printReport": "Imprimir Reporte",
    "salesTab": "Ventas",
    "transactionsTab": "Transacciones",
    "salesSummary": "Resumen de Venta",
    "balanceToDate": "Balance del Día",
    "totalPendingTickets": "Total de Tickets Pendientes",
    "totalLoans": "Total en Préstamos",
    "store": "Tienda",
    "code": "Código",
    "pending": "Pendientes",
    "losers": "Perdedores",
    "winners": "Ganadores",
    "total": "Total",
    "sales": "Venta",
    "commissions": "Comisiones",
    "discounts": "Descuentos",
    "prizes": "Premios",
    "net": "Neto",
    "caida": "Caída",
    "final": "Final",
    "balance": "Balance",
    "caidaAcumulada": "Caída Acumulada",
    "totalsByDraw": "Totales por Sorteo",
    "draw": "Sorteo",
    "totalSales": "Total Venta",
    "winningTickets": "Tickets Ganadores",
    "winningNumbers": "Números Ganadores",
    "date": "Fecha",
    "ticketNumber": "Número de Ticket",
    "amountToPay": "Monto a Pagar",
    "paid": "Pagado",
    "details": "Detalles",
    "view": "Ver",
    "recentTransactions": "Transacciones Recientes (Últimos 12 Días)",
    "concept": "Concepto",
    "previous": "Anterior",
    "debit": "Débito",
    "credit": "Crédito",
    "salesResults": "Resultados de Ventas",
    "noData": "No hay datos disponibles",
    "loading": "Cargando...",
    "retry": "Reintentar",
    "notAvailableYet": "No disponible aún",
    "noTransactions": "No hay transacciones",
    "counterparty": "Contraparte",
    "amount": "Monto",
    "status": "Estado",
    "statusApproved": "Aprobado",
    "statusPending": "Pendiente",
    "lotShort": "LOT",
    "salesShort": "VENTA",
    "commissionsShort": "COMIS",
    "prizesShort": "PREMIO",
    "netShort": "NETO",
    "drawResults": "Resultado Sorteo",
    "drawForDate": "Sorteo para fecha",
    "printedOn": "Impreso",
    "type": "Tipo",
    "drawDetail": "Detalle del Sorteo"
  },
  "settings": {
    "title": "Configuraciones de la banca",
    "print": "Imprimir",
    "smsOnly": "Sólo SMS",
    "showCaida": "Mostrar Estadísticas de Caída",
    "printMode": "Modo de impresión",
    "language": "Idioma",
    "layout": "Diseño",
    "adminNotification": "Notificación de Administrador",
    "notificationDescription": "El mensaje se desplazará en la barra superior. Déjelo vacío para ocultar la notificación.",
    "notificationPlaceholder": "ej., LOTEKA está desactivada hoy debido al huracán Melissa categoría 5...",
    "testSection": "Prueba de Cierre de Loterias",
    "testDescription": "Simula diferentes estados del temporizador de cierre de loterias",
    "testNormal": "Normal",
    "testWarning": "Advertencia (8m)",
    "testClosing": "Cerrando (2m)",
    "testClosed": "Cerrado",
    "saveChanges": "GUARDAR CAMBIOS"
  },
  "layouts": {
    "title": "Elegir Diseño",
    "description": "Selecciona tu diseño de interfaz preferido",
    "classic": "Clásico",
    "classicDesc": "Diseño tradicional de terminal de lotería",
    "modern": "Moderno",
    "modernDesc": "Diseño de interfaz moderna",
    "preview": "Vista Previa",
    "select": "Seleccionar",
    "current": "Actual"
  },
  "lottery": {
    "searchPlaceholder": "Buscar loterías...",
    "selectLotteries": "Seleccionar loterías...",
    "selectLotteriesRange": "Seleccionar Loterías (0-4)",
    "removeLottery": "Quitar lotería",
    "limitExceed": "Limite excedido",
    "noLimit": "Sin Limite",
    "selectAll": "Seleccionar Todo",
    "deselectAll": "Deseleccionar Todo"
  },
  "statistics": {
    "title": "Estadísticas",
    "show": "Mostrar estadísticas",
    "hide": "Ocultar estadísticas",
    "credito": "Crédito",
    "venta": "Venta",
    "percentage": "%",
    "commission": "Comisión",
    "discount": "Descuento",
    "premio": "Premio",
    "neto": "Neto",
    "caida": "Caída",
    "final": "Final",
    "balance": "Balance",
    "caidaAcumulada": "Caída Acum."
  },
  "ventaFutura": {
    "title": "Venta Futura",
    "description": "Selecciona una o más fechas para crear tickets para días futuros. Puedes seleccionar hasta 7 días de antelación.",
    "notAllowed": "Esta banca no tiene habilitada la venta futura",
    "selectAll": "Seleccionar todo",
    "deselectAll": "Deseleccionar todo",
    "clearSelection": "Limpiar selección",
    "selected": "Seleccionado",
    "selectedCount": "{count} fechas seleccionadas",
    "ticketsInfo": "Se generarán {count} tickets (uno por fecha)",
    "noSelection": "No hay fechas futuras seleccionadas",
    "currentDaySale": "Los tickets se crearán para hoy",
    "apply": "Aplicar",
    "day1": "Mañana",
    "day2": "2 días",
    "day3": "3 días",
    "day4": "4 días",
    "day5": "5 días",
    "day6": "6 días",
    "day7": "7 días",
    "activeMode": "Venta futura activa",
    "day": "día",
    "days": "días",
    "indicator": "Se generará un ticket por cada fecha seleccionada al imprimir"
  },
  "results": {
    "loading": "Cargando resultados...",
    "noResults": "No hay resultados disponibles para esta fecha",
    "retry": "Reintentar",
    "error": "Error al cargar los resultados",
    "1era": "1era",
    "2da": "2da",
    "3era": "3era",
    "pick3": "Pick 3",
    "pick4": "Pick 4",
    "pick5": "Pick 5",
    "bolita": "Bolita",
    "singulaccion": "Singulaccion"
  },
  "phoneDirectory": {
    "title": "Directorio de Contactos",
    "createTab": "Crear",
    "listTab": "Lista",
    "contactName": "Nombre del contacto",
    "contactNamePlaceholder": "Ingrese nombre del contacto",
    "phone": "Teléfono",
    "telegramChatId": "Chat ID de Telegram (Opcional)",
    "telegramChatIdHint": "El usuario debe enviar /start a su bot primero para obtener su Chat ID",
    "saving": "GUARDANDO...",
    "update": "ACTUALIZAR",
    "create": "CREAR",
    "invalidPhone": "Por favor ingrese un número de teléfono válido de 10 dígitos",
    "confirmDelete": "¿Está seguro que desea eliminar este contacto?",
    "errorSaving": "Error al guardar contacto",
    "errorDeleting": "Error al eliminar contacto",
    "errorLoading": "Error al cargar contactos",
    "entriesPerPage": "Entradas por página",
    "quickFilter": "Filtro rápido",
    "loadingContacts": "Cargando contactos...",
    "retry": "Reintentar",
    "telegramId": "ID Telegram",
    "actions": "Acciones",
    "noEntries": "No hay entradas disponibles",
    "showing": "Mostrando",
    "to": "a",
    "of": "de",
    "entries": "entradas"
  },
  "contactSelector": {
    "selectContact": "Seleccionar Contacto",
    "searchPlaceholder": "Buscar por nombre o teléfono...",
    "loadingContacts": "Cargando contactos...",
    "noMatchingContacts": "Ningún contacto coincide con su búsqueda",
    "noContactsAvailable": "No hay contactos disponibles. Agregue contactos en el Directorio.",
    "sending": "ENVIANDO...",
    "sendVia": "ENVIAR POR {platform}"
  },
  "changePassword": {
    "title": "Cambiar contraseña de",
    "currentPassword": "Contraseña actual",
    "currentHint": "Ingrese su contraseña actual",
    "newPassword": "Nueva contraseña",
    "confirmPassword": "Confirmar contraseña",
    "hint": "Mínimo 6 caracteres, al menos una letra y un número",
    "confirmHint": "Repita la contraseña para confirmar",
    "mismatch": "Las contraseñas no coinciden",
    "submit": "Cambiar contraseña",
    "changing": "Cambiando...",
    "errorGeneric": "Error al cambiar la contraseña",
    "success": "Contraseña cambiada exitosamente"
  },
  "limits": {
    "blocked": "Límite alcanzado para {number} en {lottery} ({used}/{max})",
    "reservationError": "No se pudo verificar el límite, jugada añadida sin reserva",
    "blockedByGlobal": "Límite Global alcanzado",
    "blockedByZona": "Límite de Zona alcanzado",
    "blockedByBanca": "Límite de Banca alcanzado",
    "blockedByLocalBanca": "Límite Local de Banca alcanzado",
    "blockedByNoLimit": "No hay límites configurados para esta banca",
    "blockedByDailySaleLimit": "Límite de venta diaria alcanzado. Disponible: ${dailySaleRemaining}",
    "blockedByCreditLimit": "Crédito agotado. Crédito restante: ${creditRemaining}",
    "blockedByFutureSalesDisabled": "Esta lotería no permite ventas futuras",
    "playRemovedNoAvailability": "Jugada {number} ({lottery}) eliminada — sin disponibilidad",
    "playsRemovedNoAvailability": "{count} jugadas eliminadas por falta de disponibilidad: {list}",
    "scope": {
      "banca": "Límite de banca",
      "local-banca": "Límite local de banca",
      "zona": "Límite de zona",
      "global": "Límite global",
      "por-numero-banca": "Límite del número (banca)",
      "por-numero-zona": "Límite del número (zona)",
      "por-numero-global": "Límite del número (global)",
      "no-config": "Sin límites configurados"
    },
    "attempted": "Intentado",
    "available": "Disponible",
    "overBy": "Excede por",
    "currentUsed": "Usado",
    "limitAmount": "Límite"
  },
  "convertPlays": {
    "title": "Convertir jugadas",
    "amount": "Monto",
    "convertTo": "Convertir a",
    "directo": "Directo",
    "pale": "Palé",
    "tripleta": "Tripleta",
    "noPlays": "No hay jugadas para convertir",
    "numbersFound": "{count} números disponibles",
    "noLotterySelected": "Selecciona una lotería primero",
    "added": "{count} jugadas agregadas"
  },
  "randomGen": {
    "lottery": "Lotería",
    "playType": "Tipo de Jugada",
    "amount": "Monto",
    "quantity": "Cantidad",
    "generate": "Generar",
    "noPlayTypes": "Esta lotería no permite jugadas aleatorias",
    "generated": "{count} jugadas generadas",
    "errorInvalidAmountOrQuantity": "Ingresa monto y cantidad válidos",
    "errorNoLottery": "Selecciona una lotería",
    "errorNoPlayType": "Selecciona un tipo de jugada"
  },
  "ticketHistory": {
    "title": "Historial de Tickets",
    "searchPlaceholder": "Buscar por barcode, ID o hash...",
    "search": "Buscar",
    "filter": "Filtro",
    "filterAll": "Todos los tickets",
    "filterActive": "Activos",
    "filterPaid": "Pagados",
    "filterCancelled": "Cancelados",
    "export": "Exportar",
    "clearAll": "Limpiar Todo",
    "noTickets": "No se encontraron tickets",
    "barcode": "Barcode",
    "plays": "Jugadas",
    "total": "Total",
    "lottery": "Lotería",
    "pay": "Pagar",
    "cancel": "Cancelar",
    "duplicate": "Duplicar",
    "markAsPaid": "Marcar como pagado",
    "cancelTicket": "Cancelar ticket",
    "duplicateTicket": "Duplicar ticket",
    "totalTickets": "Total de tickets: {count}",
    "confirmCancel": "¿Está seguro que desea cancelar este ticket?",
    "markedAsPaid": "Ticket marcado como pagado",
    "ticketCancelled": "Ticket cancelado",
    "newTicketCreated": "Nuevo ticket creado: {id}",
    "ticketsExported": "Tickets exportados exitosamente",
    "allCleared": "Todos los tickets fueron eliminados"
  },
  "toast": {
    "ticketCancelled": "Ticket #{code} cancelado exitosamente",
    "noMessagingEnabled": "Ningún canal de mensajería habilitado",
    "sendingTelegram": "Enviando ticket {type} a {name} por Telegram...",
    "sentTelegram": "Enviado a {name} por Telegram",
    "errorTelegram": "Error enviando por Telegram",
    "sendingWhatsapp": "Enviando ticket {type} a {name} por WhatsApp...",
    "whatsappComingSoon": "Integración de WhatsApp próximamente",
    "errorSendingTicket": "Error enviando ticket: {message}",
    "noPlaysToPrint": "No hay jugadas. Agrega jugadas antes de imprimir un ticket.",
    "ticketDuplicated": "Ticket {barcode} duplicado exitosamente"
  },
  "apiErrors": {
    "NOT_FOUND": "Recurso no encontrado",
    "DUPLICATE_RESOURCE": "El recurso ya existe",
    "UNAUTHORIZED": "No autorizado",
    "FORBIDDEN": "Acción no permitida",
    "BAD_REQUEST": "Solicitud inválida",
    "CONFLICT": "Conflicto con el estado actual",
    "VALIDATION_FAILED": "Datos inválidos",
    "INTERNAL_ERROR": "Error interno del servidor",
    "DB_UNIQUE_CONSTRAINT": "Ya existe un registro con esos datos",
    "DB_FK_IN_USE": "No se puede eliminar: hay registros que lo usan",
    "DB_MISSING_REQUIRED": "Faltan campos requeridos",
    "DB_TIMEOUT": "La base de datos no respondió a tiempo",
    "DB_GENERIC": "Error de base de datos",
    "INVALID_CREDENTIALS": "Credenciales inválidas",
    "INVALID_PIN": "PIN inválido",
    "ACCOUNT_BLOCKED": "Cuenta bloqueada",
    "SESSION_EXPIRED": "La sesión ha expirado",
    "PASSWORD_CHANGE_REQUIRED": "Debe cambiar la contraseña",
    "PIN_CHANGE_REQUIRED": "Debe cambiar el PIN",
    "TOKEN_INVALID": "Token inválido",
    "USER_NOT_FOUND": "Usuario no encontrado",
    "USER_ALREADY_EXISTS": "El usuario ya existe",
    "PASSWORD_TOO_WEAK": "La contraseña es muy débil",
    "PASSWORD_MISMATCH": "Las contraseñas no coinciden",
    "PASSWORD_SAME_AS_OLD": "La nueva contraseña no puede ser igual a la anterior",
    "OLD_PASSWORD_INCORRECT": "La contraseña actual es incorrecta",
    "LANGUAGE_INVALID": "Idioma inválido",
    "PERMISSION_DENIED": "Permiso denegado",
    "BETTING_POOL_NOT_FOUND": "Banca no encontrada",
    "BETTING_POOL_CODE_EXISTS": "El código de banca ya existe",
    "BETTING_POOL_HAS_USERS": "La banca tiene usuarios asignados",
    "BETTING_POOL_DISABLED": "La banca está deshabilitada",
    "BANK_NOT_FOUND": "Banco no encontrado",
    "TICKET_NOT_FOUND": "Ticket no encontrado",
    "TICKET_ALREADY_PAID": "El ticket ya fue pagado",
    "TICKET_ALREADY_CANCELLED": "El ticket ya está cancelado",
    "TICKET_CANCEL_WINDOW_EXPIRED": "El tiempo de cancelación ha expirado",
    "TICKET_DATE_PAST_FORBIDDEN": "No se puede crear un ticket con fecha pasada",
    "TICKET_DATE_FUTURE_FORBIDDEN": "No se puede crear un ticket con fecha futura",
    "TICKET_INVALID_BETS_EXCEED_LIMITS": "Hay jugadas que exceden los límites configurados",
    "TICKET_HAS_NO_PRIZE": "El ticket no tiene premio",
    "MAX_TICKET_AMOUNT_EXCEEDED": "El monto del ticket ({ticketAmount}) excede el máximo permitido ({maxAmount})",
    "DAILY_SALE_LIMIT_EXCEEDED": "Se ha sobrepasado el límite de venta diaria. Disponible: ${remaining}. Debe comunicarse con su corredor o administrador.",
    "DAILY_CANCEL_LIMIT_REACHED": "El ticket no puede ser eliminado, ya alcanzó el límite de tickets eliminados del día ({cancelledToday}/{maxPerDay})",
    "CANCEL_AMOUNT_EXCEEDED": "El monto del ticket ({ticketAmount}) excede el máximo permitido ({maxAmount})",
    "CREDIT_EXHAUSTED": "Se ha agotado su crédito disponible. Crédito restante: ${currentCredit}. Debe comunicarse con su corredor o administrador.",
    "CREDIT_INSUFFICIENT": "Este ticket excede su crédito disponible. Crédito restante: ${currentCredit}. Debe comunicarse con su corredor o administrador.",
    "LIMIT_NOT_FOUND": "Límite no encontrado",
    "LIMIT_TYPE_INVALID": "Tipo de límite inválido",
    "LIMIT_GLOBAL_REQUIRED_FIRST": "Debe configurar primero el límite global",
    "LIMIT_ZONE_REQUIRED_FIRST": "Debe configurar primero el límite de zona",
    "LIMIT_PARENT_VIOLATION": "El límite excede al de su nivel superior",
    "LIMIT_BANCA_LOCAL_CONFLICT": "Conflicto entre límite de banca y local",
    "LOAN_NOT_FOUND": "Préstamo no encontrado",
    "LOAN_NOT_ACTIVE": "El préstamo no está activo",
    "LOAN_ONLY_ACTIVE_EDITABLE": "Solo los préstamos activos se pueden editar",
    "LOAN_ONLY_ACTIVE_CANCELLABLE": "Solo los préstamos activos se pueden cancelar",
    "DRAW_NOT_FOUND": "Sorteo no encontrado",
    "LOTTERY_NOT_FOUND": "Lotería no encontrada",
    "GAME_TYPE_NOT_FOUND": "Tipo de jugada no encontrado",
    "DRAW_CLOSED": "El sorteo está cerrado",
    "DRAW_ALREADY_HAS_RESULTS": "El sorteo ya tiene resultados",
    "RESULT_NOT_FOUND": "Resultado no encontrado",
    "TRANSACTION_NOT_FOUND": "Transacción no encontrada",
    "TRANSACTION_GROUP_NOT_FOUND": "Grupo de transacciones no encontrado",
    "TRANSACTION_LINE_INVALID": "Línea de transacción inválida",
    "TRANSACTION_AMOUNT_MISMATCH": "Los montos no cuadran",
    "TRANSACTION_APPROVE_PERMISSION_DENIED": "No tiene permiso para aprobar",
    "NOTIFICATION_NOT_FOUND": "Notificación no encontrada",
    "NOTIFICATION_MESSAGE_REQUIRED": "El mensaje es requerido",
    "NOTIFICATION_RECIPIENTS_REQUIRED": "Debe seleccionar al menos un destinatario"
  },
  "mobile": {
    "sell": "Vender",
    "salesSummary": "Resumen de ventas",
    "winningNumbers": "Números ganadores",
    "checkUpdate": "Buscar actualización",
    "printTicket": "Imprimir ticket",
    "sendWhatsApp": "Enviar por WhatsApp",
    "sendTelegram": "Enviar por Telegram",
    "dayTickets": "Tickets del día",
    "discount": "Descuento",
    "randomPlays": "Jugadas random",
    "selectLottery": "Seleccionar lotería",
    "lotteries": "Loterías",
    "closed": "CERRADA",
    "fieldPlay": "JUGAR",
    "fieldAmount": "MONTO",
    "enterPlay": "Ingresa una jugada",
    "selectLotteryFirst": "Selecciona una lotería",
    "invalidAmount": "Monto inválido",
    "invalidQty": "Cantidad inválida (1-100)",
    "splitNotCompound": "Monto X+Y no aplica a jugadas compuestas",
    "splitOnly": "Monto X+Y solo para Cash3, Play4 o Pick5",
    "noAvailResponse": "Sin respuesta de disponibilidad — intenta de nuevo",
    "noAvailFor": "Sin disponibilidad para {number}",
    "availableVs": "Disponible: ${available} (pediste ${requested})",
    "blockedIn": "Sin disponibilidad: {number} en {lot}",
    "removedNoAvail": "Eliminada {number} en {lot}: sin disponibilidad",
    "lotteryClosedName": "{name} está cerrada",
    "lotteryNotAvailable": "Lotería no disponible para {number}",
    "sourceNoPlays": "La lotería origen no tiene jugadas",
    "discountNotEnabled": "Descuento no habilitado para esta banca",
    "ticketNotFound": "Ticket no encontrado",
    "comingSoon": "próximamente",
    "sellTicket": "Vender ticket",
    "noPlays": "Sin jugadas",
    "noResults": "Sin resultados aún",
    "searchByCode": "Escanea o escribe el código de barras…",
    "loadPlays": "Cargar jugadas",
    "amountPerPlay": "Monto por jugada…",
    "from": "De:",
    "to": "A:",
    "pay": "Pagar",
    "payAnother": "Buscar otro",
    "copy": "Copia",
    "done": "Listo",
    "cancelTicketQ": "¿Cancelar el ticket {code}?",
    "yesCancel": "Sí, cancelar",
    "logoutQ": "¿Seguro que quieres salir?",
    "dupHint": "Las jugadas se agregan al ticket actual con su lotería original.",
    "login": "Iniciar sesión",
    "username": "Usuario",
    "password": "Contraseña",
    "enter": "Entrar",
    "rememberCreds": "Recordar usuario y contraseña",
    "printer": "Impresora",
    "internalPrinter": "Verifone",
    "paperSize": "Tamaño de papel",
    "testPrint": "Imprimir prueba",
    "sessionExpired": "Tu sesión expiró. Inicia sesión nuevamente.",
    "ticketCreated": "Ticket {code} creado ✓",
    "ticketsCreated": "{count} tickets creados ✓",
    "upToDate": "Estás al día (v{version})",
    "updateAvailable": "Actualización disponible",
    "updateVersion": "Nueva versión: {version}",
    "updateNow": "Actualizar",
    "downloadingUpdate": "Descargando actualización…",
    "updateFailed": "No se pudo buscar la actualización",
    "updatesTitle": "Actualizaciones",
    "autoUpdateOn": "Automática",
    "autoUpdateOff": "Manual",
    "autoUpdateHint": "En automático, la app busca actualizaciones al abrir y cada intervalo elegido. Si hay una nueva versión te pregunta antes de instalar — nunca instala sola."
  },
  "printAgent": {
    "title": "Impresión local (agente)",
    "connected": "Conectado",
    "notFound": "No detectado",
    "detect": "Detectar",
    "fallbackHint": "Sin el agente local, los tickets se imprimen con el diálogo del navegador. Instala el agente para imprimir directo a la impresora térmica.",
    "printer": "Impresora",
    "auto": "Automática",
    "paper": "Papel",
    "enabled": "Imprimir con el agente",
    "testPrint": "Prueba",
    "testing": "Imprimiendo…",
    "testOk": "Enviado a la impresora ✓"
  }
}
