refactor: 完成全站国际化改造,统一多语言支持
此提交完成了全项目的国际化适配: 1. 新增多语言翻译文件与基础配置 2. 替换所有硬编码文本为i18n调用 3. 优化语言切换与文档语言同步逻辑 4. 重构部分业务逻辑以支持动态翻译 5. 移除过时代码与硬编码配置
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
"use client";
|
||||
|
||||
import i18n from "i18next";
|
||||
import LanguageDetector from "i18next-browser-languagedetector";
|
||||
import { initReactI18next } from "react-i18next";
|
||||
@@ -5,12 +7,15 @@ import { initReactI18next } from "react-i18next";
|
||||
import enCommon from "./locales/en/common.json";
|
||||
import enEntry from "./locales/en/entry.json";
|
||||
import enLayout from "./locales/en/layout.json";
|
||||
import enPlayer from "./locales/en/player.json";
|
||||
import neCommon from "./locales/ne/common.json";
|
||||
import neEntry from "./locales/ne/entry.json";
|
||||
import neLayout from "./locales/ne/layout.json";
|
||||
import nePlayer from "./locales/ne/player.json";
|
||||
import zhCommon from "./locales/zh/common.json";
|
||||
import zhEntry from "./locales/zh/entry.json";
|
||||
import zhLayout from "./locales/zh/layout.json";
|
||||
import zhPlayer from "./locales/zh/player.json";
|
||||
|
||||
/** 对齐后端与产品:尼泊尔语 / 英语 / 中文(简体) */
|
||||
export const SUPPORTED_LANGUAGES = [
|
||||
@@ -23,23 +28,26 @@ export type AppLanguage = (typeof SUPPORTED_LANGUAGES)[number]["code"];
|
||||
|
||||
export const DEFAULT_LANGUAGE: AppLanguage = "en";
|
||||
|
||||
const namespaces = ["common", "entry", "layout"] as const;
|
||||
const namespaces = ["common", "entry", "layout", "player"] as const;
|
||||
|
||||
const resources = {
|
||||
en: {
|
||||
common: enCommon,
|
||||
entry: enEntry,
|
||||
layout: enLayout,
|
||||
player: enPlayer,
|
||||
},
|
||||
ne: {
|
||||
common: neCommon,
|
||||
entry: neEntry,
|
||||
layout: neLayout,
|
||||
player: nePlayer,
|
||||
},
|
||||
zh: {
|
||||
common: zhCommon,
|
||||
entry: zhEntry,
|
||||
layout: zhLayout,
|
||||
player: zhPlayer,
|
||||
},
|
||||
} satisfies Record<
|
||||
AppLanguage,
|
||||
@@ -53,6 +61,12 @@ export function normalizeLanguage(lang: string | undefined): AppLanguage {
|
||||
return "en";
|
||||
}
|
||||
|
||||
export function syncDocumentLanguage(lang: AppLanguage): void {
|
||||
if (typeof document === "undefined") return;
|
||||
|
||||
document.documentElement.lang = lang;
|
||||
}
|
||||
|
||||
if (!i18n.isInitialized) {
|
||||
void i18n
|
||||
.use(LanguageDetector)
|
||||
@@ -80,6 +94,12 @@ if (!i18n.isInitialized) {
|
||||
useSuspense: false,
|
||||
},
|
||||
});
|
||||
|
||||
syncDocumentLanguage(normalizeLanguage(i18n.resolvedLanguage ?? i18n.language));
|
||||
|
||||
i18n.on("languageChanged", (lang) => {
|
||||
syncDocumentLanguage(normalizeLanguage(lang));
|
||||
});
|
||||
}
|
||||
|
||||
export default i18n;
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
"pending": "Pending",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"navigation": {
|
||||
"notifications": "Notifications"
|
||||
},
|
||||
"errors": {
|
||||
"general": "General"
|
||||
}
|
||||
|
||||
397
src/i18n/locales/en/player.json
Normal file
397
src/i18n/locales/en/player.json
Normal file
@@ -0,0 +1,397 @@
|
||||
{
|
||||
"brand": {
|
||||
"name": "N lotto"
|
||||
},
|
||||
"actions": {
|
||||
"retry": "Retry",
|
||||
"refresh": "Refresh",
|
||||
"apply": "Apply",
|
||||
"clear": "Clear",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"loading": "Loading...",
|
||||
"loadMore": "Load More",
|
||||
"processing": "Processing...",
|
||||
"deleteRow": "Delete row {{row}}"
|
||||
},
|
||||
"nav": {
|
||||
"aria": "Main navigation",
|
||||
"home": "Home",
|
||||
"results": "Results",
|
||||
"orders": "My Bets",
|
||||
"wallet": "Wallet"
|
||||
},
|
||||
"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",
|
||||
"closesIn": "Closes In",
|
||||
"drawsIn": "Draws In",
|
||||
"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.",
|
||||
"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.",
|
||||
"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}}.",
|
||||
"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."
|
||||
},
|
||||
"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": "Draft Total",
|
||||
"sealedHint": "Closed: this table is locked. Please wait for the next issue.",
|
||||
"previewing": "Previewing...",
|
||||
"submitBet": "Submit Bet"
|
||||
},
|
||||
"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",
|
||||
"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",
|
||||
"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."
|
||||
},
|
||||
"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.",
|
||||
"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",
|
||||
"balance": "Wallet Balance",
|
||||
"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",
|
||||
"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",
|
||||
"totalRecords": "{{total}} records",
|
||||
"emptyLogs": "No wallet logs",
|
||||
"flow": {
|
||||
"all": "All",
|
||||
"transfer_in": "Transfer in",
|
||||
"transfer_out": "Transfer out",
|
||||
"bet": "Bet deduction",
|
||||
"prize": "Payout",
|
||||
"refund": "Refund",
|
||||
"reversal": "Reversal"
|
||||
},
|
||||
"txnStatus": {
|
||||
"posted": "Success",
|
||||
"pending_reconcile": "Pending reconciliation",
|
||||
"reversed": "Reversed",
|
||||
"manually_processed": "Manually processed"
|
||||
},
|
||||
"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.",
|
||||
"submitBet": "Submit Bet",
|
||||
"stake": "Stake",
|
||||
"deduction": "Deduction",
|
||||
"win": "Win {{amount}}",
|
||||
"detailTitle": "Ticket detail",
|
||||
"ticketNo": "Ticket {{ticketNo}}",
|
||||
"orderNo": "Order {{orderNo}}",
|
||||
"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}}",
|
||||
"matchLose": "Match result: not won",
|
||||
"settledAt": "Settled at {{time}}",
|
||||
"viewDraw": "View this draw",
|
||||
"backToOrders": "Back to My Bets",
|
||||
"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",
|
||||
"empty": "No results yet.",
|
||||
"detail": "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",
|
||||
"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).",
|
||||
"viewMyWinning": "View my winning status",
|
||||
"jackpotLabel": "Jackpot",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"ticketStatus": {
|
||||
"success": "Awaiting draw",
|
||||
"settled_win": "Paid",
|
||||
"settled_lose": "Not won",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,9 @@
|
||||
"pending": "बाँकी",
|
||||
"failed": "असफल"
|
||||
},
|
||||
"navigation": {
|
||||
"notifications": "सूचनाहरू"
|
||||
},
|
||||
"errors": {
|
||||
"general": "सामान्य"
|
||||
}
|
||||
|
||||
397
src/i18n/locales/ne/player.json
Normal file
397
src/i18n/locales/ne/player.json
Normal file
@@ -0,0 +1,397 @@
|
||||
{
|
||||
"brand": {
|
||||
"name": "N lotto"
|
||||
},
|
||||
"actions": {
|
||||
"retry": "पुन: प्रयास",
|
||||
"refresh": "रिफ्रेस",
|
||||
"apply": "लागू गर्नुहोस्",
|
||||
"clear": "हटाउनुहोस्",
|
||||
"cancel": "रद्द",
|
||||
"confirm": "पुष्टि",
|
||||
"loading": "लोड हुँदैछ...",
|
||||
"loadMore": "थप लोड गर्नुहोस्",
|
||||
"processing": "प्रक्रिया हुँदैछ...",
|
||||
"deleteRow": "{{row}} नम्बर पंक्ति हटाउनुहोस्"
|
||||
},
|
||||
"nav": {
|
||||
"aria": "मुख्य नेभिगेसन",
|
||||
"home": "गृह",
|
||||
"results": "नतिजा",
|
||||
"orders": "मेरा बेट",
|
||||
"wallet": "वालेट"
|
||||
},
|
||||
"panel": {
|
||||
"home": "गृह"
|
||||
},
|
||||
"network": {
|
||||
"offline": "नेटवर्क काटिएको छ। कृपया जडान जाँच गर्नुहोस्।",
|
||||
"degraded": "नेटवर्क अस्थिर छ। fallback मोडमा स्विच गरियो (polling...).",
|
||||
"retryReconnect": "पुन: जडान प्रयास",
|
||||
"retry": "पुन: प्रयास",
|
||||
"recoverWebsocket": "WebSocket जडान पुनर्स्थापना प्रयास",
|
||||
"recover": "पुनर्स्थापना",
|
||||
"reconnect": "पुन: जडान"
|
||||
},
|
||||
"token": {
|
||||
"critical": "लगइन छिट्टै समाप्त हुँदैछ",
|
||||
"warning": "लगइन समाप्त हुन लागेको छ",
|
||||
"remaining": "बाँकी {{time}}",
|
||||
"autoRenewing": "स्वचालित नवीकरण हुँदैछ...",
|
||||
"renewNow": "अहिले नवीकरण"
|
||||
},
|
||||
"serverError": {
|
||||
"title": "सर्भर त्रुटि",
|
||||
"appTitle": "एप त्रुटि",
|
||||
"unavailable": "सर्भर अस्थायी रूपमा उपलब्ध छैन",
|
||||
"serverMessage": "सर्भर अस्थायी रूपमा उपलब्ध छैन। कृपया पछि प्रयास गर्नुहोस्।",
|
||||
"appMessage": "माफ गर्नुहोस्, एपमा समस्या आयो। पृष्ठ रिफ्रेस गरेर प्रयास गर्नुहोस्।",
|
||||
"details": "त्रुटि विवरण:",
|
||||
"errorId": "त्रुटि ID: {{id}}",
|
||||
"refreshPage": "पृष्ठ रिफ्रेस",
|
||||
"hall": "बेटिङ हल",
|
||||
"wallet": "मेरो वालेट",
|
||||
"code": "त्रुटि कोड: 500 Internal Server Error",
|
||||
"home": "गृहमा फर्कनुहोस्"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "पृष्ठ भेटिएन",
|
||||
"description": "माफ गर्नुहोस्, तपाईंले खोलेको पृष्ठ हटाइएको, सारिएको वा कहिल्यै नभएको हुन सक्छ।",
|
||||
"home": "गृहमा फर्कनुहोस्",
|
||||
"hall": "बेटिङ हल",
|
||||
"results": "नतिजा",
|
||||
"wallet": "मेरो वालेट"
|
||||
},
|
||||
"player": {
|
||||
"fallback": "खेलाडी #{{id}}"
|
||||
},
|
||||
"draw": {
|
||||
"currentIssue": "हालको इश्यू",
|
||||
"currentTime": "हालको समय",
|
||||
"closesIn": "बन्द हुन बाँकी",
|
||||
"drawsIn": "ड्र हुन बाँकी",
|
||||
"coolDown": "कुल डाउन",
|
||||
"loadFailedRefresh": "लोड असफल भयो। तल तानेर रिफ्रेस गर्नुहोस्।",
|
||||
"issueNo": "इश्यू नं.",
|
||||
"hall": "बेटिङ हल",
|
||||
"noIssue": "उपलब्ध इश्यू छैन। कृपया पछि प्रयास गर्नुहोस्।",
|
||||
"sealedNotice": "बन्द भयो। कृपया अर्को इश्यू पर्खनुहोस्।",
|
||||
"status": {
|
||||
"pending": "सुरु भएको छैन",
|
||||
"open": "खुला",
|
||||
"closing": "बन्द",
|
||||
"closed": "ड्र पर्खँदै",
|
||||
"drawing": "ड्र हुँदैछ",
|
||||
"review": "समीक्षामा",
|
||||
"cooldown": "कुल डाउन",
|
||||
"settling": "सेटल हुँदैछ",
|
||||
"settled": "सेटल भयो",
|
||||
"cancelled": "रद्द"
|
||||
}
|
||||
},
|
||||
"hall": {
|
||||
"aria": "बेटिङ तालिका",
|
||||
"loadingError": "प्ले नियम लोड गर्न असफल। कृपया पछि प्रयास गर्नुहोस्।",
|
||||
"noDraw": "हालको इश्यू छैन। पेश गर्न सकिँदैन।",
|
||||
"notBettable": "यो इश्यू बन्द छ वा बेट स्वीकार गर्न सक्दैन।",
|
||||
"catalogNotReady": "प्ले कन्फिगरेसन अझै लोड हुँदैछ।",
|
||||
"emptyLines": "कृपया कम्तीमा एक मान्य नम्बर र रकम प्रविष्ट गर्नुहोस्।",
|
||||
"previewFailed": "पूर्वावलोकन असफल",
|
||||
"closedSubmit": "बन्द भयो। पेश गर्न सकिँदैन।",
|
||||
"changedBeforeSubmit": "पेश गर्नु अघि ड्राफ्ट परिवर्तन भयो। पूर्वावलोकन बन्द गरी फेरि प्रयास गर्नुहोस्।",
|
||||
"placeFailed": "पेश गर्न असफल",
|
||||
"placeSuccess": "बेट पेश भयो। अर्डर {{orderNo}}, कट्टा {{amount}}।",
|
||||
"closed": {
|
||||
"title": "बन्द",
|
||||
"subtitle": "यो इश्यू बन्द भएको छ।",
|
||||
"description": "बेटिङ समय बन्द भएको छ। अर्को इश्यू पर्खेर बेट राख्नुहोस्।"
|
||||
},
|
||||
"boxMode": {
|
||||
"iboxTitle": "iBox",
|
||||
"iboxDesc": "रकम सबैमा बाँड्नुहोस्",
|
||||
"boxTitle": "Box",
|
||||
"boxDesc": "रकम सबैसँग गुणा गर्नुहोस्"
|
||||
},
|
||||
"table": {
|
||||
"no": "नं.",
|
||||
"number": "नम्बर",
|
||||
"stake": "बेट रकम",
|
||||
"rebate": "कमिशन / रिबेट",
|
||||
"actual": "वास्तविक कट्टा",
|
||||
"delete": "हटाउनुहोस्",
|
||||
"addRow": "पंक्ति थप्नुहोस्",
|
||||
"draftTotal": "ड्राफ्ट जम्मा",
|
||||
"sealedHint": "बन्द: यो तालिका लक छ। कृपया अर्को इश्यू पर्खनुहोस्।",
|
||||
"previewing": "पूर्वावलोकन...",
|
||||
"submitBet": "बेट पेश गर्नुहोस्"
|
||||
},
|
||||
"preview": {
|
||||
"title": "बेट पुष्टि गर्नुहोस्",
|
||||
"description": "नम्बर, प्ले प्रकार र वास्तविक कट्टा जाँच गर्नुहोस्। पुष्टि गरेपछि वालेटबाट रकम कट्टा हुनेछ र टिकट रद्द गर्न सकिँदैन।",
|
||||
"sealedTitle": "बन्द",
|
||||
"sealedDescription": "यो इश्यूले टिकट स्वीकार गर्न बन्द गरिसकेको छ। कृपया अर्को इश्यू छान्नुहोस्।",
|
||||
"empty": "पूर्वावलोकन डेटा छैन",
|
||||
"draw": "इश्यू",
|
||||
"status": "स्थिति",
|
||||
"totalBet": "कुल बेट",
|
||||
"rebateDeduct": "रिबेट कट्टा",
|
||||
"actualDeduct": "वास्तविक कट्टा",
|
||||
"estimatedPayout": "अनुमानित अधिकतम भुक्तानी",
|
||||
"lines": "टिकट लाइनहरू",
|
||||
"normalizedNumber": "सामान्य नम्बर",
|
||||
"combinationCount": "संयोजन",
|
||||
"actual": "वास्तविक",
|
||||
"estimatedMax": "अनुमानित अधिकतम",
|
||||
"backEdit": "सम्पादनमा फर्कनुहोस्",
|
||||
"submitting": "पेश हुँदैछ...",
|
||||
"confirmSubmit": "पेश पुष्टि",
|
||||
"warningsTitle": "भुक्तानी पूल चेतावनी",
|
||||
"warningsDescription": "यी नम्बरहरूमा यस इश्यूमा भुक्तानी पूल प्रयोग उच्च छ। बेट अझै गर्न सकिन्छ, तर क्षमता अपुग भए अर्डर sold out हुन सक्छ।"
|
||||
},
|
||||
"amountInput": {
|
||||
"limit": "सीमा {{min}} - {{max}}",
|
||||
"placeholder": "जस्तै 100.00"
|
||||
},
|
||||
"numberInput": {
|
||||
"rollPlaceholder": "जस्तै 12R4",
|
||||
"digitPlaceholder": "0-9"
|
||||
},
|
||||
"playSwitcher": {
|
||||
"empty": "यो मुद्राका लागि खुला प्ले प्रकार छैन।",
|
||||
"label": "प्ले"
|
||||
},
|
||||
"playCatalog": {
|
||||
"notReady": "प्ले कन्फिगरेसन सुरु गरिएको छैन। Laravel मा OperationalConfigV1Seeder समावेश भएको seed चलाउनुहोस्।",
|
||||
"loadFailed": "प्ले कन्फिगरेसन लोड गर्न असफल। कृपया पछि प्रयास गर्नुहोस्।",
|
||||
"loading": "प्ले र odds लोड हुँदैछ...",
|
||||
"meta": "मुद्रा {{currency}} · कन्फिग संस्करण play#{{playVersion}} / odds#{{oddsVersion}} · सीमा वालेट जस्तै सबैभन्दा सानो मुद्रा एकाइमा छ।",
|
||||
"play": "प्ले",
|
||||
"status": "स्थिति",
|
||||
"limit": "बेट सीमा",
|
||||
"odds": "Odds x",
|
||||
"description": "विवरण",
|
||||
"open": "खुला",
|
||||
"closed": "बन्द",
|
||||
"riskTitle": "जोखिम क्याप (नमुना नम्बर)",
|
||||
"number": "नम्बर",
|
||||
"capAmount": "क्याप रकम",
|
||||
"type": "प्रकार",
|
||||
"title": "प्ले र Odds",
|
||||
"descriptionText": "डेटा GET /api/v1/play/effective बाट आउँछ। एडमिन परिवर्तन publish भएपछि करिब {{seconds}}s भित्र आफैं रिफ्रेस हुन्छ, वा हातैले गर्न सकिन्छ।",
|
||||
"refresh": "कन्फिग रिफ्रेस"
|
||||
},
|
||||
"ticketError": {
|
||||
"4001": "यो नम्बरमा यस इश्यूका लागि भुक्तानी पूल क्षमता अपुग छ र sold out भयो। नम्बर, रकम वा प्ले प्रकार परिवर्तन गरी फेरि प्रयास गर्नुहोस्।",
|
||||
"1001": "ब्यालेन्स अपुग छ। बेट गर्नु अघि ट्रान्सफर इन गर्नुहोस्।",
|
||||
"2001": "यो इश्यू बन्द भइसकेको छ। बेट गर्न सकिँदैन।",
|
||||
"2002": "यो प्ले प्रकार बन्द छ। अर्को प्ले प्रकार छान्नुहोस्।",
|
||||
"2004": "नम्बर ढाँचा वा लम्बाइ यस प्ले प्रकारसँग मिल्दैन।",
|
||||
"2005": "प्ले प्यारामिटर अपूर्ण छ, जस्तै digit slot वा dimension।",
|
||||
"2006": "यो इश्यूले बेट स्वीकार गर्न सक्दैन।",
|
||||
"2007": "यो प्ले प्रकार समर्थित छैन वा odds कन्फिगरेसन छैन।",
|
||||
"2008": "Odds वा प्ले कन्फिगरेसन परिवर्तन भयो। पूर्वावलोकन बन्द गरी फेरि प्रयास गर्नुहोस्।",
|
||||
"1003": "बेट रकम यो प्ले प्रकारको अनुमत दायराभन्दा बाहिर छ।",
|
||||
"fallback": "बेट असफल। कृपया पछि प्रयास गर्नुहोस्।"
|
||||
},
|
||||
"amountHint": {
|
||||
"iboxRoll": "यो प्लेमा प्रति-बेट रकम प्रयोग हुन्छ। सिस्टमले संयोजन विस्तारपछि कुल बेट र कट्टा गणना गर्छ।",
|
||||
"mbox": "यो प्लेमा कुल इनपुट रकम प्रयोग हुन्छ। यो permutation हरूमा बाँडिन्छ र सानो मुद्रा एकाइमा तल राउन्ड हुन्छ।",
|
||||
"default": "रकम यस टिकट लाइनको बेट रकम हो, वालेट जस्तै सबैभन्दा सानो मुद्रा एकाइमा।"
|
||||
}
|
||||
},
|
||||
"wallet": {
|
||||
"title": "वालेट",
|
||||
"subtitle": "ब्यालेन्स र ट्रान्सफर रेकर्ड",
|
||||
"balance": "वालेट ब्यालेन्स",
|
||||
"available": "उपलब्ध {{amount}}",
|
||||
"transferIn": "ट्रान्सफर इन",
|
||||
"transferOut": "ट्रान्सफर आउट",
|
||||
"inPage": "इन पेज",
|
||||
"outPage": "आउट पेज",
|
||||
"logs": "लग",
|
||||
"logsTitle": "वालेट लग",
|
||||
"logsSubtitle": "ट्रान्सफर र बेट रेकर्ड",
|
||||
"typeFilter": "प्रकार फिल्टर",
|
||||
"transferInTitle": "फन्ड ट्रान्सफर इन",
|
||||
"transferOutTitle": "फन्ड ट्रान्सफर आउट",
|
||||
"transferInSubtitle": "लटरी वालेटमा रकम थप्नुहोस् ({{currency}})",
|
||||
"transferOutSubtitle": "उपलब्ध रकम फिर्ता पठाउनुहोस् ({{currency}})",
|
||||
"transferInDescription": "मुख्य साइट वालेटबाट लटरी वालेटमा रकम सार्नुहोस्। प्रति कारोबार सीमा सर्भरले जाँच गर्छ।",
|
||||
"transferOutDescription": "मुख्य साइट वालेटमा रकम फिर्ता सार्नुहोस्। प्रति कारोबार सीमा सर्भरले जाँच गर्छ।",
|
||||
"dialogInDescription": "मुख्य साइट वालेटबाट लटरी वालेटमा रकम सार्नुहोस्। न्यूनतम रकम सर्भरले जाँच गर्छ, सामान्यतया करिब 1.00 {{currency}}।",
|
||||
"dialogOutDescription": "मुख्य साइट वालेटमा रकम फिर्ता सार्नुहोस्। प्रति कारोबार सीमा सर्भरले जाँच गर्छ।",
|
||||
"mainBalance": "मुख्य साइट वालेट ब्यालेन्स:",
|
||||
"mainPending": "— (मुख्य साइट जोड्न बाँकी)",
|
||||
"lotteryBalance": "लटरी वालेट ब्यालेन्स:",
|
||||
"lotteryAvailable": "लटरी वालेट उपलब्ध:",
|
||||
"inAmount": "ट्रान्सफर इन रकम",
|
||||
"outAmount": "ट्रान्सफर आउट रकम",
|
||||
"exampleIn": "जस्तै 1000.00",
|
||||
"exampleOut": "जस्तै 500.00",
|
||||
"afterInPreview": "ट्रान्सफर इनपछि लटरी ब्यालेन्स (पूर्वावलोकन): {{amount}}",
|
||||
"afterOutPreview": "ट्रान्सफर आउटपछि लटरी ब्यालेन्स (पूर्वावलोकन): {{amount}}",
|
||||
"allOut": "सबै ट्रान्सफर आउट {{amount}}",
|
||||
"confirmIn": "ट्रान्सफर इन पुष्टि",
|
||||
"confirmOut": "ट्रान्सफर आउट पुष्टि",
|
||||
"successIn": "ट्रान्सफर इन सफल। लटरी वालेट अपडेट भयो।",
|
||||
"successOut": "ट्रान्सफर आउट सफल। रकम मुख्य साइट वालेटमा फर्कनेछ।",
|
||||
"pendingShort": "ट्रान्सफर प्रक्रिया हुँदैछ। पछि रिफ्रेस गर्नुहोस्।",
|
||||
"pendingToast": "प्रक्रिया हुँदैछ...",
|
||||
"invalidAmount": "मान्य रकम प्रविष्ट गर्नुहोस्।",
|
||||
"outExceeds": "ट्रान्सफर आउट रकम उपलब्ध ब्यालेन्सभन्दा बढी हुन सक्दैन।",
|
||||
"pendingTitle": "मिलान बाँकी",
|
||||
"pendingDescription": "यी ट्रान्सफरहरू मुख्य साइटबाट अन्तिम पुष्टि भएका छैनन्। लामो समयसम्म नआए support सम्पर्क गर्नुहोस्।",
|
||||
"pendingStatus": "प्रक्रिया हुँदैछ",
|
||||
"flowsTitle": "वालेट लग",
|
||||
"totalRecords": "{{total}} रेकर्ड",
|
||||
"emptyLogs": "वालेट लग छैन",
|
||||
"flow": {
|
||||
"all": "सबै",
|
||||
"transfer_in": "ट्रान्सफर इन",
|
||||
"transfer_out": "ट्रान्सफर आउट",
|
||||
"bet": "बेट कट्टा",
|
||||
"prize": "भुक्तानी",
|
||||
"refund": "रिफन्ड",
|
||||
"reversal": "रिभर्सल"
|
||||
},
|
||||
"txnStatus": {
|
||||
"posted": "सफल",
|
||||
"pending_reconcile": "मिलान बाँकी",
|
||||
"reversed": "रिभर्स भयो",
|
||||
"manually_processed": "हातैले प्रक्रिया भयो"
|
||||
},
|
||||
"error": {
|
||||
"401": "लगइन समाप्त भयो। कृपया फर्केर फेरि प्रवेश गर्नुहोस्।",
|
||||
"409": "ट्रान्सफर प्रक्रिया हुँदैछ। पछि रिफ्रेस गर्नुहोस्। लामो समयसम्म नआए support सम्पर्क गर्नुहोस्।",
|
||||
"network": "नेटवर्क त्रुटि। जडान जाँच गरी फेरि प्रयास गर्नुहोस्।",
|
||||
"timeout": "अनुरोध timeout भयो। कृपया पछि प्रयास गर्नुहोस्।",
|
||||
"fallback": "अनुरोध असफल। कृपया पछि प्रयास गर्नुहोस्।",
|
||||
"1001": "लटरी वालेट ब्यालेन्स अपुग छ। ट्रान्सफर इन गर्नुहोस् वा रकम घटाउनुहोस्।",
|
||||
"1002": "ट्रान्सफर प्रक्रिया हुँदैछ। पछि ब्यालेन्स रिफ्रेस गर्नुहोस्। लामो समयसम्म नआए support सम्पर्क गर्नुहोस्।",
|
||||
"1003": "रकम प्रति कारोबार वा दैनिक सीमाभन्दा बढी छ। रकम समायोजन गर्नुहोस्।",
|
||||
"1004": "ट्रान्सफर इन अस्थायी रूपमा रोकिएको छ। पछि प्रयास गर्नुहोस् वा support सम्पर्क गर्नुहोस्।",
|
||||
"1005": "मुद्रा अमान्य वा उपलब्ध छैन।",
|
||||
"1006": "ट्रान्सफर आउट अस्थायी रूपमा रोकिएको छ। पछि प्रयास गर्नुहोस् वा support सम्पर्क गर्नुहोस्।",
|
||||
"1007": "लटरी वालेट freeze छ र रकम सार्न सकिँदैन।",
|
||||
"1008": "रकम ढाँचा अमान्य छ।",
|
||||
"1009": "मुख्य साइटले यो ट्रान्सफर पूरा गर्न सकेन। कृपया पछि प्रयास गर्नुहोस्।",
|
||||
"1010": "फरक रकमका ट्रान्सफरका लागि एउटै idempotency key प्रयोग नगर्नुहोस्।"
|
||||
}
|
||||
},
|
||||
"orders": {
|
||||
"title": "मेरा बेट",
|
||||
"subtitle": "हालका टिकट रेकर्ड",
|
||||
"betDetail": "बेट विवरण",
|
||||
"filteredIssue": "फिल्टर गरिएको इश्यू",
|
||||
"totalRecords": "कुल रेकर्ड",
|
||||
"betNow": "अहिले बेट",
|
||||
"empty": "अहिलेसम्म बेट रेकर्ड छैन।",
|
||||
"submitBet": "बेट पेश गर्नुहोस्",
|
||||
"stake": "बेट",
|
||||
"deduction": "कट्टा",
|
||||
"win": "जित {{amount}}",
|
||||
"detailTitle": "टिकट विवरण",
|
||||
"ticketNo": "टिकट {{ticketNo}}",
|
||||
"orderNo": "अर्डर {{orderNo}}",
|
||||
"drawNo": "इश्यू",
|
||||
"placedAt": "राखेको समय",
|
||||
"number": "नम्बर",
|
||||
"play": "प्ले",
|
||||
"amount": "बेट रकम",
|
||||
"rebateRate": "रिबेट दर",
|
||||
"actualDeduct": "वास्तविक कट्टा",
|
||||
"oddsSnapshot": "Odds snapshot",
|
||||
"drawNumbers": "ड्र नम्बरहरू (यो इश्यू)",
|
||||
"firstPrize": "पहिलो पुरस्कार",
|
||||
"hit": "हिट",
|
||||
"notPublished": "यस इश्यूका ड्र नम्बर प्रकाशित छैनन् वा देखाउन मिल्दैन।",
|
||||
"matchWin": "मिलान नतिजा: {{tier}} हिट",
|
||||
"winAmount": "जित रकम {{amount}}",
|
||||
"jackpotAmount": "Jackpot {{amount}}",
|
||||
"payoutTotal": "कुल भुक्तानी {{amount}}",
|
||||
"matchLose": "मिलान नतिजा: जितेन",
|
||||
"settledAt": "सेटल समय {{time}}",
|
||||
"viewDraw": "यो ड्र हेर्नुहोस्",
|
||||
"backToOrders": "मेरा बेटमा फर्कनुहोस्",
|
||||
"notFound": "टिकट छैन वा हेर्न अनुमति छैन।",
|
||||
"noData": "डेटा छैन",
|
||||
"loadFailed": "लोड असफल"
|
||||
},
|
||||
"results": {
|
||||
"title": "नतिजा",
|
||||
"subtitle": "हालका ड्र इतिहास",
|
||||
"detailTitle": "नतिजा विवरण",
|
||||
"businessDate": "व्यावसायिक मिति",
|
||||
"empty": "अहिलेसम्म नतिजा छैन।",
|
||||
"detail": "विवरण",
|
||||
"loadFailed": "लोड असफल",
|
||||
"unavailable": "यो नतिजा उपलब्ध छैन वा अस्तित्वमा छैन।",
|
||||
"noData": "डेटा छैन",
|
||||
"previous": "‹ अघिल्लो",
|
||||
"next": "अर्को ›",
|
||||
"drawTime": "ड्र समय: {{time}}",
|
||||
"myPayout": "यस इश्यूमा मेरो भुक्तानी",
|
||||
"regular": "सामान्य: {{amount}}",
|
||||
"jackpot": "Jackpot: {{amount}}",
|
||||
"hitPending": "तपाईंको टिकटले यस इश्यूको नतिजा सेल हिट गरेको छ। भुक्तानी पूरा भएपछि रकम देखिनेछ।",
|
||||
"hitHint": "तपाईं जित्नुभयो भने, तपाईंका टिकटसँग मिलेका नम्बरहरू सुनौलो रंगमा देखिन्छन् (लगइन आवश्यक)।",
|
||||
"viewMyWinning": "मेरो जित स्थिति हेर्नुहोस्",
|
||||
"jackpotLabel": "Jackpot",
|
||||
"tier": {
|
||||
"first": "पहिलो पुरस्कार",
|
||||
"second": "दोस्रो पुरस्कार",
|
||||
"third": "तेस्रो पुरस्कार",
|
||||
"starter": "Starter",
|
||||
"consolation": "Consolation"
|
||||
},
|
||||
"grid": {
|
||||
"first": "पहिलो पुरस्कार",
|
||||
"second": "दोस्रो पुरस्कार",
|
||||
"third": "तेस्रो पुरस्कार",
|
||||
"starter": "Starter",
|
||||
"consolation": "Consolation"
|
||||
}
|
||||
},
|
||||
"ticketStatus": {
|
||||
"success": "ड्र पर्खँदै",
|
||||
"settled_win": "भुक्तानी भयो",
|
||||
"settled_lose": "जितेन",
|
||||
"unknown": "{{status}}"
|
||||
},
|
||||
"prizeTier": {
|
||||
"first": "पहिलो पुरस्कार",
|
||||
"second": "दोस्रो पुरस्कार",
|
||||
"third": "तेस्रो पुरस्कार",
|
||||
"starter": "Starter",
|
||||
"consolation": "Consolation"
|
||||
},
|
||||
"playLabels": {
|
||||
"big": "ठूलो",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,9 @@
|
||||
"pending": "待处理",
|
||||
"failed": "失败"
|
||||
},
|
||||
"navigation": {
|
||||
"notifications": "通知"
|
||||
},
|
||||
"errors": {
|
||||
"general": "通用"
|
||||
}
|
||||
|
||||
397
src/i18n/locales/zh/player.json
Normal file
397
src/i18n/locales/zh/player.json
Normal file
@@ -0,0 +1,397 @@
|
||||
{
|
||||
"brand": {
|
||||
"name": "N lotto"
|
||||
},
|
||||
"actions": {
|
||||
"retry": "重试",
|
||||
"refresh": "刷新",
|
||||
"apply": "应用",
|
||||
"clear": "清除",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"loading": "加载中...",
|
||||
"loadMore": "加载更多",
|
||||
"processing": "处理中...",
|
||||
"deleteRow": "删除第 {{row}} 行"
|
||||
},
|
||||
"nav": {
|
||||
"aria": "主导航",
|
||||
"home": "首页",
|
||||
"results": "开奖结果",
|
||||
"orders": "我的注单",
|
||||
"wallet": "钱包"
|
||||
},
|
||||
"panel": {
|
||||
"home": "首页"
|
||||
},
|
||||
"network": {
|
||||
"offline": "网络已断开,请检查网络连接",
|
||||
"degraded": "网络不稳定,已切换至降级模式(轮询中...)",
|
||||
"retryReconnect": "尝试重连",
|
||||
"retry": "重试",
|
||||
"recoverWebsocket": "尝试恢复 WebSocket 连接",
|
||||
"recover": "恢复",
|
||||
"reconnect": "重新连接"
|
||||
},
|
||||
"token": {
|
||||
"critical": "登录即将失效",
|
||||
"warning": "登录即将过期",
|
||||
"remaining": "剩余 {{time}}",
|
||||
"autoRenewing": "正在自动续签...",
|
||||
"renewNow": "立即续签"
|
||||
},
|
||||
"serverError": {
|
||||
"title": "服务器错误",
|
||||
"appTitle": "应用发生错误",
|
||||
"unavailable": "服务器暂时不可用",
|
||||
"serverMessage": "服务器暂时不可用,请稍后重试",
|
||||
"appMessage": "抱歉,应用遇到了问题,请尝试刷新页面",
|
||||
"details": "错误详情:",
|
||||
"errorId": "错误 ID: {{id}}",
|
||||
"refreshPage": "刷新页面",
|
||||
"hall": "投注大厅",
|
||||
"wallet": "我的钱包",
|
||||
"code": "错误代码: 500 Internal Server Error",
|
||||
"home": "返回首页"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "页面不存在",
|
||||
"description": "抱歉,您访问的页面可能已被删除、移动或从未存在过。",
|
||||
"home": "返回首页",
|
||||
"hall": "投注大厅",
|
||||
"results": "开奖结果",
|
||||
"wallet": "我的钱包"
|
||||
},
|
||||
"player": {
|
||||
"fallback": "玩家 #{{id}}"
|
||||
},
|
||||
"draw": {
|
||||
"currentIssue": "当前期号",
|
||||
"currentTime": "当前时间",
|
||||
"closesIn": "距封盘",
|
||||
"drawsIn": "距开奖",
|
||||
"coolDown": "冷静期",
|
||||
"loadFailedRefresh": "加载失败,请下拉刷新",
|
||||
"issueNo": "期号",
|
||||
"hall": "下注大厅",
|
||||
"noIssue": "暂无可用期号,请稍后再试",
|
||||
"sealedNotice": "已封盘,请等待下一期。",
|
||||
"status": {
|
||||
"pending": "未开始",
|
||||
"open": "可下注",
|
||||
"closing": "已封盘",
|
||||
"closed": "待开奖",
|
||||
"drawing": "开奖中",
|
||||
"review": "待审核",
|
||||
"cooldown": "冷静期",
|
||||
"settling": "结算中",
|
||||
"settled": "已结算",
|
||||
"cancelled": "已取消"
|
||||
}
|
||||
},
|
||||
"hall": {
|
||||
"aria": "下注表格",
|
||||
"loadingError": "加载玩法失败,请稍后重试。",
|
||||
"noDraw": "暂无当期期号,无法提交。",
|
||||
"notBettable": "当前已封盘或不可下注。",
|
||||
"catalogNotReady": "玩法配置尚未加载完成。",
|
||||
"emptyLines": "请至少填写一组有效号码和下注金额。",
|
||||
"previewFailed": "预览失败",
|
||||
"closedSubmit": "已封盘,无法提交。",
|
||||
"changedBeforeSubmit": "提交前数据已变化,请关闭预览后重试。",
|
||||
"placeFailed": "提交失败",
|
||||
"placeSuccess": "下注成功,订单号 {{orderNo}},实扣 {{amount}}。",
|
||||
"closed": {
|
||||
"title": "已封盘",
|
||||
"subtitle": "当前期已停止接收注单。",
|
||||
"description": "下注窗口已关闭,请等待下一期再下注。"
|
||||
},
|
||||
"boxMode": {
|
||||
"iboxTitle": "iBox",
|
||||
"iboxDesc": "按金额分摊全部组合",
|
||||
"boxTitle": "Box",
|
||||
"boxDesc": "按金额乘以全部组合"
|
||||
},
|
||||
"table": {
|
||||
"no": "序号",
|
||||
"number": "号码",
|
||||
"stake": "下注金额",
|
||||
"rebate": "佣金 / 回水",
|
||||
"actual": "实扣金额",
|
||||
"delete": "删除",
|
||||
"addRow": "添加一行",
|
||||
"draftTotal": "草稿合计",
|
||||
"sealedHint": "已封盘:当前表格不可编辑,请等待下一期。",
|
||||
"previewing": "预览中...",
|
||||
"submitBet": "提交下注"
|
||||
},
|
||||
"preview": {
|
||||
"title": "确认下注",
|
||||
"description": "请核对号码、玩法与实扣金额;确认后将扣减彩票钱包且不可撤单。",
|
||||
"sealedTitle": "已封盘",
|
||||
"sealedDescription": "当前期已停止接收注单,无法提交。请选择下一期。",
|
||||
"empty": "暂无预览数据",
|
||||
"draw": "期号",
|
||||
"status": "状态",
|
||||
"totalBet": "总下注",
|
||||
"rebateDeduct": "回水抵扣",
|
||||
"actualDeduct": "实扣金额",
|
||||
"estimatedPayout": "预估最高赔付",
|
||||
"lines": "注项明细",
|
||||
"normalizedNumber": "归一号码",
|
||||
"combinationCount": "组合数",
|
||||
"actual": "实扣",
|
||||
"estimatedMax": "预估最高赔",
|
||||
"backEdit": "返回修改",
|
||||
"submitting": "提交中...",
|
||||
"confirmSubmit": "确认提交",
|
||||
"warningsTitle": "赔付池预警",
|
||||
"warningsDescription": "以下号码本期赔付池占用较高,仍允许下注;若实际占用不足将售罄拒单。"
|
||||
},
|
||||
"amountInput": {
|
||||
"limit": "限额 {{min}} - {{max}}",
|
||||
"placeholder": "例如 100.00"
|
||||
},
|
||||
"numberInput": {
|
||||
"rollPlaceholder": "如 12R4",
|
||||
"digitPlaceholder": "0-9"
|
||||
},
|
||||
"playSwitcher": {
|
||||
"empty": "当前币种下没有可下注的开放玩法。",
|
||||
"label": "玩法"
|
||||
},
|
||||
"playCatalog": {
|
||||
"notReady": "玩法配置尚未初始化。请在 Laravel 执行含 OperationalConfigV1Seeder 的 seed。",
|
||||
"loadFailed": "加载玩法配置失败,请稍后重试。",
|
||||
"loading": "加载玩法与赔率...",
|
||||
"meta": "币种 {{currency}} · 配置版本 play#{{playVersion}} / odds#{{oddsVersion}} · 限额单位为最小货币单位(与钱包一致)。",
|
||||
"play": "玩法",
|
||||
"status": "状态",
|
||||
"limit": "下注限额",
|
||||
"odds": "赔率×",
|
||||
"description": "说明",
|
||||
"open": "开放",
|
||||
"closed": "关闭",
|
||||
"riskTitle": "风控封顶(示例号码)",
|
||||
"number": "号码",
|
||||
"capAmount": "封顶额",
|
||||
"type": "类型",
|
||||
"title": "玩法与赔率",
|
||||
"descriptionText": "数据来自 GET /api/v1/play/effective;后台修改并发布后,最长约 {{seconds}}s 内自动刷新,也可手动刷新。",
|
||||
"refresh": "刷新配置"
|
||||
},
|
||||
"ticketError": {
|
||||
"4001": "该号码本期赔付池不足,已售罄。请更换号码、金额或玩法后重试。",
|
||||
"1001": "余额不足,请先转入后再下注。",
|
||||
"2001": "本期已封盘,无法继续下注。",
|
||||
"2002": "该玩法已关闭,请选择其他玩法。",
|
||||
"2004": "号码格式或长度不符合该玩法要求。",
|
||||
"2005": "玩法参数不完整(如单双大小需选择位数与维度)。",
|
||||
"2006": "当前期号不可下注。",
|
||||
"2007": "该玩法暂不支持或缺少赔率配置。",
|
||||
"2008": "赔率或玩法配置已更新,请关闭预览后重新操作。",
|
||||
"1003": "下注金额超出该玩法允许范围。",
|
||||
"fallback": "下注失败,请稍后重试。"
|
||||
},
|
||||
"amountHint": {
|
||||
"iboxRoll": "本玩法金额为单注金额,系统按展开组合数计算总下注与实扣。",
|
||||
"mbox": "本玩法金额为总输入金额,将均摊到各排列组合(向下取整到最小单位)。",
|
||||
"default": "金额为该笔注单的下注额(最小货币单位整数,与钱包一致)。"
|
||||
}
|
||||
},
|
||||
"wallet": {
|
||||
"title": "钱包",
|
||||
"subtitle": "余额与划转记录",
|
||||
"balance": "钱包余额",
|
||||
"available": "可用 {{amount}}",
|
||||
"transferIn": "转入",
|
||||
"transferOut": "转出",
|
||||
"inPage": "转入页",
|
||||
"outPage": "转出页",
|
||||
"logs": "流水",
|
||||
"logsTitle": "钱包流水",
|
||||
"logsSubtitle": "划转与下注记录",
|
||||
"typeFilter": "类型筛选",
|
||||
"transferInTitle": "转入资金",
|
||||
"transferOutTitle": "转出资金",
|
||||
"transferInSubtitle": "转入彩票钱包({{currency}})",
|
||||
"transferOutSubtitle": "转回主站钱包({{currency}})",
|
||||
"transferInDescription": "从主站钱包划入彩票钱包,单笔限额以服务端校验为准。",
|
||||
"transferOutDescription": "划回主站钱包;单笔限额以服务端校验为准。",
|
||||
"dialogInDescription": "从主站钱包划入彩票钱包(最小单笔以服务端校验为准,默认约 1.00 {{currency}})。",
|
||||
"dialogOutDescription": "划回主站钱包;单笔限额以服务端校验为准。",
|
||||
"mainBalance": "主站钱包余额:",
|
||||
"mainPending": "—(待接入主站)",
|
||||
"lotteryBalance": "彩票钱包余额:",
|
||||
"lotteryAvailable": "彩票钱包可用:",
|
||||
"inAmount": "转入金额",
|
||||
"outAmount": "转出金额",
|
||||
"exampleIn": "例如 1000.00",
|
||||
"exampleOut": "例如 500.00",
|
||||
"afterInPreview": "转入后彩票余额(预览): {{amount}}",
|
||||
"afterOutPreview": "转出后彩票余额(预览): {{amount}}",
|
||||
"allOut": "全部转出 {{amount}}",
|
||||
"confirmIn": "确认转入",
|
||||
"confirmOut": "确认转出",
|
||||
"successIn": "转入成功,彩票钱包余额已更新。",
|
||||
"successOut": "转出成功,资金将返回主站钱包。",
|
||||
"pendingShort": "转账处理中,请稍后刷新。",
|
||||
"pendingToast": "处理中...",
|
||||
"invalidAmount": "请输入有效金额。",
|
||||
"outExceeds": "转出金额不能超过可用余额。",
|
||||
"pendingTitle": "待对账",
|
||||
"pendingDescription": "以下划转主站结果未最终确认;若长时间未到账请联系客服。",
|
||||
"pendingStatus": "处理中",
|
||||
"flowsTitle": "资金流水",
|
||||
"totalRecords": "共 {{total}} 条记录",
|
||||
"emptyLogs": "暂无流水",
|
||||
"flow": {
|
||||
"all": "全部",
|
||||
"transfer_in": "转入",
|
||||
"transfer_out": "转出",
|
||||
"bet": "下注扣款",
|
||||
"prize": "派彩",
|
||||
"refund": "退本",
|
||||
"reversal": "冲正"
|
||||
},
|
||||
"txnStatus": {
|
||||
"posted": "成功",
|
||||
"pending_reconcile": "待对账",
|
||||
"reversed": "已冲正",
|
||||
"manually_processed": "已人工处理"
|
||||
},
|
||||
"error": {
|
||||
"401": "登录已失效,请返回重新进入。",
|
||||
"409": "转账处理中,请稍后刷新;若长时间未到账请联系客服。",
|
||||
"network": "网络异常,请检查连接后重试。",
|
||||
"timeout": "请求超时,请稍后重试。",
|
||||
"fallback": "请求失败,请稍后重试。",
|
||||
"1001": "彩票钱包余额不足,请转入或减少转出金额。",
|
||||
"1002": "转账处理中,请稍后在本页刷新余额;若长时间未到账请联系客服。",
|
||||
"1003": "金额超出单笔或每日限额,请调整金额。",
|
||||
"1004": "当前已暂停转入,请稍后再试或联系客服。",
|
||||
"1005": "币种无效或未开通。",
|
||||
"1006": "当前已暂停转出,请稍后再试或联系客服。",
|
||||
"1007": "彩票钱包已冻结,暂无法划转。",
|
||||
"1008": "金额格式不正确。",
|
||||
"1009": "主站未能完成本次划转,请稍后重试。",
|
||||
"1010": "请勿用同一幂等键发起不同金额的转账。"
|
||||
}
|
||||
},
|
||||
"orders": {
|
||||
"title": "我的注单",
|
||||
"subtitle": "最近下注记录",
|
||||
"betDetail": "注单详情",
|
||||
"filteredIssue": "已筛选期号",
|
||||
"totalRecords": "总记录数",
|
||||
"betNow": "立即下注",
|
||||
"empty": "暂无下注记录。",
|
||||
"submitBet": "提交下注",
|
||||
"stake": "下注",
|
||||
"deduction": "实扣",
|
||||
"win": "中奖 {{amount}}",
|
||||
"detailTitle": "注单详情",
|
||||
"ticketNo": "注单号 {{ticketNo}}",
|
||||
"orderNo": "订单 {{orderNo}}",
|
||||
"drawNo": "期号",
|
||||
"placedAt": "下单时间",
|
||||
"number": "号码",
|
||||
"play": "玩法",
|
||||
"amount": "下注金额",
|
||||
"rebateRate": "回水率",
|
||||
"actualDeduct": "实扣金额",
|
||||
"oddsSnapshot": "赔率快照",
|
||||
"drawNumbers": "开奖号码(本期)",
|
||||
"firstPrize": "头奖",
|
||||
"hit": "命中",
|
||||
"notPublished": "本期开奖号码尚未发布或不可展示。",
|
||||
"matchWin": "匹配结果:命中 {{tier}}",
|
||||
"winAmount": "中奖金额 {{amount}}",
|
||||
"jackpotAmount": "Jackpot {{amount}}",
|
||||
"payoutTotal": "派彩合计 {{amount}}",
|
||||
"matchLose": "匹配结果:未中奖",
|
||||
"settledAt": "结算时间 {{time}}",
|
||||
"viewDraw": "查看本期开奖",
|
||||
"backToOrders": "返回我的注单",
|
||||
"notFound": "注单不存在或无权查看",
|
||||
"noData": "无数据",
|
||||
"loadFailed": "加载失败"
|
||||
},
|
||||
"results": {
|
||||
"title": "开奖结果",
|
||||
"subtitle": "最新开奖历史",
|
||||
"detailTitle": "开奖详情",
|
||||
"businessDate": "业务日期",
|
||||
"empty": "暂无开奖结果。",
|
||||
"detail": "详情",
|
||||
"loadFailed": "加载失败",
|
||||
"unavailable": "该期开奖结果不可用或不存在",
|
||||
"noData": "无数据",
|
||||
"previous": "‹ 上一期",
|
||||
"next": "下一期 ›",
|
||||
"drawTime": "开奖时间: {{time}}",
|
||||
"myPayout": "本期我的派彩",
|
||||
"regular": "常规:{{amount}}",
|
||||
"jackpot": "Jackpot:{{amount}}",
|
||||
"hitPending": "您的注单已命中本期开奖号码中的格子;派彩完成后将显示金额汇总。",
|
||||
"hitHint": "如果您中奖,与注单匹配的号码将以金色高亮显示(需登录)。",
|
||||
"viewMyWinning": "查看我的中奖情况",
|
||||
"jackpotLabel": "Jackpot",
|
||||
"tier": {
|
||||
"first": "头奖",
|
||||
"second": "二奖",
|
||||
"third": "三奖",
|
||||
"starter": "特别奖",
|
||||
"consolation": "安慰奖"
|
||||
},
|
||||
"grid": {
|
||||
"first": "头奖",
|
||||
"second": "二奖",
|
||||
"third": "三奖",
|
||||
"starter": "特别奖",
|
||||
"consolation": "安慰奖"
|
||||
}
|
||||
},
|
||||
"ticketStatus": {
|
||||
"success": "待开奖",
|
||||
"settled_win": "已派彩",
|
||||
"settled_lose": "未中奖",
|
||||
"unknown": "{{status}}"
|
||||
},
|
||||
"prizeTier": {
|
||||
"first": "头奖",
|
||||
"second": "二奖",
|
||||
"third": "三奖",
|
||||
"starter": "特别奖",
|
||||
"consolation": "安慰奖"
|
||||
},
|
||||
"playLabels": {
|
||||
"big": "大",
|
||||
"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": "头",
|
||||
"tail": "尾",
|
||||
"odd": "单",
|
||||
"even": "双",
|
||||
"digit_big": "位数大",
|
||||
"digit_small": "位数小"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user