feat: 统一管理端多语言、配置与票据/结算页面重构

This commit is contained in:
2026-05-20 16:27:06 +08:00
parent 37b13278ef
commit 08a11a1589
81 changed files with 2059 additions and 490 deletions

View File

@@ -5,15 +5,14 @@
"sidebarTitle": "सञ्चालन कन्फिगरेसन",
"groups": {
"betting": "बेटिङ र प्रदर्शन",
"risk_wallet": "जोखिम र कोष"
"risk": "जोखिम नियन्त्रण"
},
"items": {
"plays": "खेल प्रकार र सीमा",
"odds": "अड्स",
"rebate": "कमिसन / रिबेट",
"jackpot": "Jackpot पूल",
"risk-cap": "पेमेन्ट क्याप",
"wallet": "वालेट थ्रेसहोल्ड"
"risk-cap": "पेमेन्ट क्याप"
}
},
"versionStatus": {
@@ -70,6 +69,31 @@
},
"discard": "परिवर्तन त्याग्नुहोस्"
},
"system": {
"title": "ड्रअ र सेटलमेन्ट रनटाइम सेटिङ",
"runtimeTitle": "ग्लोबल रनटाइम प्यारामिटर",
"runtimeIntro1": "यहाँ खेल प्रकार, अड्स वा जोखिम संस्करणमा नपर्ने ग्लोबल प्रणाली प्यारामिटर राखिन्छ। यसले वालेट ट्रान्सफर, कार्य स्विच र प्रणाली सञ्चालन नीतिमा सीधा असर गर्छ।",
"runtimeIntro2": "खेल प्रकार, अड्स, रिबेट र क्याप अझै पनि सञ्चालन कन्फिगरेसनमै रहन्छन्। प्रणाली सेटिङले मात्र क्रस-मोड्युल रनटाइम प्यारामिटर सम्हाल्छ ताकि प्रशासनिक जिम्मेवारी नदोहोरोस्।",
"description": "RNG ड्रअपछि समीक्षा प्रवाह, कूलडाउन अवधि र स्वचालित सेटलमेन्ट व्यवहार नियन्त्रण गर्छ। यी ग्लोबल रनटाइम नीति हुन् र संस्करणयुक्त सञ्चालन कन्फिगरेसनमा पर्दैनन्।",
"loadFailed": "प्रणाली सेटिङ लोड असफल भयो",
"saveSuccess": "प्रणाली सेटिङ सुरक्षित भयो",
"saveFailed": "प्रणाली सेटिङ सुरक्षित गर्न असफल",
"fields": {
"manualReview": "ड्रअ परिणामका लागि म्यानुअल समीक्षा चाहिने",
"cooldownMinutes": "कूलडाउन अवधि (मिनेट)",
"autoSettlement": "सेटलमेन्ट स्वतः चलाउने"
},
"hints": {
"manualReview": "सक्रिय हुँदा RNG ड्रअ परिणाम pending review मा जान्छ र एडमिनबाट म्यानुअल रूपमा प्रकाशित गर्नुपर्छ।",
"cooldownMinutes": "प्रकाशनपछि settling मा जानुअघि कति समय पर्खने। 0 राखे तुरुन्त सेटलमेन्ट सुरु हुन्छ।",
"autoSettlement": "बन्द हुँदा tick ले सेटलमेन्ट स्वतः चलाउँदैन र एडमिनले म्यानुअल रूपमा ट्रिगर गर्नुपर्छ।"
},
"states": {
"enabled": "सक्रिय",
"disabled": "बन्द"
},
"discard": "परिवर्तन त्याग्नुहोस्"
},
"play": {
"batchGroups": {
"d2": "2D ग्लोबल",
@@ -79,6 +103,164 @@
"position": "स्थिति खेलहरू",
"box": "बक्स खेलहरू",
"jackpot": "Jackpot"
},
"validation": {
"minMaxInvalid": "{{playCode}}: न्यूनतम बेट अधिकतम बेटभन्दा ठूलो हुन सक्दैन"
},
"publishFailed": "प्रकाशन असफल भयो",
"createDraftSuccess": "ड्राफ्ट v{{version}} सिर्जना भयो",
"createDraftFailed": "ड्राफ्ट सिर्जना असफल भयो",
"ruleSavedLocal": "नियम पाठ स्थानीय ड्राफ्टमा सुरक्षित भयो। स्थायी बनाउन ड्राफ्ट सेभ गर्नुहोस्।",
"deleteFailed": "मेटाउन असफल",
"activeVersion": "हाल सक्रिय संस्करण v{{version}}",
"readOnlyHint": "सीमा र नियमहरू केवल पढ्न मिल्ने छन्। पहिले ड्राफ्ट बनाउनुहोस्।",
"batchSwitchesTitle": "समूह स्विचहरू",
"batchSwitchesDesc": "यसले हालको ड्राफ्ट मात्र अपडेट गर्छ। सेभ र प्रकाशित गरेपछि खेलाडीको बेटिङ तालिका रिफ्रेस हुन्छ।",
"readOnlyDraftHint": "हालको संस्करण केवल पढ्न मिल्ने छ। पहिले ड्राफ्ट बनाउनुहोस्।",
"batchEnabledCount": "{{enabledCount}}/{{total}} सक्रिय",
"noPlayTypes": "खेल प्रकार छैन",
"actions": {
"enable": "सक्रिय",
"disable": "निष्क्रिय",
"ruleText": "नियम पाठ"
},
"table": {
"playCode": "खेल कोड",
"category": "श्रेणी",
"status": "स्थिति",
"displayName": "प्रदर्शित नाम",
"order": "क्रम",
"minBet": "न्यूनतम बेट",
"maxBet": "अधिकतम बेट",
"actions": "कार्य"
},
"states": {
"enabled": "सक्रिय",
"disabled": "बन्द",
"readOnly": "केवल पढ्न मिल्ने"
},
"aria": {
"enablePlay": "{{playCode}} सक्रिय गर्ने"
},
"ruleDialog": {
"title": "नियम पाठ (Chinese)",
"description": "खेल {{playCode}}। परिवर्तनहरू सेभ र प्रकाशित नगरेसम्म ड्राफ्टमै रहन्छन्।",
"fieldLabel": "rule_text_zh",
"apply": "ड्राफ्टमा लागू गर्नुहोस्"
}
},
"odds": {
"tabs": {
"all": "सबै"
},
"category": "श्रेणी",
"playType": "खेल प्रकार",
"noPlayTypes": "यस श्रेणीमा खेल प्रकार छैन।",
"sheetDescription": "यहाँ हेर्नका लागि एउटा संस्करण छान्नुहोस्। गैर-ड्राफ्ट संस्करणलाई नयाँ ड्राफ्टमा रोलब्याक गर्न सकिन्छ।",
"activeVersionPrefix": "हाल सक्रिय संस्करण:",
"readOnlyHint": "यो संस्करण केवल पढ्न मिल्ने छ। अड्स सम्पादन गर्नुअघि ड्राफ्ट बनाउनुहोस्।",
"loadingDetails": "विवरण लोड हुँदैछ…",
"multiplier": "गुणक x{{value}} · {{currency}}",
"missingScopeRow": "{{scope}} को row हराइरहेको छ। seed वा version data जाँच गर्नुहोस्।",
"rebateRate": "रिबेट दर (%)",
"rebateRateHint": "यसले यो खेल प्रकारअन्तर्गत सबै prize scope मा rebate_rate लेख्छ।",
"publishFailed": "प्रकाशन असफल भयो",
"createDraftSuccess": "ड्राफ्ट v{{version}} सिर्जना भयो",
"createDraftFailed": "ड्राफ्ट सिर्जना असफल भयो",
"rollbackSuccess": "v{{fromVersion}} बाट नयाँ ड्राफ्ट v{{version}} क्लोन गरियो",
"rollbackFailed": "रोलब्याक असफल भयो",
"deleteFailed": "मेटाउन असफल",
"rollbackDialog": {
"title": "रोलब्याक पुष्टि गर्नुहोस्",
"description": "संस्करण v{{version}} बाट नयाँ ड्राफ्ट क्लोन हुनेछ। हाल सक्रिय संस्करण प्रत्यक्ष रूपमा ओभरराइट हुँदैन।",
"confirm": "रोलब्याक पुष्टि गर्नुहोस्"
},
"publishDialog": {
"title": "अड्स संस्करण प्रकाशित गर्ने?",
"description": "नयाँ अड्सले तुरुन्तै नयाँ टिकटहरूमा असर गर्छ। सफल भइसकेका टिकटहरू आफ्नो सुरक्षित odds snapshot अनुसार नै सेटल हुन्छन्।",
"confirm": "प्रकाशन पुष्टि गर्नुहोस्",
"columns": {
"prizeScope": "पुरस्कार दायरा",
"currentActive": "हाल सक्रिय",
"afterPublish": "प्रकाशनपछि"
}
}
},
"rebate": {
"sheetDescription": "रिबेट अड्स ड्राफ्ट संस्करणमा राखिन्छ र अड्ससँग एउटै संस्करण सेट साझा गर्छ।",
"publishLabel": "प्रकाशन",
"publishSuccess": "रिबेटसहितको अड्स संस्करण प्रकाशित भयो",
"publishFailed": "प्रकाशन असफल भयो",
"createDraftSuccess": "ड्राफ्ट v{{version}} सिर्जना भयो",
"createDraftFailed": "ड्राफ्ट सिर्जना असफल भयो",
"deleteFailed": "मेटाउन असफल",
"editingVersion": "सम्पादन भइरहेको संस्करण v{{version}} · {{status}}",
"readOnlyHint": "रिबेट सम्पादन गर्नुअघि ड्राफ्ट बनाउनुहोस्।",
"fields": {
"d2": "2D रिबेट दर (%)",
"d3": "3D रिबेट दर (%)",
"d4": "4D रिबेट दर (%)"
},
"winEnjoy": {
"label": "जितेका टिकटहरूमा पनि रिबेट लागू गर्ने",
"description": "यो placeholder field हो। पछि risk र settlement नियमसँग मिलाएर स्थायी रूपमा राख्न सकिन्छ।"
},
"effectiveTime": "लागू समय (हाल सक्रिय अड्स संस्करण)"
},
"riskCap": {
"validation": {
"requireAtLeastOne": "कम्तीमा एक क्याप row आवश्यक छ",
"defaultGreaterThanZero": "पूर्वनिर्धारित क्याप रकम 0 भन्दा ठूलो हुनुपर्छ",
"numberMustBe4Digits": "नम्बर 4 अङ्कको हुनुपर्छ: {{number}}",
"enterValidCapAmount": "मान्य क्याप रकम प्रविष्ट गर्नुहोस्"
},
"publishFailed": "प्रकाशन असफल भयो",
"createDraftSuccess": "ड्राफ्ट v{{version}} सिर्जना भयो",
"createDraftFailed": "ड्राफ्ट सिर्जना असफल भयो",
"savedLocalDraft": "स्थानीय ड्राफ्टमा सुरक्षित भयो। स्थायी बनाउन ड्राफ्ट सेभ गर्नुहोस्।",
"deleteFailed": "मेटाउन असफल",
"effectiveAt": "लागू समय: {{value}}",
"note": "टिप्पणी: {{value}}",
"readOnlyHint": "केवल पढ्न मिल्ने। पहिले ड्राफ्ट बनाउनुहोस्।",
"readOnly": "केवल पढ्न मिल्ने",
"defaultCap": {
"title": "पूर्वनिर्धारित क्याप",
"description": "विशेष क्याप नभएका नम्बरहरूमा यही पूर्वनिर्धारित क्याप टेम्प्लेट लागू हुन्छ।",
"fieldLabel": "क्याप रकम (सानो एकाइ)"
},
"specialCaps": {
"title": "विशेष क्यापहरू"
},
"loadingDetails": "विवरण लोड हुँदैछ…",
"noDetailRows": "विवरण row छैन।",
"table": {
"number": "नम्बर",
"capAmount": "क्याप रकम",
"used": "प्रयोग भएको",
"remaining": "बाँकी",
"soldOut": "सोल्ड आउट",
"ratio": "अनुपात",
"actions": "कार्य"
},
"occupancy": {
"title": "सबै नम्बर occupancy",
"description": "यो placeholder दृश्य हो। filter र export ले ticket-summary एकीकरण अझै चाहिन्छ। तलको data अहिले पनि हालको ड्राफ्ट सूचीबाट आउँछ।",
"searchLabel": "नम्बर खोज्नुहोस्",
"searchPlaceholder": "जस्तै 8888",
"filterPending": "Sold-out / high-risk preset filter अझै एकीकृत भएको छैन",
"exportPending": "CSV export अझै एकीकृत भएको छैन"
},
"actions": {
"update": "अपडेट",
"addSpecialCap": "+ विशेष क्याप थप्नुहोस्",
"filterPresets": "प्रिसेट फिल्टर…",
"exportCsv": "CSV निर्यात",
"close": "बन्द"
},
"syncDialog": {
"title": "पूर्वनिर्धारित क्याप मिलाउनुहोस्",
"description": "पूर्वनिर्धारित क्याप टेम्प्लेट {{value}} मा सेट हुनेछ। यसले ड्राफ्ट मात्र बदल्छ। पुष्टि पछि सेभ र प्रकाशित गर्नुहोस्।",
"confirm": "पुष्टि"
}
}
}