+
-
+
{localError ? (
-
{localError}
+
{localError}
) : null}
{footer}
diff --git a/src/i18n/locales/en/player.json b/src/i18n/locales/en/player.json
index d54c80f..bcf22d4 100644
--- a/src/i18n/locales/en/player.json
+++ b/src/i18n/locales/en/player.json
@@ -9,8 +9,12 @@
"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}}"
},
@@ -102,6 +106,13 @@
"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",
+ "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",
@@ -145,13 +156,28 @@
"sealedHint": "Closed: this table is locked. Please wait for the next issue.",
"previewing": "Previewing...",
"submitBet": "Submit Bet",
+ "insufficientBalance": "Insufficient balance",
"amountPlaceholder": "Amount",
"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."
+ "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",
@@ -183,6 +209,24 @@
"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 result",
+ "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"
@@ -280,6 +324,7 @@
"flowsTitle": "Wallet logs",
"totalRecords": "{{total}} records",
"emptyLogs": "No wallet logs",
+ "balanceAfter": "Balance after",
"flow": {
"all": "All",
"transfer_in": "Transfer in",
@@ -322,7 +367,9 @@
"betNow": "Bet Now",
"empty": "No bet records yet.",
"dateRange": "Date range",
+ "status": "Status",
"statusFilter": "Status filter",
+ "noMore": "No more tickets",
"submitBet": "Submit Bet",
"stake": "Stake",
"deduction": "Deduction",
@@ -364,8 +411,10 @@
"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",
@@ -376,10 +425,32 @@
"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.",
- "hitHint": "If you win, numbers matched by your tickets are highlighted in gold (login required).",
+ "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",
diff --git a/src/i18n/locales/ne/player.json b/src/i18n/locales/ne/player.json
index 63dafe1..ba79f05 100644
--- a/src/i18n/locales/ne/player.json
+++ b/src/i18n/locales/ne/player.json
@@ -9,8 +9,12 @@
"clear": "हटाउनुहोस्",
"cancel": "रद्द",
"confirm": "पुष्टि",
+ "close": "बन्द",
"loading": "लोड हुँदैछ...",
"loadMore": "थप लोड गर्नुहोस्",
+ "previous": "अघिल्लो",
+ "next": "अर्को",
+ "done": "पूरा भयो",
"processing": "प्रक्रिया हुँदैछ...",
"deleteRow": "{{row}} नम्बर पंक्ति हटाउनुहोस्"
},
@@ -102,6 +106,13 @@
"changedBeforeSubmit": "पेश गर्नु अघि ड्राफ्ट परिवर्तन भयो। पूर्वावलोकन बन्द गरी फेरि प्रयास गर्नुहोस्।",
"placeFailed": "पेश गर्न असफल",
"placeSuccess": "बेट पेश भयो। अर्डर {{orderNo}}, कट्टा {{amount}}।",
+ "placePartialFailed": "{{success}} सफल, {{failed}} असफल",
+ "playConfig": {
+ "playClosedDraftCleared": "{{playCode}} बन्द छ। सम्बन्धित ड्राफ्ट रकम हटाइएको छ।",
+ "playClosed": "{{playCode}} बन्द छ।",
+ "updated": "प्ले कन्फिगरेसन अपडेट भयो। बेटिङ तालिका रिफ्रेस गरियो।",
+ "oddsUpdated": "Odds अपडेट भयो। कृपया टिकट फेरि पूर्वावलोकन गर्नुहोस्।"
+ },
"jackpotBurst": {
"title": "Jackpot Burst",
"subtitle": "इश्यू {{drawNo}} मा पूल payout ट्रिगर भयो",
@@ -145,13 +156,28 @@
"sealedHint": "बन्द: यो तालिका लक छ। कृपया अर्को इश्यू पर्खनुहोस्।",
"previewing": "पूर्वावलोकन...",
"submitBet": "बेट पेश गर्नुहोस्",
+ "insufficientBalance": "ब्यालेन्स अपुग",
"amountPlaceholder": "रकम",
"filledPlayCount": "{{count}} प्ले भरियो",
"tapToFill": "रकम लेख्न ट्याप गर्नुहोस्",
"rowActual": "वास्तविक",
"editRow": "पंक्ति {{row}} सम्पादन गर्नुहोस्",
"scrollHint": "तालिका फराकिलो छ: दायाँतिर स्क्रोल गर्नुहोस्, दायाँका प्रत्येक खेल स्तम्भमा बेट रकम लेख्नुहोस्।",
- "noPlaysInCategory": "यस ट्याबमा खुला खेल प्रकार छैन। २D / ३D / ४D प्रयास गर्नुहोस् वा व्यवस्थापकले खेल खोल्नुपर्छ।"
+ "noPlaysInCategory": "यस ट्याबमा खुला खेल प्रकार छैन। २D / ३D / ४D प्रयास गर्नुहोस् वा व्यवस्थापकले खेल खोल्नुपर्छ।",
+ "soldOut": "Sold out",
+ "warning": "लगभग sold out"
+ },
+ "quickFill": {
+ "title": "छिटो भर्ने",
+ "description": "मनपर्ने वा पछिल्ला नम्बरहरू एक ट्यापमा हालको पंक्तिमा भर्नुहोस्।",
+ "clearAll": "सबै हटाउनुहोस्",
+ "favorite": "नम्बर मनपर्नेमा राख्नुहोस्",
+ "unfavorite": "मनपर्नेबाट हटाउनुहोस्",
+ "favorites": "मनपर्ने",
+ "tapHold": "हटाउन होल्ड गर्नुहोस्",
+ "emptyFavorites": "मनपर्ने छैन",
+ "history": "पछिल्ला 20 नम्बर",
+ "emptyHistory": "इतिहास नम्बर छैन"
},
"preview": {
"title": "बेट पुष्टि गर्नुहोस्",
@@ -176,9 +202,31 @@
"backEdit": "सम्पादनमा फर्कनुहोस्",
"submitting": "पेश हुँदैछ...",
"confirmSubmit": "पेश पुष्टि",
+ "processingTitle": "बेट पेश हुँदैछ",
+ "processingDescription": "कृपया पृष्ठ बन्द नगर्नुहोस् वा पछाडि नजानुहोस्।",
+ "processingProgress": "टिकट प्रक्रिया हुँदैछ...",
+ "noWarnings": "यस पूर्वावलोकनमा स्पष्ट जोखिम भेटिएन।",
"warningsTitle": "भुक्तानी पूल चेतावनी",
"warningsDescription": "यी नम्बरहरूमा यस इश्यूमा भुक्तानी पूल प्रयोग उच्च छ। बेट अझै गर्न सकिन्छ, तर क्षमता अपुग भए अर्डर sold out हुन सक्छ।"
},
+ "result": {
+ "title": "बेट नतिजा",
+ "draw": "इश्यू",
+ "empty": "नतिजा छैन।",
+ "successCount": "सफल लाइनहरू",
+ "failureCount": "असफल लाइनहरू",
+ "actual": "वास्तविक कट्टा",
+ "orderNo": "अर्डर नं.",
+ "balanceAfter": "बाँकी ब्यालेन्स",
+ "items": "सफल लाइन विवरण",
+ "number": "नम्बर",
+ "actualDeduct": "कट्टा",
+ "noFailures": "यस पेशमा असफल टिकट लाइन छैन।",
+ "failedItems": "असफल लाइन विवरण",
+ "failed": "असफल",
+ "viewBets": "टिकट हेर्नुहोस्",
+ "continueBetting": "बेट जारी राख्नुहोस्"
+ },
"amountInput": {
"limit": "सीमा {{min}} - {{max}}",
"placeholder": "जस्तै 100.00"
@@ -276,6 +324,7 @@
"flowsTitle": "वालेट लग",
"totalRecords": "{{total}} रेकर्ड",
"emptyLogs": "वालेट लग छैन",
+ "balanceAfter": "पछि बाँकी ब्यालेन्स",
"flow": {
"all": "सबै",
"transfer_in": "ट्रान्सफर इन",
@@ -317,6 +366,10 @@
"totalRecords": "कुल रेकर्ड",
"betNow": "अहिले बेट",
"empty": "अहिलेसम्म बेट रेकर्ड छैन।",
+ "dateRange": "मिति दायरा",
+ "status": "स्थिति",
+ "statusFilter": "स्थिति फिल्टर",
+ "noMore": "थप टिकट छैन",
"submitBet": "बेट पेश गर्नुहोस्",
"stake": "बेट",
"deduction": "कट्टा",
@@ -353,8 +406,10 @@
"subtitle": "हालका ड्र इतिहास",
"detailTitle": "नतिजा विवरण",
"businessDate": "व्यावसायिक मिति",
+ "selectBusinessDate": "मिति छान्नुहोस्",
"empty": "अहिलेसम्म नतिजा छैन।",
"detail": "विवरण",
+ "openDetail": "विवरण खोल्नुहोस्",
"loadFailed": "लोड असफल",
"unavailable": "यो नतिजा उपलब्ध छैन वा अस्तित्वमा छैन।",
"noData": "डेटा छैन",
@@ -365,10 +420,32 @@
"regular": "सामान्य: {{amount}}",
"jackpot": "Jackpot: {{amount}}",
"hitPending": "तपाईंको टिकटले यस इश्यूको नतिजा सेल हिट गरेको छ। भुक्तानी पूरा भएपछि रकम देखिनेछ।",
- "hitHint": "तपाईं जित्नुभयो भने, तपाईंका टिकटसँग मिलेका नम्बरहरू सुनौलो रंगमा देखिन्छन् (लगइन आवश्यक)।",
+ "hitHint": "तपाईं जित्नुभयो भने, तपाईंका टिकटसँग मिलेका नम्बरहरू सुनौलो रंगमा देखिन्छन्।",
"viewMyWinning": "मेरो जित स्थिति हेर्नुहोस्",
"jackpotLabel": "Jackpot",
"jackpotGap": "पछिल्लो burst देखि {{count}} draw",
+ "noMore": "थप नतिजा छैन",
+ "check": {
+ "title": "मेरो जित जाँच",
+ "loadFailed": "जाँच असफल भयो। कृपया पछि प्रयास गर्नुहोस्।",
+ "enterTicket": "टिकट नम्बर वा नम्बर लेख्नुहोस्",
+ "description": "सिस्टमले पछिल्लो प्रकाशित ड्र अनुसार तपाईंको टिकट र जित जाँच गर्छ।",
+ "ticketNumber": "टिकट नं. / नम्बर",
+ "placeholder": "टिकट नम्बर वा नम्बर लेख्नुहोस्",
+ "latestDraw": "पछिल्लो इश्यू {{drawNo}}",
+ "loading": "जाँच हुँदैछ...",
+ "submit": "अहिले जाँच गर्नुहोस्",
+ "recent": "हालका जाँच",
+ "noRecent": "हालका जाँच छैनन्।",
+ "winTitle": "बधाई छ, तपाईं जित्नुभयो",
+ "noWinTitle": "जित नतिजा भेटिएन",
+ "match": "मिलान",
+ "amount": "जित रकम",
+ "drawInfo": "ड्र जानकारी",
+ "issueNo": "इश्यू नं.",
+ "viewBetDetails": "बेट विवरण हेर्नुहोस्",
+ "checkAnother": "अर्को टिकट जाँच गर्नुहोस्"
+ },
"tier": {
"first": "पहिलो पुरस्कार",
"second": "दोस्रो पुरस्कार",
@@ -450,6 +527,7 @@
},
"ticketStatus": {
"success": "ड्र पर्खँदै",
+ "pending_payout": "जितेको, भुक्तानी बाँकी",
"settled_win": "भुक्तानी भयो",
"settled_lose": "जितेन",
"unknown": "{{status}}"
diff --git a/src/i18n/locales/zh/player.json b/src/i18n/locales/zh/player.json
index c2b58c8..bda96c5 100644
--- a/src/i18n/locales/zh/player.json
+++ b/src/i18n/locales/zh/player.json
@@ -9,8 +9,12 @@
"clear": "清除",
"cancel": "取消",
"confirm": "确认",
+ "close": "关闭",
"loading": "加载中...",
"loadMore": "加载更多",
+ "previous": "上一页",
+ "next": "下一页",
+ "done": "完成",
"processing": "处理中...",
"deleteRow": "删除第 {{row}} 行"
},
@@ -102,6 +106,13 @@
"changedBeforeSubmit": "提交前数据已变化,请关闭预览后重试。",
"placeFailed": "提交失败",
"placeSuccess": "下注成功,订单号 {{orderNo}},实扣 {{amount}}。",
+ "placePartialFailed": "{{success}} 个成功,{{failed}} 个失败",
+ "playConfig": {
+ "playClosedDraftCleared": "{{playCode}} 已关闭,相关草稿金额已清除。",
+ "playClosed": "{{playCode}} 已关闭。",
+ "updated": "玩法配置已更新,已刷新下注表格。",
+ "oddsUpdated": "赔率已更新,请重新预览注单。"
+ },
"jackpotBurst": {
"title": "Jackpot 爆池",
"subtitle": "期号 {{drawNo}} 触发奖池派发",
@@ -145,13 +156,28 @@
"sealedHint": "已封盘:当前表格不可编辑,请等待下一期。",
"previewing": "预览中...",
"submitBet": "提交下注",
+ "insufficientBalance": "余额不足",
"amountPlaceholder": "金额",
"filledPlayCount": "已填写 {{count}} 个玩法",
"tapToFill": "点击填写玩法金额",
"rowActual": "实扣",
"editRow": "编辑第 {{row}} 行",
"scrollHint": "表格较宽:请向右滑动,在右侧各玩法列(如 Big / Small、位置玩法等)输入下注金额。",
- "noPlaysInCategory": "当前分类没有已开放的玩法,无法填写金额。请尝试切换 2D / 3D / 4D,或在后台开放对应玩法。"
+ "noPlaysInCategory": "当前分类没有已开放的玩法,无法填写金额。请尝试切换 2D / 3D / 4D,或在后台开放对应玩法。",
+ "soldOut": "售罄",
+ "warning": "接近售罄"
+ },
+ "quickFill": {
+ "title": "快速填单",
+ "description": "收藏号码、最近号码可一键填入当前行。",
+ "clearAll": "批量清空",
+ "favorite": "收藏号码",
+ "unfavorite": "取消收藏",
+ "favorites": "收藏",
+ "tapHold": "长按取消",
+ "emptyFavorites": "暂无收藏",
+ "history": "最近 20 个历史号码",
+ "emptyHistory": "暂无历史号码"
},
"preview": {
"title": "确认下注",
@@ -183,6 +209,24 @@
"warningsTitle": "赔付池预警",
"warningsDescription": "以下号码本期赔付池占用较高,仍允许下注;若实际占用不足将售罄拒单。"
},
+ "result": {
+ "title": "下注结果",
+ "draw": "期号",
+ "empty": "暂无结果。",
+ "successCount": "成功注项",
+ "failureCount": "失败注项",
+ "actual": "实扣金额",
+ "orderNo": "订单号",
+ "balanceAfter": "剩余余额",
+ "items": "成功注项明细",
+ "number": "号码",
+ "actualDeduct": "实扣",
+ "noFailures": "本次提交没有失败注项。",
+ "failedItems": "失败注项明细",
+ "failed": "失败",
+ "viewBets": "查看注单",
+ "continueBetting": "继续下注"
+ },
"amountInput": {
"limit": "限额 {{min}} - {{max}}",
"placeholder": "例如 100.00"
@@ -280,6 +324,7 @@
"flowsTitle": "资金流水",
"totalRecords": "共 {{total}} 条记录",
"emptyLogs": "暂无流水",
+ "balanceAfter": "变更后余额",
"flow": {
"all": "全部",
"transfer_in": "转入",
@@ -322,7 +367,9 @@
"betNow": "立即下注",
"empty": "暂无下注记录。",
"dateRange": "日期范围",
+ "status": "状态",
"statusFilter": "状态筛选",
+ "noMore": "没有更多注单",
"submitBet": "提交下注",
"stake": "下注",
"deduction": "实扣",
@@ -364,8 +411,10 @@
"subtitle": "最新开奖历史",
"detailTitle": "开奖详情",
"businessDate": "业务日期",
+ "selectBusinessDate": "选择日期",
"empty": "暂无开奖结果。",
"detail": "详情",
+ "openDetail": "查看详情",
"loadFailed": "加载失败",
"unavailable": "该期开奖结果不可用或不存在",
"noData": "无数据",
@@ -376,10 +425,32 @@
"regular": "常规:{{amount}}",
"jackpot": "Jackpot:{{amount}}",
"hitPending": "您的注单已命中本期开奖号码中的格子;派彩完成后将显示金额汇总。",
- "hitHint": "如果您中奖,与注单匹配的号码将以金色高亮显示(需登录)。",
+ "hitHint": "如果您中奖,与注单匹配的号码将以金色高亮显示。",
"viewMyWinning": "查看我的中奖情况",
"jackpotLabel": "Jackpot",
"jackpotGap": "距上次爆池 {{count}} 期",
+ "noMore": "没有更多开奖结果",
+ "check": {
+ "title": "查我的中奖",
+ "loadFailed": "查询失败,请稍后重试。",
+ "enterTicket": "输入你的票号或号码",
+ "description": "系统会按最新已发布期号查询你的注单和中奖情况。",
+ "ticketNumber": "票号 / 号码",
+ "placeholder": "请输入票号或号码",
+ "latestDraw": "最新期号 {{drawNo}}",
+ "loading": "查询中...",
+ "submit": "立即查询",
+ "recent": "最近查询",
+ "noRecent": "暂无查询记录。",
+ "winTitle": "恭喜,你中奖了",
+ "noWinTitle": "未查询到中奖",
+ "match": "匹配",
+ "amount": "中奖金额",
+ "drawInfo": "开奖信息",
+ "issueNo": "期号",
+ "viewBetDetails": "查看注单详情",
+ "checkAnother": "查询另一张票"
+ },
"tier": {
"first": "头奖",
"second": "二奖",