Some checks failed
lotteryadmin CI / build (push) Has been cancelled
- 新增多语言支持,补充回水分摊相关字段翻译 - 优化回水分摊数据汇总逻辑,合并相同参与方的数据 - 增加分摊占比显示,提升明细信息直观性 - 实现按注单分组的回水明细展开与收起功能 - 使用表格展示汇总数据,提升界面可读性和美观度 - 调整样式和交互细节,增强用户体验
444 lines
17 KiB
JSON
444 lines
17 KiB
JSON
{
|
||
"title": "Settlement center",
|
||
"subtitle": "Period close, bill confirm, and payments",
|
||
"pageGuide": "Credit-line agent periods: site finance opens/closes; bound agents view own bills and record payments as payee only.",
|
||
"subtitleList": "Period list: open/close periods; summary columns included — use row actions for bills and bet ledger.",
|
||
"period": {
|
||
"title": "Period",
|
||
"statusCompleted": "Completed",
|
||
"pipelineShare": "{{count}} ledger entries",
|
||
"billTodo": "Pending {{p}} · Awaiting {{a}}",
|
||
"openTitle": "Open period",
|
||
"openBtn": "Open period",
|
||
"closeNeedLedger": "No ledger activity yet. Complete draw settlement first.",
|
||
"closeDialogTitle": "Close period",
|
||
"closeDialogDesc": "Summarize {{range}} and generate bills.",
|
||
"closeDialogShare": "{{count}} ledger entries",
|
||
"closeDialogUnsettled": "{{count}} tickets still unsettled",
|
||
"closeDialogIrreversible": "Cannot undo. Use adjustments or reversals to fix errors.",
|
||
"closeDialogConfirm": "Close period",
|
||
"closeDialogEmpty": "No share ledger this period; closing will not generate bills."
|
||
},
|
||
"periodDetail": {
|
||
"back": "Back to periods",
|
||
"notFound": "Period not found or site changed. Go back to the list."
|
||
},
|
||
"periodTable": {
|
||
"title": "Periods",
|
||
"statusFilter": "Status",
|
||
"range": "Period",
|
||
"ledgerCount": "Ledger",
|
||
"pending": "Pending",
|
||
"awaiting": "Awaiting",
|
||
"shareLedger": "Share ledger",
|
||
"gameWinLoss": "Win/loss total",
|
||
"platformWinLoss": "Platform win/loss",
|
||
"agentWinLoss": "Agent win/loss",
|
||
"basicRebate": "Rebate total",
|
||
"unsettledTickets": "Unsettled tickets",
|
||
"openReportHint": "Open period: share/win-loss from in-period ledger; bill count updates after close.",
|
||
"viewDetail": "View details",
|
||
"processBills": "Process bills",
|
||
"close": "Close",
|
||
"closeNow": "Close now",
|
||
"hasOpen": "Period {{range}} is open. Close it before opening a new one.",
|
||
"emptyOpenHint": "No periods yet. Click Open period in the toolbar.",
|
||
"emptyReadOnly": "No period records.",
|
||
"emptyFiltered": "No rows match the filter. Reset filters.",
|
||
"emptyFilteredOpen": "The open period is hidden by the filter. Choose All or Open.",
|
||
"readOnlyHint": "Bound agent accounts cannot open or close site periods."
|
||
},
|
||
"header": {
|
||
"subtitle": "Credit-line settlement",
|
||
"statusRunning": "Period open",
|
||
"statusIdle": "No open period",
|
||
"statusCompleted": "Period completed"
|
||
},
|
||
"subnav": {
|
||
"label": "Settlement center navigation"
|
||
},
|
||
"workbench": {
|
||
"viewPeriod": "Period",
|
||
"closePreset": "Close · {{label}}",
|
||
"closeNoData": "Close failed: no share ledger in period. Run credit game settlement first.",
|
||
"openPeriodPipeline": "Open {{range}} · {{share}} share entries"
|
||
},
|
||
"nav": {
|
||
"periods": "Periods",
|
||
"pendingWorkbench": "To do",
|
||
"allBills": "All bills",
|
||
"bills": "Bills",
|
||
"operations": "Payments & adjustments",
|
||
"aria": "Period views",
|
||
"ledger": "Account ledger",
|
||
"ledgerAudit": "Ledger audit",
|
||
"creditLedger": "Credit ledger",
|
||
"playerBills": "Player bills",
|
||
"agentBills": "Agent bills",
|
||
"pendingConfirm": "Pending confirm",
|
||
"awaitingPayment": "Awaiting payment",
|
||
"payments": "Payment log",
|
||
"adjustments": "Adjust / reverse",
|
||
"badDebt": "Bad debt",
|
||
"reports": "Period reports"
|
||
},
|
||
"operations": {
|
||
"hint": "Payment registration, bad-debt write-offs, and adjustments. Player credit movements are under Account ledger.",
|
||
"adjustmentsTitle": "Adjustments / reversals / bad debt",
|
||
"loadFailed": "Failed to load payment and adjustment records",
|
||
"operationType": "Operation type",
|
||
"filterAllTypes": "All types",
|
||
"typePayment": "Payment",
|
||
"keyword": "Keyword",
|
||
"keywordPh": "Method, reason, proof, payer/payee"
|
||
},
|
||
"filters": {
|
||
"period": "Period",
|
||
"statusAll": "All",
|
||
"allPeriods": "All periods",
|
||
"statusOpen": "Open",
|
||
"statusClosed": "Closed",
|
||
"statusCompleted": "Completed"
|
||
},
|
||
"overview": {
|
||
"pendingConfirm": "Pending confirm",
|
||
"awaitingPayment": "Awaiting payment",
|
||
"totalUnpaid": "Total unpaid",
|
||
"openPeriod": "Open period",
|
||
"creditLedger": "Credit ledger (in period)",
|
||
"shareLedger": "Share ledger (in period)",
|
||
"pipelineHint": "Bills are created after period close; counts below are in-period activity."
|
||
},
|
||
"ledger": {
|
||
"groupIntro": "In-period money movements: credit holds, bill payments, adjustments, and bad debt. Share bills after close are under Bills.",
|
||
"paymentsIntro": "Confirmed bill payments (payment_records). Register from bill detail; this page is the period-wide log.",
|
||
"adjustmentsIntro": "Bill adjustments and reversals (settlement_adjustments).",
|
||
"badDebtIntro": "Bad debt write-off entries linked to original bills."
|
||
},
|
||
"creditLedger": {
|
||
"periodIntro": "Credit-line bets in this period: bet hold and draw settlement (merged per ticket).",
|
||
"emptyPeriod": "No bet ledger entries in this period. Ensure credit players placed bets and draws were settled.",
|
||
"intro": "Ledger entries for the selected period.",
|
||
"columns": {
|
||
"txn": "Txn ID",
|
||
"player": "Player",
|
||
"reason": "Type",
|
||
"ref": "Reference",
|
||
"amount": "Amount",
|
||
"channel": "Channel",
|
||
"status": "Status",
|
||
"time": "Time"
|
||
},
|
||
"channelCredit": "Credit line",
|
||
"viewPlayer": "Player detail",
|
||
"entryKind": {
|
||
"adjustment": "Adjustment"
|
||
},
|
||
"status": {
|
||
"posted": "Posted"
|
||
},
|
||
"actions": {
|
||
"viewPlayer": "Player detail",
|
||
"viewBill": "Bill detail",
|
||
"confirm": "Confirm bill",
|
||
"confirmDesc": "After confirm, the bill moves to awaiting payment.",
|
||
"payment": "Record payment",
|
||
"adjustment": "Adjust",
|
||
"reversal": "Reverse",
|
||
"badDebt": "Bad debt"
|
||
},
|
||
"reason": {
|
||
"payment_record": "Bill payment",
|
||
"bet": "Bet hold",
|
||
"bet_hold": "Bet hold",
|
||
"game_settlement": "Draw settlement",
|
||
"bill_settlement": "Period payment",
|
||
"game_settlement_reversal": "Draw reversal",
|
||
"game_settlement_win": "Draw settlement credit",
|
||
"bet_hold_release": "Hold release",
|
||
"game_settlement_loss": "Draw settlement debit",
|
||
"settlement_payout": "Settlement payout",
|
||
"settlement_confirm": "Period confirm",
|
||
"adjustment": "Adjustment",
|
||
"reversal": "Reversal",
|
||
"bad_debt": "Bad debt",
|
||
"share_ledger": "Share ledger",
|
||
"freezeAmount": "Hold {{amount}}"
|
||
}
|
||
},
|
||
"columns": {
|
||
"period": "Period",
|
||
"type": "Type",
|
||
"owner": "Owner",
|
||
"counterparty": "Counterparty",
|
||
"gross": "Win/loss",
|
||
"net": "Net",
|
||
"paid": "Paid",
|
||
"unpaid": "Unpaid",
|
||
"status": "Status",
|
||
"billId": "Bill ID",
|
||
"payer": "Payer",
|
||
"payee": "Payee",
|
||
"amount": "Amount",
|
||
"method": "Method",
|
||
"time": "Time",
|
||
"summary": "Summary",
|
||
"detail": "Detail",
|
||
"adjustmentType": "Type",
|
||
"originalBill": "Original bill",
|
||
"reason": "Reason",
|
||
"badDebtAmount": "Write-off",
|
||
"playerAccount": "Player account",
|
||
"playerId": "Player ID",
|
||
"directAgent": "Direct agent",
|
||
"superiorAgent": "Upline agent",
|
||
"play": "Play",
|
||
"drawNo": "Draw no."
|
||
},
|
||
"billStatus": {
|
||
"pending_confirm": "Pending confirm",
|
||
"confirmed": "Awaiting payment",
|
||
"partial_paid": "Partial payment",
|
||
"settled": "Fully settled",
|
||
"overdue": "Overdue",
|
||
"reversed": "Reversed"
|
||
},
|
||
"billType": {
|
||
"adjustment": "Adjustment",
|
||
"reversal": "Reversal",
|
||
"badDebt": "Bad debt write-off"
|
||
},
|
||
"adjustmentType": {
|
||
"adjustment": "Adjustment",
|
||
"reversal": "Reversal",
|
||
"bad_debt": "Bad debt"
|
||
},
|
||
"paymentStatus": {
|
||
"pending": "Pending",
|
||
"confirmed": "Confirmed"
|
||
},
|
||
"actions": {
|
||
"detail": "Detail",
|
||
"viewBill": "View bill",
|
||
"billDetail": "Bill detail",
|
||
"billDetailWithId": "Bill #{{id}}"
|
||
},
|
||
"billDisplay": {
|
||
"settlementFlow": "Who pays whom",
|
||
"settlementAmount": "Settlement amount",
|
||
"pays": "Pays",
|
||
"paysShort": "Pays",
|
||
"howAmountWorks": "Breakdown",
|
||
"payerLabel": "Payer",
|
||
"payeeLabel": "Payee",
|
||
"playerBreakdownIntro": "Players settle only with their direct agent: net = win/loss − rebate.",
|
||
"agentBreakdownIntro": "Start with this period's team win/loss, deduct player rebates and retained shares, then settle the remaining amount with the upline.",
|
||
"playerGross": "Game win/loss",
|
||
"playerLostHint": "Player lost; owes agent",
|
||
"playerWonHint": "Player won; agent owes player",
|
||
"playerNet": "Player net payable",
|
||
"playerNetReceive": "Agent pays player",
|
||
"teamGross": "Team win/loss this period",
|
||
"teamGrossHint": "Total for this agent and downline players in this period",
|
||
"teamGrossShort": "Team",
|
||
"playerGrossShort": "Player",
|
||
"teamRebate": "Deduct player rebates",
|
||
"teamNet": "Profit available to split",
|
||
"rebate": "Rebate",
|
||
"agentShareKeep": "This tier keeps",
|
||
"agentShareKeepHint": "Amount retained by this tier under the agreed share",
|
||
"agentDownlineShare": "Downline agents keep",
|
||
"agentDownlineShareHint": "Amount retained by downline agents first (see breakdown below)",
|
||
"agentDownlineShareItem": "{{agent}} kept",
|
||
"agentNet": "Remit to {{counterparty}}",
|
||
"agentNetReceive": "{{counterparty}} owes this tier",
|
||
"actionPendingConfirmTitle": "Confirm this bill next",
|
||
"actionPendingConfirmDesc": "Confirm the amount and parties, then the bill moves to awaiting payment.",
|
||
"actionAwaitingPaymentTitle": "Record payment next",
|
||
"actionAwaitingPaymentDesc": "Record offline payment according to the payer/payee direction. Partial payments are allowed.",
|
||
"actionSettledTitle": "This bill is fully settled",
|
||
"actionSettledDesc": "Review the breakdown and payment history below if needed.",
|
||
"actionReviewTitle": "Review this bill status",
|
||
"actionReviewDesc": "Use adjustment, reversal, or bad debt actions if the amount or direction is wrong.",
|
||
"billOwner": "Bill owner",
|
||
"billCounterparty": "Counterparty",
|
||
"unpaidPendingConfirm": "Confirm the bill before recording payment",
|
||
"unpaidAwaitingPayment": "Record offline payment",
|
||
"fullySettled": "Fully settled this period",
|
||
"confirmHint": "Confirm the bill before recording payment.",
|
||
"advancedActions": "Adjust / bad debt",
|
||
"recordReceiptFrom": "Record receipt ({{payer}} → {{payee}})",
|
||
"recordPayoutTo": "Record payout ({{payer}} → {{payee}})",
|
||
"rebateAllocationsHint": "How rebate is allocated across agent tiers.",
|
||
"rebateAllocParticipant": "Participant",
|
||
"rebateAllocRate": "Share",
|
||
"rebateAllocAmount": "Allocated",
|
||
"rebateAllocTotal": "Total",
|
||
"rebateAllocTicket": "Ticket",
|
||
"showRawRebateAllocations": "Show per-ticket detail ({{count}})",
|
||
"hideRawRebateAllocations": "Hide per-ticket detail",
|
||
"payment": "Payment",
|
||
"flowHint": {
|
||
"playerPayAgent": "Player should settle with the direct agent",
|
||
"agentPayPlayer": "Direct agent should settle with the player",
|
||
"agentPayUpstream": "This agent should settle with upline / platform",
|
||
"upstreamPayAgent": "Upline / platform should settle with this agent",
|
||
"adjustment": "Adjustment settles separately and keeps the original bill relation",
|
||
"badDebt": "Write off unpaid amount and archive it as bad debt",
|
||
"reversal": "Reverse the original bill impact according to reversal rules",
|
||
"generic": "Apply payment or adjustment based on this bill relation"
|
||
},
|
||
"hierarchyHint": "One period creates multiple bills: players pay their agent first; each agent keeps share profit and remits the rest upline. Gross win/loss may match across rows while settlement amounts step down."
|
||
},
|
||
"ledgerPanel": {
|
||
"search": "Search",
|
||
"searchBtn": "Search",
|
||
"reset": "Reset filters",
|
||
"refresh": "Refresh page",
|
||
"filterAll": "Any",
|
||
"playerAccount": "Player account",
|
||
"playerAccountPh": "Username or site player ID",
|
||
"playerId": "Player ID",
|
||
"optional": "Optional",
|
||
"billStatus": "Bill status",
|
||
"dateRange": "Date range",
|
||
"rowPosted": "Posted"
|
||
},
|
||
"billsPanel": {
|
||
"intro": "Share bills after period close. Filter by type or status; open detail to confirm or record payment.",
|
||
"confirmOneTitle": "Confirm bill #{{id}}?",
|
||
"confirmOneDesc": "After confirm, record offline payment.",
|
||
"confirmOneBtn": "Confirm",
|
||
"confirmedOne": "Confirmed",
|
||
"confirmFailed": "Confirm failed",
|
||
"payBtn": "Pay",
|
||
"hierarchyHint": "One period creates multiple bills: players pay their agent first; each agent keeps share profit and remits the rest upline. Gross win/loss may match across rows while settlement amounts step down.",
|
||
"quickFilter": {
|
||
"title": "Which settlement layer do you want to review",
|
||
"desc": "Choose player or agent settlement first, then narrow by status or bill id.",
|
||
"allTitle": "All bills",
|
||
"allHint": "View player, agent, adjustment, and bad debt bills together",
|
||
"playerTitle": "Player settlement",
|
||
"playerHint": "Credit settlement between players and their direct agent",
|
||
"agentTitle": "Agent settlement",
|
||
"agentHint": "Tier settlement between agents and their upline / platform"
|
||
},
|
||
"activeHint": {
|
||
"all": "Current focus: all settlement documents in this period",
|
||
"player": "Current focus: credit settlement between players and direct agents",
|
||
"agent": "Current focus: payments between agents and their upline / platform"
|
||
},
|
||
"layer": {
|
||
"player": "Player vs direct agent",
|
||
"agent": "Agent vs upline / platform",
|
||
"adjustment": "Settlement adjustment",
|
||
"badDebt": "Bad debt archive",
|
||
"reversal": "Historical bill reversal",
|
||
"generic": "Settlement supporting document"
|
||
},
|
||
"category": {
|
||
"all": "All",
|
||
"player": "Player bills",
|
||
"agent": "Agent bills",
|
||
"pendingConfirm": "Pending confirm",
|
||
"awaitingPayment": "Awaiting payment"
|
||
},
|
||
"billId": "Bill ID",
|
||
"ownerKeyword": "Owner / counterparty",
|
||
"ownerKeywordPh": "Player account or agent name",
|
||
"status": "Bill status",
|
||
"billType": "Bill type",
|
||
"filterAll": "All statuses",
|
||
"filterAllTypes": "All types",
|
||
"filterAdjustment": "Adjust / reverse",
|
||
"optional": "Optional",
|
||
"searchBtn": "Search",
|
||
"reset": "Reset",
|
||
"refresh": "Refresh",
|
||
"clientFilterHint": "Owner filter: showing {{shown}} / {{total}}",
|
||
"emptyFiltered": "No bills match the filter. Try All statuses or reset.",
|
||
"emptyClosed": "Period closed but no bills. Often no settled credit tickets in range.",
|
||
"workbenchEmpty": "No bills need action in this period. Use All bills for settled or historical bills.",
|
||
"workbench": {
|
||
"pendingTitle": "Bills pending confirm",
|
||
"pendingHint": "Confirm the amount and parties first; confirmed bills move to awaiting payment.",
|
||
"awaitingTitle": "Bills awaiting payment",
|
||
"awaitingHint": "Record offline payment by payer/payee direction. Bills close when fully paid.",
|
||
"exceptionTitle": "Exceptions",
|
||
"exceptionHint": "Review adjustment, reversal, and bad debt records here."
|
||
},
|
||
"rowHint": {
|
||
"playerOwner": "Player owner",
|
||
"agentOwner": "Agent owner",
|
||
"adjustmentOwner": "Adjustment owner",
|
||
"badDebtOwner": "Bad debt owner",
|
||
"reversalOwner": "Reversal owner",
|
||
"playerUpline": "Player's upline agent",
|
||
"agentUpline": "Settlement upline"
|
||
}
|
||
},
|
||
"panels": {
|
||
"overview": {
|
||
"title": "Overview"
|
||
},
|
||
"ledger": {
|
||
"title": "Account ledger"
|
||
},
|
||
"bills": {
|
||
"title": "Bills"
|
||
},
|
||
"creditLedger": {
|
||
"title": "Credit ledger"
|
||
},
|
||
"playerBills": {
|
||
"title": "Player bills"
|
||
},
|
||
"agentBills": {
|
||
"title": "Agent bills"
|
||
},
|
||
"pendingConfirm": {
|
||
"title": "Pending confirm"
|
||
},
|
||
"awaiting": {
|
||
"title": "Awaiting payment"
|
||
},
|
||
"payments": {
|
||
"title": "Payment log"
|
||
},
|
||
"adjustments": {
|
||
"title": "Adjust / reverse"
|
||
},
|
||
"reports": {
|
||
"title": "Period reports"
|
||
},
|
||
"badDebt": {
|
||
"title": "Bad debt"
|
||
},
|
||
"workbench": {
|
||
"title": "Workbench"
|
||
}
|
||
},
|
||
"empty": {
|
||
"noSite": "Select a site.",
|
||
"noPeriods": "Close the current period first.",
|
||
"noClosed": "Close a period to generate bills.",
|
||
"noBadDebt": "No bad debt records.",
|
||
"noCreditLedger": "No ledger entries in this period.",
|
||
"billsNeedClose": "Bills are created after period close."
|
||
},
|
||
"periods": {
|
||
"loadFailed": "Failed to load periods"
|
||
},
|
||
"toast": {
|
||
"periodClosed": "Period closed",
|
||
"periodClosedUnsettled": "Period closed; {{count}} ticket(s) still unsettled."
|
||
},
|
||
"errors": {
|
||
"loadBills": "Failed to load bills",
|
||
"loadPayments": "Failed to load payments",
|
||
"loadAdjustments": "Failed to load adjustments",
|
||
"loadBadDebt": "Failed to load bad debt records",
|
||
"loadCreditLedger": "Failed to load credit ledger"
|
||
}
|
||
}
|