{
  "brand": {
    "name": "N lotto"
  },
  "actions": {
    "retry": "Retry",
    "refresh": "Refresh",
    "apply": "Apply",
    "clear": "Clear",
    "cancel": "Cancel",
    "confirm": "Confirm",
    "close": "Close",
    "loading": "Loading...",
    "loadMore": "Load More",
    "previous": "Previous",
    "next": "Next",
    "done": "Done",
    "processing": "Processing...",
    "deleteRow": "Delete row {{row}}"
  },
  "nav": {
    "aria": "Main navigation",
    "home": "Home",
    "results": "Results",
    "orders": "My Bets",
    "rules": "Rules",
    "wallet": "Wallet",
    "credit": "Credit"
  },
  "notifications": {
    "title": "Pending reconciliation",
    "subtitle": "These transfers are not finalized yet. They do not mean funds have been credited or debited. Contact support if this stays unresolved.",
    "empty": "No pending reconciliation",
    "pendingBadge": "Pending",
    "amountLabel": "Amount:",
    "pendingTitle": {
      "transfer_in": "Transfer in — pending",
      "transfer_out": "Transfer out — pending"
    },
    "pendingDescription": {
      "transfer_in": "Main-site credit is not confirmed. Your lottery wallet balance may not have increased yet. Contact support if main site already debited you.",
      "transfer_out": "Main-site debit is not confirmed. Your lottery wallet balance may not have decreased yet. Check wallet logs or contact support."
    },
    "unread": "Unread",
    "read": "Read",
    "viewLogs": "View logs",
    "markRead": "Mark as read",
    "markAllRead": "Mark all read",
    "unreadCount_one": "{{count}} unread",
    "unreadCount_other": "{{count}} unread"
  },
  "panel": {
    "home": "Home"
  },
  "network": {
    "offline": "Network disconnected. Please check your connection.",
    "degraded": "Network is unstable. Switched to fallback mode (polling...).",
    "retryReconnect": "Try reconnecting",
    "retry": "Retry",
    "recoverWebsocket": "Try restoring WebSocket connection",
    "recover": "Recover",
    "reconnect": "Reconnect"
  },
  "token": {
    "critical": "Login will expire soon",
    "warning": "Login expiring soon",
    "remaining": "Remaining {{time}}",
    "autoRenewing": "Auto-renewing...",
    "renewNow": "Renew now"
  },
  "serverError": {
    "title": "Server error",
    "appTitle": "Application error",
    "unavailable": "Server temporarily unavailable",
    "serverMessage": "Server temporarily unavailable. Please try again later.",
    "appMessage": "Sorry, the application encountered a problem. Try refreshing the page.",
    "details": "Error details:",
    "errorId": "Error ID: {{id}}",
    "refreshPage": "Refresh page",
    "hall": "Betting hall",
    "wallet": "My wallet",
    "code": "Error code: 500 Internal Server Error",
    "home": "Back home"
  },
  "notFound": {
    "title": "Page not found",
    "description": "Sorry, the page you visited may have been deleted, moved, or never existed.",
    "home": "Back home",
    "hall": "Betting hall",
    "results": "Results",
    "wallet": "My wallet"
  },
  "player": {
    "fallback": "Player #{{id}}"
  },
  "draw": {
    "currentIssue": "Current issue",
    "currentTime": "Current Time",
    "scheduledStart": "Start time",
    "scheduledEnd": "End time",
    "scheduledClose": "Close time",
    "startsIn": "Starts in",
    "scheduleNow": "Current time {{now}} ({{tz}})",
    "closesIn": "Closes In",
    "drawsIn": "Draws In",
    "drawProcessing": "Drawing…",
    "coolDown": "Cool Down",
    "loadFailedRefresh": "Failed to load. Pull down to refresh.",
    "issueNo": "Issue No.",
    "hall": "Betting Hall",
    "noIssue": "No available issue. Please try again later.",
    "sealedNotice": "Closed. Please wait for the next issue.",
    "reviewNotice": "Draw results are pending admin review. The next issue opens after publish.",
    "notBettableNotice": "Betting is not available right now. Please try again later.",
    "status": {
      "pending": "Not started",
      "open": "Open",
      "closing": "Closed",
      "closed": "Awaiting draw",
      "drawing": "Drawing",
      "review": "Under review",
      "cooldown": "Cool down",
      "settling": "Settling",
      "settled": "Settled",
      "cancelled": "Cancelled"
    }
  },
  "hall": {
    "aria": "Betting table",
    "loadingError": "Failed to load play rules. Please try again later.",
    "noDraw": "No current issue. Cannot submit.",
    "notBettable": "This issue is closed or cannot accept bets.",
    "catalogNotReady": "Play configuration is still loading.",
    "emptyLines": "Please enter at least one valid number and stake amount.",
    "lineIssue": {
      "invalid_number_length": "Row {{row}} «{{play}}»: invalid number length. Check the number field.",
      "roll_requires_r": "Row {{row}} «{{play}}»: use 4 characters with at least one R (e.g. 12R4, RR34). R marks rolling digits.",
      "missing_digit_slot": "Row {{row}} «{{play}}»: missing digit slot. Refresh and try again."
    },
    "previewFailed": "Preview failed",
    "closedSubmit": "Closed. Cannot submit.",
    "changedBeforeSubmit": "Your draft changed before submission. Close the preview and try again.",
    "placeFailed": "Submission failed",
    "placeSuccess": "Bet submitted. Order {{orderNo}}, deducted {{amount}}.",
    "placePartialFailed": "{{success}} succeeded, {{failed}} failed",
    "placeAllFailed": "All {{failed}} lines failed",
    "playConfig": {
      "playClosedDraftCleared": "{{playCode}} is closed. Related draft amounts have been cleared.",
      "playClosed": "{{playCode}} is closed.",
      "updated": "Play configuration updated. The betting table has been refreshed.",
      "oddsUpdated": "Odds updated. Please preview the ticket again."
    },
    "jackpotBurst": {
      "title": "Jackpot Burst",
      "subtitle": "Issue {{drawNo}} triggered a pool payout",
      "number": "First prize number",
      "numberPending": "First prize numbers are not published for this issue yet",
      "amount": "Burst amount",
      "winners": "Winners",
      "triggerLabel": "Trigger",
      "close": "Close",
      "notificationTitle": "Jackpot Burst",
      "notificationBody": "Issue {{drawNo}} paid {{amount}}",
      "trigger": {
        "threshold": "Threshold reached",
        "forced_gap": "Forced gap reached",
        "play_combo": "Play combo matched",
        "manual": "Manual burst"
      }
    },
    "closed": {
      "title": "Closed",
      "subtitle": "This issue is now closed.",
      "description": "The betting window has closed. Please wait for the next issue to place your bets."
    },
    "jackpotPanel": {
      "disabledTitle": "Unavailable",
      "disabledSubtitle": "Jackpot is currently disabled.",
      "disabledDescription": "The admin has turned off Jackpot for now. This tab remains visible for information only.",
      "infoTitle": "Pool Information",
      "infoSubtitle": "Jackpot is currently enabled.",
      "infoDescription": "Jackpot is not a standalone play. Only successful tickets that meet the pool threshold and admin rules will join the pool automatically.",
      "closedInfoTitle": "Pool Information",
      "closedInfoSubtitle": "Jackpot is currently enabled.",
      "closedInfoDescription": "Jackpot uses automatic participation only for tickets that meet the pool threshold and admin rules. This issue is closed, so please wait for the next issue."
    },
    "jackpotParticipation": {
      "title": "Automatic Jackpot Participation",
      "previewDescription": "If this ticket is submitted successfully and its lines meet the pool threshold and configured rules, they will join the Jackpot pool automatically. No separate Jackpot bet is needed.",
      "resultDescription": "Among the successful ticket lines in this order, only those that meet the pool threshold and configured rules will join the Jackpot pool automatically. If a first-prize hit later triggers the pool, it will settle together with the normal payout."
    },
    "boxMode": {
      "iboxTitle": "iBox",
      "iboxDesc": "Divide all by amount",
      "boxTitle": "Box",
      "boxDesc": "Multiply all by amount"
    },
    "table": {
      "no": "No.",
      "number": "Number",
      "stake": "Stake Amount",
      "rebate": "Commission / Rebate",
      "actual": "Actual Deduction",
      "delete": "Delete",
      "addRow": "Add Row",
      "draftTotal": "Bet Amount",
      "totalBet": "Total",
      "totalRebate": "Rebate",
      "actualTotal": "Estimated Deduction",
      "sealedHint": "Closed: this table is locked. Please wait for the next issue.",
      "previewing": "Previewing...",
      "submitBet": "Submit Bet",
      "insufficientBalance": "Insufficient balance",
      "amountPlaceholder": "Amount",
      "digitShort": {
        "big": "B",
        "small": "S"
      },
      "filledPlayCount": "{{count}} plays filled",
      "tapToFill": "Tap to enter amounts",
      "rowActual": "Actual",
      "editRow": "Edit row {{row}}",
      "scrollHint": "This table is wide: swipe or scroll horizontally, then enter your stake in each play column on the right (e.g. Big/Small, position plays).",
      "noPlaysInCategory": "No open play types in this tab, so there are no amount fields. Try 2D / 3D / 4D, or ask an admin to enable plays for this category.",
      "soldOut": "Sold out",
      "warning": "Almost sold out"
    },
    "quickFill": {
      "title": "Quick fill",
      "description": "Fill the current row with favorite or recent numbers in one tap.",
      "clearAll": "Clear all",
      "favorite": "Favorite number",
      "unfavorite": "Remove favorite",
      "favorites": "Favorites",
      "tapHold": "Hold to remove",
      "emptyFavorites": "No favorites yet",
      "history": "Recent 20 numbers",
      "emptyHistory": "No recent numbers"
    },
    "preview": {
      "title": "Confirm bet",
      "description": "Check the number, play type, and actual deduction. After confirmation, the lottery wallet will be debited and the ticket cannot be cancelled.",
      "sealedTitle": "Closed",
      "sealedDescription": "This issue has stopped accepting tickets. Please choose the next issue.",
      "empty": "No preview data",
      "draw": "Issue",
      "status": "Status",
      "amount": "Amount",
      "rebate": "Rebate",
      "total": "Total",
      "totalBet": "Total stake",
      "rebateDeduct": "Rebate deduction",
      "actualDeduct": "Actual deduction",
      "estimatedPayout": "Estimated max payout",
      "lines": "Ticket lines",
      "normalizedNumber": "Normalized number",
      "combinationCount": "Combinations",
      "actual": "Actual",
      "estimatedMax": "Estimated max",
      "backEdit": "Back to edit",
      "submitting": "Submitting...",
      "confirmSubmit": "Confirm submit",
      "processingTitle": "Submitting your bets",
      "processingDescription": "Please do not close the page or go back.",
      "processingProgress": "Processing tickets...",
      "noWarnings": "No obvious risk was found in this preview.",
      "warningsTitle": "Payout pool warning",
      "warningsDescription": "The following numbers have high payout pool usage for this issue. Betting is still allowed, but the order may be rejected as sold out if capacity is insufficient."
    },
    "result": {
      "title": "Bet placed",
      "titlePartial": "Partially placed",
      "titleAllFailed": "Bet not placed",
      "titleRefunded": "Order refunded",
      "titlePendingConfirm": "Pending confirmation",
      "refundedHint": "This order was already refunded. Close and preview again to place a new bet.",
      "pendingConfirmHint": "Your bet was submitted. Wallet deduction is being confirmed — check My Bets shortly.",
      "pendingConfirmLines": "{{count}} line(s) pending wallet confirmation",
      "draw": "Issue",
      "empty": "No result yet.",
      "successCount": "Successful lines",
      "failureCount": "Failed lines",
      "actual": "Actual deduction",
      "orderNo": "Order No.",
      "balanceAfter": "Remaining balance",
      "items": "Successful line details",
      "number": "Number",
      "actualDeduct": "Deducted",
      "noFailures": "No ticket lines failed in this submission.",
      "failedItems": "Failed line details",
      "failed": "Failed",
      "viewBets": "View tickets",
      "continueBetting": "Continue betting"
    },
    "amountInput": {
      "limit": "Limit {{min}} - {{max}}",
      "placeholder": "e.g. 100.00"
    },
    "numberInput": {
      "rollPlaceholder": "e.g. 12R4",
      "digitPlaceholder": "0-9"
    },
    "playSwitcher": {
      "empty": "No open play types are available for this currency.",
      "label": "Play"
    },
    "playCatalog": {
      "notReady": "Play configuration has not been initialized. Run the seed that includes OperationalConfigV1Seeder in Laravel.",
      "loadFailed": "Failed to load play configuration. Please try again later.",
      "loading": "Loading plays and odds...",
      "meta": "Currency {{currency}} · Config versions play#{{playVersion}} / odds#{{oddsVersion}} · Limits use the smallest currency unit, same as wallet.",
      "play": "Play",
      "status": "Status",
      "limit": "Bet limit",
      "odds": "Odds x",
      "description": "Description",
      "open": "Open",
      "closed": "Closed",
      "riskTitle": "Risk cap (sample numbers)",
      "number": "Number",
      "capAmount": "Cap amount",
      "type": "Type",
      "title": "Plays and Odds",
      "descriptionText": "Data comes from GET /api/v1/play/effective. After admin changes are published, it refreshes automatically within about {{seconds}}s, or manually.",
      "refresh": "Refresh config"
    },
    "ticketError": {
      "4001": "This number has insufficient payout pool capacity for this issue and is sold out. Change the number, amount, or play type and try again.",
      "1001": "Insufficient balance. Transfer in before betting.",
      "2001": "This issue is closed. Betting is no longer available.",
      "2002": "This play type is closed. Choose another play type.",
      "2004": "The number format or length does not match this play type.",
      "2005": "Play parameters are incomplete, such as digit slot or dimension.",
      "2006": "This issue cannot accept bets.",
      "2007": "This play type is unsupported or missing odds configuration.",
      "2008": "Odds or play configuration has changed. Close the preview and try again.",
      "2009": "This order was refunded or cannot be resubmitted. Close the preview and place a new bet.",
      "1003": "Stake amount is outside the allowed range for this play type.",
      "fallback": "Bet failed. Please try again later."
    },
    "amountHint": {
      "iboxRoll": "This play uses a per-bet amount. The system calculates total stake and deduction after expanding combinations.",
      "mbox": "This play uses a total input amount. It is split across permutations, rounded down to the smallest currency unit.",
      "default": "Amount is the stake for this ticket line, using the smallest currency unit just like wallet."
    }
  },
  "wallet": {
    "title": "Wallet",
    "subtitle": "Balance and transfer records",
    "creditTitle": "Credit",
    "creditSubtitle": "Credit usage and billing-period activity",
    "balance": "Wallet Balance",
    "creditAvailable": "Available credit",
    "creditSummary": "Limit {{limit}} · Used {{used}}",
    "creditNoTransferHint": "Credit accounts are funded by your agent; no main-site transfers. Wins are not paid out instantly—profit and loss are settled in billing periods. Contact your agent to change your limit.",
    "available": "Available {{amount}}",
    "transferIn": "Transfer In",
    "transferOut": "Transfer Out",
    "inPage": "In Page",
    "outPage": "Out Page",
    "logs": "Logs",
    "logsTitle": "Wallet Logs",
    "logsSubtitle": "Transfer and betting records",
    "creditLogsTitle": "Credit activity",
    "creditLogsSubtitle": "Holds, releases, and billing-period payments",
    "typeFilter": "Type Filter",
    "transferInTitle": "Transfer In",
    "transferOutTitle": "Transfer Out",
    "transferInSubtitle": "Add funds to lottery wallet ({{currency}})",
    "transferOutSubtitle": "Move available balance back ({{currency}})",
    "transferInDescription": "Move funds from the main-site wallet into the lottery wallet. Per-transaction limits are validated by the server.",
    "transferOutDescription": "Move funds back to the main-site wallet. Per-transaction limits are validated by the server.",
    "dialogInDescription": "Move funds from the main-site wallet into the lottery wallet. The minimum amount is validated by the server, usually about 1.00 {{currency}}.",
    "dialogOutDescription": "Move funds back to the main-site wallet. Per-transaction limits are validated by the server.",
    "mainBalance": "Main-site wallet balance:",
    "mainPending": "— (main site integration pending)",
    "lotteryBalance": "Lottery wallet balance:",
    "lotteryAvailable": "Lottery wallet available:",
    "inAmount": "Transfer-in amount",
    "outAmount": "Transfer-out amount",
    "exampleIn": "e.g. 1000.00",
    "exampleOut": "e.g. 500.00",
    "afterInPreview": "Lottery balance after transfer-in (preview): {{amount}}",
    "afterOutPreview": "Lottery balance after transfer-out (preview): {{amount}}",
    "allOut": "Transfer all {{amount}}",
    "confirmIn": "Confirm transfer in",
    "confirmOut": "Confirm transfer out",
    "successIn": "Transfer in succeeded. Lottery wallet balance updated.",
    "successOut": "Transfer out succeeded. Funds will return to the main-site wallet.",
    "pendingShort": "Transfer is processing. Refresh later.",
    "pendingToast": "Processing...",
    "invalidAmount": "Enter a valid amount.",
    "outExceeds": "Transfer-out amount cannot exceed available balance.",
    "pendingTitle": "Pending reconciliation",
    "pendingDescription": "The following transfers have not been finally confirmed by the main site. Contact support if they do not arrive after a long time.",
    "pendingStatus": "Processing",
    "flowsTitle": "Wallet logs",
    "creditFlowsTitle": "Credit activity",
    "playerChannel": {
      "credit": "Credit line: credit holds, releases, and billing payments (not wallet payouts)",
      "wallet": "Main-site wallet player (transfers & wallet ledger)"
    },
    "creditAvailableAfter": "Available credit after",
    "creditPaymentRecordOnly": "Billing payment record only; not counted in available credit",
    "totalRecords": "{{total}} records",
    "emptyLogs": "No wallet logs",
    "emptyCreditLogs": "No credit activity",
    "noMoreLogs": "No more transactions",
    "balanceAfter": "Balance after",
    "wsBalanceUpdated": "Balance {{change}} ({{reason}})",
    "wsReason": {
      "transferIn": "Transfer in",
      "transferOut": "Transfer out",
      "bet": "Bet",
      "prize": "Prize",
      "refund": "Refund",
      "unknown": "Update"
    },
    "flow": {
      "all": "All",
      "transfer_in": "Transfer in",
      "transfer_out": "Transfer out",
      "bet": "Bet deduction",
      "prize": "Payout",
      "refund": "Refund",
      "reversal": "Reversal"
    },
    "creditFlow": {
      "all": "All",
      "bet": "Credit hold",
      "credit_release": "Credit release",
      "bill_settlement": "Period payment",
      "win_credit": "Win release",
      "refund": "Period confirm release",
      "reversal": "Refund release"
    },
    "txnStatus": {
      "posted": "Success",
      "pending_reconcile": "Pending reconciliation",
      "reversed": "Reversed",
      "manually_processed": "Case closed"
    },
    "error": {
      "401": "Login expired. Please return and enter again.",
      "409": "Transfer is processing. Refresh later. Contact support if it does not arrive after a long time.",
      "network": "Network error. Check your connection and try again.",
      "timeout": "Request timed out. Please try again later.",
      "fallback": "Request failed. Please try again later.",
      "1001": "Lottery wallet balance is insufficient. Transfer in or reduce the transfer-out amount.",
      "1002": "Transfer is processing. Refresh the balance here later. Contact support if it does not arrive after a long time.",
      "1003": "Amount exceeds the per-transaction or daily limit. Adjust the amount.",
      "1004": "Transfer in is temporarily paused. Try again later or contact support.",
      "1005": "Currency is invalid or unavailable.",
      "1006": "Transfer out is temporarily paused. Try again later or contact support.",
      "1007": "Lottery wallet is frozen and cannot transfer funds.",
      "1008": "Amount format is invalid.",
      "1009": "The main site could not complete this transfer. Please try again later.",
      "1010": "Do not use the same idempotency key for transfers with different amounts."
    }
  },
  "orders": {
    "title": "My Bets",
    "subtitle": "Recent ticket records",
    "betDetail": "Bet Detail",
    "filteredIssue": "Filtered Issue",
    "totalRecords": "Total Records",
    "betNow": "Bet Now",
    "empty": "No bet records yet.",
    "dateRange": "Date range",
    "dateRangeHint": "Filters order time by schedule day ({{tz}})",
    "scheduleToday": "Schedule today",
    "partialFailedHint": "Some lines in this order did not succeed — check each line",
    "partialFailedOrderTitle": "Partially failed order",
    "partialFailedOrderBody": "Some lines in this order succeeded and some did not. This page shows this line only.",
    "lineFailedTitle": "This line did not succeed",
    "status": "Status",
    "statusFilter": "Status filter",
    "noMore": "No more tickets",
    "submitBet": "Submit Bet",
    "stake": "Stake",
    "deduction": "Deduction",
    "win": "Win {{amount}}",
    "detailTitle": "Ticket detail",
    "ticketNo": "Ticket {{ticketNo}}",
    "orderNo": "Order {{orderNo}}",
    "orderNoLabel": "Order No.",
    "orderNoAt": "Order No. {{orderNo}} · {{time}}",
    "noOrderNo": "—",
    "groupDetail": "Order detail",
    "groupNotFound": "Could not load this order. Please open it again from My Bets.",
    "betItems": "Bet lines",
    "itemCount": "{{count}} bet line(s)",
    "viewBetLine": "View bet line detail",
    "drawNo": "Issue",
    "placedAt": "Placed at",
    "number": "Number",
    "play": "Play",
    "amount": "Stake amount",
    "rebateRate": "Rebate rate",
    "actualDeduct": "Actual deduction",
    "oddsSnapshot": "Odds snapshot",
    "drawNumbers": "Draw numbers (this issue)",
    "firstPrize": "First prize",
    "hit": "Hit",
    "notPublished": "Draw numbers are not published or cannot be displayed yet.",
    "matchWin": "Match result: hit {{tier}}",
    "winAmount": "Win amount {{amount}}",
    "jackpotAmount": "Jackpot {{amount}}",
    "payoutTotal": "Payout total {{amount}}",
    "creditWinTotal": "Win total {{amount}}",
    "matchLose": "Match result: not won",
    "matchResult": "Match result",
    "drawPendingMatch": "Draw numbers are not published yet. Winning status cannot be determined.",
    "matchPendingDraw": "Waiting for draw results. Winning status cannot be determined yet.",
    "matchPendingSettlement": "Draw results are published. Winning status will show after settlement.",
    "timeline": "Timeline",
    "settledAt": "Settled at {{time}}",
    "viewDraw": "View this draw",
    "backToOrders": "Back to My Bets",
    "backToGroup": "Back to order detail",
    "notFound": "Ticket does not exist or cannot be viewed.",
    "noData": "No data",
    "loadFailed": "Failed to load"
  },
  "results": {
    "title": "Results",
    "subtitle": "Latest draw history",
    "detailTitle": "Result Detail",
    "businessDate": "Business Date",
    "selectBusinessDate": "Select date",
    "empty": "No results yet.",
    "detail": "Detail",
    "openDetail": "Open detail",
    "loadFailed": "Failed to load",
    "unavailable": "This result is unavailable or does not exist.",
    "noData": "No data",
    "previous": "‹ Previous",
    "next": "Next ›",
    "drawTime": "Draw time: {{time}}",
    "myPayout": "My payout for this issue",
    "creditMyWin": "My wins for this issue",
    "regular": "Regular: {{amount}}",
    "jackpot": "Jackpot: {{amount}}",
    "hitPending": "Your ticket has hit a result cell in this issue. The amount summary will show after payout is completed.",
    "creditHitPending": "Your ticket matched this issue. Amounts will show after settlement; profit and loss are handled in billing periods.",
    "hitHint": "If you win, numbers matched by your tickets are highlighted in gold.",
    "viewMyWinning": "View my winning status",
    "jackpotLabel": "Jackpot",
    "jackpotGap": "{{count}} draws since last burst",
    "noMore": "No more results",
    "check": {
      "title": "Check My Winnings",
      "loadFailed": "Query failed. Please try again later.",
      "enterTicket": "Enter your ticket number or number",
      "description": "The system checks your tickets and winnings against the latest published draw.",
      "ticketNumber": "Ticket No. / Number",
      "placeholder": "Enter ticket number or number",
      "latestDraw": "Latest issue {{drawNo}}",
      "loading": "Checking...",
      "submit": "Check now",
      "recent": "Recent checks",
      "noRecent": "No recent checks.",
      "winTitle": "Congratulations, you won",
      "noWinTitle": "No winning result found",
      "match": "Match",
      "amount": "Winning amount",
      "drawInfo": "Draw info",
      "issueNo": "Issue No.",
      "viewBetDetails": "View bet details",
      "checkAnother": "Check another ticket"
    },
    "tier": {
      "first": "First prize",
      "second": "Second prize",
      "third": "Third prize",
      "starter": "Starter",
      "consolation": "Consolation"
    },
    "grid": {
      "first": "First prize",
      "second": "Second prize",
      "third": "Third prize",
      "starter": "Starter",
      "consolation": "Consolation"
    }
  },
  "rules": {
    "title": "Play Rules",
    "subtitle": "2D / 3D / 4D, box plays, rebate, closing and sold-out rules",
    "quick": {
      "title": "Prize Structure",
      "description": "Each draw publishes 23 four-digit numbers. Settlement uses the odds snapshot locked when the bet was placed.",
      "totalPrizes": "Prize groups",
      "cooldown": "Cooldown mins",
      "snapshot": "Odds snapshot"
    },
    "prizes": {
      "first": "First prize",
      "second": "Second prize",
      "third": "Third prize",
      "starter": "Starter",
      "consolation": "Consolation"
    },
    "sections": {
      "dimensions": {
        "title": "What are 2D, 3D and 4D",
        "d4": "4D: match the full four-digit number, for example 1234.",
        "d3": "3D: match your last three digits against the result's last three digits, for example 234 can hit 1234.",
        "d2": "2D: match your last two digits against the result's last two digits, for example 34 can hit 1234."
      },
      "bigSmall": {
        "title": "Big vs Small",
        "big": "Big: covers all 23 prizes. Any hit in first, second, third, starter or consolation wins.",
        "small": "Small: only covers first, second and third prizes. Starter or consolation hits do not win."
      },
      "positions": {
        "title": "Position Plays",
        "d4": "4A / 4B / 4C map to first, second and third prize. 4D hits any starter row. 4E hits any consolation row.",
        "d3": "3A / 3B / 3C match the last three digits of first, second and third prize. 3ABC hits any of those three.",
        "d2": "2A / 2B / 2C match the last two digits of first, second and third prize. 2ABC hits any of those three."
      },
      "box": {
        "title": "Box Plays",
        "straight": "Straight: only the exact same order wins.",
        "box": "Box: expands unique permutations and settles the winning expanded number.",
        "ibox": "iBox: every permutation is staked by the unit amount. Total deduction = unit amount × combinations × (1 - rebate rate).",
        "mbox": "mBox: input amount is shared across combinations. Any indivisible remainder is not deducted and is treated as returned to wallet.",
        "roll": "Roll: R marks a rolling digit covering 0-9. Combination count = 10 to the power of R count.",
        "half": "Half Box: reserved for phase one data structure only and not open on the player side."
      },
      "attributes": {
        "title": "Head / Tail, Odd / Even and Digit Size",
        "headTail": "Head / Tail only checks the first digit of the first prize. 5-9 is Head, 0-4 is Tail.",
        "oddEven": "Odd / Even checks the last digit. 1/3/5/7/9 is odd and 0/2/4/6/8 is even. It can be combined with 2D / 3D / 4D dimensions.",
        "digitSize": "Big Digit / Small Digit checks a selected digit. 5-9 is big and 0-4 is small. Multiple selected digits settle independently."
      },
      "wallet": {
        "title": "Jackpot, Rebate, Closing and Sold Out",
        "rebate": "Rebate / commission is locked into the ticket odds snapshot and is not changed by later configuration updates.",
        "jackpot": "Jackpot depends on backend pool configuration. Burst, contribution and payout follow system records.",
        "close": "Closing: after close time, the hall cannot edit or submit bets.",
        "soldOut": "Sold out: when payout pool capacity is insufficient, preview may warn and final submission can reject the whole order."
      }
    },
    "footer": {
      "config": "Hall play columns, enabled state, limits and odds come from the active backend play configuration.",
      "phaseTwo": "5D / 6D are phase-two extensions and have no available entry in phase one.",
      "backBet": "Back to betting hall"
    }
  },
  "ticketStatus": {
    "success": "Awaiting draw",
    "placed": "Awaiting draw",
    "pending_confirm": "Confirming",
    "partial_pending_confirm": "Partially confirming",
    "pending_draw": "Awaiting draw",
    "partial_failed": "Partially failed",
    "pending_payout": "Won, pending payout",
    "settled_win": "Paid",
    "credit": {
      "pending_payout": "Won, pending settlement",
      "settled_win": "Won"
    },
    "settled_lose": "Not won",
    "failed": "Failed",
    "refunded": "Refunded",
    "unknown": "{{status}}"
  },
  "prizeTier": {
    "first": "First prize",
    "second": "Second prize",
    "third": "Third prize",
    "starter": "Starter",
    "consolation": "Consolation"
  },
  "playLabels": {
    "big": "Big",
    "small": "Small",
    "pos_4a": "4A",
    "pos_4b": "4B",
    "pos_4c": "4C",
    "pos_4d": "4D",
    "pos_4e": "4E",
    "pos_3a": "3A",
    "pos_3b": "3B",
    "pos_3c": "3C",
    "pos_3abc": "3ABC",
    "pos_2a": "2A",
    "pos_2b": "2B",
    "pos_2c": "2C",
    "pos_2abc": "2ABC",
    "straight": "Straight",
    "box": "Box",
    "ibox": "iBox",
    "mbox": "mBox",
    "roll": "Roll",
    "half_box": "Half Box",
    "head": "Head",
    "tail": "Tail",
    "odd": "Odd",
    "even": "Even",
    "digit_big": "Big Digit",
    "digit_small": "Small Digit"
  }
}
