{ "currencies": { "actions": { "backToSettings": "Back to settings", "create": "Add currency", "delete": "Delete", "edit": "Edit", "openStandalone": "Open dedicated page" }, "createFailed": "Failed to create currency", "createSuccess": "Currency created", "deleteDialog": { "description": "Delete currency {{code}}? The system blocks deletion when it is still referenced by defaults, wallets, tickets, odds, or jackpot data.", "title": "Delete currency?" }, "deleteFailed": "Failed to delete currency", "deleteSuccess": "Currency {{code}} deleted", "description": "Maintain currency master data for admin operations and control whether a currency is enabled or allowed for betting.", "dialog": { "createTitle": "Add currency", "description": "Currency code is immutable after creation. Disabling a currency also turns off bettable status.", "editTitle": "Edit currency" }, "empty": "No currencies yet.", "form": { "bettable": "Allow betting", "bettableHint": "Only enabled currencies can be marked as bettable.", "code": "Currency code", "codePlaceholder": "Enter currency code, for example NPR", "decimalInvalid": "Enter a valid decimal place value", "decimals": "Decimal places", "decimalsPlaceholder": "Enter decimal places, for example 2", "enabled": "Enabled status", "enabledHint": "Disabled currencies should not be used for new business.", "name": "Currency name", "namePlaceholder": "Enter currency name", "required": "Please fill in the required fields" }, "loadFailed": "Failed to load currencies", "loading": "Loading currencies…", "table": { "actions": "Actions", "bettable": "Bettable", "code": "Code", "decimals": "Decimals", "enabled": "Enabled", "name": "Name" }, "title": "Currency management", "updateFailed": "Failed to update currency", "updateSuccess": "Currency updated" }, "hub": { "description": "Jump to play rules, odds & rebate, jackpot, and risk cap by domain. The sidebar provides direct links; this page is an overview.", "integrationDesc": "site_code, JWT secrets, partner wallet URL, iframe allowlist", "integrationTitle": "Integration sites", "currenciesDesc": "Manage supported currencies and precision", "currenciesTitle": "Currencies", "jackpotDesc": "Pool parameters and ledger records", "jackpotTitle": "Jackpot", "oddsDesc": "Odds matrix and base rebate in one version stream", "oddsTitle": "Odds & base rebate", "playsDesc": "Play switches, limits, and rule copy", "playsTitle": "Play rules", "riskCapDesc": "Per-number payout caps and occupancy", "riskCapTitle": "Risk cap rules", "settingsDesc": "Payout, rebate, and other system-level parameters", "settingsTitle": "System settings", "title": "Operations configuration" }, "integrationSites": { "adminAccountCreated": "Created site admin account {{username}}", "adminAccountSectionDescription": "Creating a site will also create one admin account bound to that site.", "adminAccountSectionTitle": "Site admin account", "cancel": "Cancel", "codeImmutable": "site_code cannot be changed after creation", "columns": { "actions": "Actions", "code": "site_code", "currency": "Currency", "h5Url": "Lottery H5", "lineRoot": "Level-1 agent", "name": "Name", "ssoSecret": "SSO secret", "status": "Status", "walletApiKey": "Wallet API key", "walletUrl": "Wallet API" }, "connectivityDescription": "Call the balance API for site {{code}} using a test player.", "connectivityFailed": "Connectivity failed", "connectivityPlayerId": "Test site_player_id", "connectivityRun": "Run test", "connectivityRunning": "Testing…", "connectivitySuccess": "Connectivity OK", "connectivityTest": "Test connectivity", "connectivityTitle": "Partner wallet connectivity", "copied": "Copied {{field}}", "copy": "Copy", "copyFailed": "Copy failed", "create": "New site", "createSuccess": "Created site {{code}}", "delete": "Delete site", "deleteConfirm": "Delete", "deleteConfirmDescription": "This permanently removes site {{code}} ({{name}}), its agent line, settlement periods, players, and site admin accounts. This cannot be undone.", "deleteConfirmTitle": "Delete this site?", "deleteFailed": "Failed to delete site", "deleteSuccess": "Deleted site {{code}}", "deleting": "Deleting…", "description": "Maintain partner integration settings in admin. site_code cannot be changed after creation.", "dialogCreateTitle": "New integration site", "dialogDescription": "Default wallet paths are fine unless the partner uses custom URLs.", "dialogEditTitle": "Edit integration site", "edit": "Edit", "empty": "No integration sites", "exportFailed": "Export failed", "exportParams": "Export params", "exportSuccess": "Exported parameter sheet for {{code}}", "fields": { "adminEmail": "Email (optional)", "adminNickname": "Admin nickname", "adminPassword": "Initial password", "adminUsername": "Admin username", "code": "site_code", "currency": "Default currency", "iframeOrigins": "iframe allowlist (one origin per line)", "lotteryH5BaseUrl": "Lottery H5 base URL (optional)", "name": "Site name", "notes": "Notes", "ssoSecret": "SSO secret", "status": "Status", "walletApiKey": "Wallet API key", "walletApiUrl": "Partner wallet base URL" }, "form": { "adminNicknameRequired": "Site admin nickname is required", "adminPasswordRequired": "Initial site admin password must be at least 6 characters", "adminUsernameRequired": "Site admin username is required", "codeRequired": "site_code is required", "required": "Site name is required" }, "lineRootBound": "Bound", "lineRootUnbound": "Unbound", "loadFailed": "Failed to load integration sites", "loading": "Loading…", "noPermission": "No permission to view integration sites", "pageGuide": "Wallet-mode partners need an integration site and SSO/wallet secrets; see API docs for technical setup.", "placeholders": { "adminEmail": "Enter email", "adminNickname": "Enter account nickname", "adminPassword": "at least 6 characters", "adminUsername": "Enter admin username", "code": "Enter site identifier, for example partner-a", "connectivityPlayerId": "Enter player ID, for example 10001", "currency": "Enter currency code, for example NPR", "iframeOrigins": "Enter allowed origins, for example https://www.example.com", "lotteryH5BaseUrl": "Enter H5 URL", "name": "Enter site name", "notes": "Enter notes", "walletApiUrl": "Enter wallet API URL" }, "rotateConfirm": "Rotate", "rotateConfirmDescription": "New SSO and wallet keys will be generated for {{code}}. Old keys stop working immediately.", "rotateConfirmTitle": "Rotate secrets?", "rotateFailed": "Failed to rotate secrets", "rotateSecrets": "Rotate secrets", "rotateSuccess": "Rotated secrets for {{code}}", "save": "Save", "saveFailed": "Save failed", "saving": "Saving…", "secretCopyRequiresManage": "Integration site manage permission is required to copy secrets", "secretNotConfigured": "Secret not configured", "secretsDescription": "Secrets for {{code}} are shown only once.", "secretsDismiss": "I have saved them", "secretsTitle": "Save these secrets now", "statusDisabled": "Disabled", "statusEnabled": "Enabled", "title": "Integration sites", "updateSuccess": "Updated site {{code}}" }, "nav": { "aria": "Operations configuration sub-navigation", "groups": { "betting": "Betting and display", "risk": "Risk control" }, "items": { "jackpot": "Jackpot pool", "odds": "Odds", "plays": "Play types and limits", "rebate": "Commission / rebate", "risk-cap": "Payout caps" }, "riskCapTitle": "Risk cap rules", "rulesOddsDescription": "Odds matrix and base rebate are maintained on one page, sharing the same odds version line.", "rulesOddsDescriptionShort": "Pick a play on the left, edit odds and base rebate on the right. Agent/player rebate is added on top of this base, then save and publish.", "rulesOddsTitle": "Odds & base rebate", "rulesPlaysTitle": "Play rules", "sidebarTitle": "Operations configuration" }, "odds": { "activeVersionPrefix": "Active version:", "category": "Category", "createDraftFailed": "Failed to create draft", "createDraftSuccess": "Created draft v{{version}}", "currentSelection": "Selection: {{category}} / {{play}}", "deleteFailed": "Delete failed", "draftBar": { "saved": "Changes kept in local draft", "unsaved": "Unsaved changes" }, "loadingDetails": "Loading details…", "missingScopeRow": "Missing {{scope}} row. Check seed or version data.", "multiplier": "Multiplier x{{value}} · {{currency}}", "noPlayTypes": "No play types in this category.", "placeholders": { "multiplier": "Enter odds multiplier", "rebateRate": "Enter base rebate rate" }, "playGroups": { "bigSmall": "Big / small", "combo4": "4D position", "number2": "2D position", "number3": "3D position", "other": "Other" }, "playSelectPlaceholder": "Select play type", "playType": "Play type", "publishDialog": { "columns": { "afterPublish": "After publish", "currentActive": "Current active", "prizeScope": "Prize scope" }, "confirm": "Confirm publish", "description": "New odds affect new tickets immediately. Existing successful tickets still settle by their saved odds snapshot.", "title": "Publish odds version?" }, "publishFailed": "Publish failed", "readOnlyBanner": "This version is read-only. Create a draft to edit odds and base rebate.", "readOnlyHint": "This version is read-only. Create a draft before editing odds.", "rebateRate": "Base rebate rate (%)", "rebateRateHint": "This is the platform base rebate. It writes rebate_rate to all prize scopes under this play type; agent/player rebate is added on top of it.", "rollbackDialog": { "confirm": "Confirm rollback", "description": "A new draft will be cloned from version v{{version}}. The active version will not be overwritten directly.", "title": "Confirm rollback" }, "rollbackFailed": "Rollback failed", "rollbackSuccess": "Cloned v{{fromVersion}} into new draft v{{version}}", "sectionHint": "Pick a version to edit prize-tier odds; publishing applies to new tickets immediately.", "sections": { "oddsConfig": "Odds", "playScope": "Play scope" }, "sheetDescription": "Choose a version to view here. Non-draft versions can be rolled back into a new draft.", "summary": { "activeHint": "This version is active; new tickets use these settings.", "activeVersion": "Active version", "contextTitle": "Version & tips", "draftHint": "Save draft changes before publishing; publish affects new tickets only.", "readOnlyHint": "This version is read-only. Create a draft to make changes.", "readOnlyTag": "Read-only", "statusLabel": "Status", "title": "Summary", "version": "Editing version" }, "table": { "multiplier": "Odds multiplier", "prizeScope": "Prize scope" }, "tabs": { "all": "All" } }, "play": { "actions": { "disable": "Disable", "editDisplayName": "Edit name", "enable": "Enable", "ruleText": "Rule text" }, "activeVersion": "Active version v{{version}}", "aria": { "batchGroupSwitch": "Toggle batch switch for {{group}}", "enablePlay": "Enable {{playCode}}" }, "batchEnabledCount": "{{enabledCount}}/{{total}} enabled", "batchGroups": { "big-small": "Big / Small", "box": "Box Plays", "d2": "2D Global", "d3": "3D Global", "d4": "4D Global", "jackpot": "Jackpot", "position": "Position Plays" }, "batchPartialEnabled": "{{enabledCount}}/{{total}} enabled (not all on — turn on to enable all)", "batchSwitchConfirmDescription": "{{action}} {{count}} play types under «{{group}}» and write to the current draft.", "batchSwitchConfirmTitle": "Batch {{action}}?", "batchSwitchDisable": "Disable", "batchSwitchEnable": "Enable", "batchSwitchesDesc": "Only updates the current draft. The player betting table refreshes after save and publish.", "batchSwitchesTitle": "Batch switches", "categories": { "attribute": "Attribute", "box": "Box", "jackpot": "Jackpot", "position": "Position", "standard": "Standard" }, "createDraftFailed": "Failed to create draft", "createDraftSuccess": "Created draft v{{version}}", "deleteFailed": "Delete failed", "filters": { "allCategories": "All categories", "allStatuses": "All statuses", "category": "Category", "empty": "No matching play types", "groupCount": "{{count}} plays", "keyword": "Search plays", "keywordPlaceholder": "Filter by play code, display name, or category", "reset": "Clear filters", "sectionDescription": "Narrow the list first, then use batch switches or row-level edits.", "sectionTitle": "Filter plays", "status": "Status", "uncategorized": "Uncategorized" }, "locales": { "en": "English", "ne": "Nepali", "zh": "Chinese" }, "nameDialog": { "apply": "Apply to draft", "description": "Play {{playCode}}. The player site shows this label after you save and publish the draft.", "savedLocal": "Display names were saved into the local draft. Save the draft to persist them.", "title": "Edit display name" }, "noPlayTypes": "No play types", "placeholders": { "displayOrder": "Order", "maxBetAmount": "Maximum amount", "minBetAmount": "Minimum amount" }, "publishDialog": { "confirm": "Confirm publish", "description": "New settings affect future bets. Existing tickets still settle by their saved snapshot.", "title": "Publish play configuration?" }, "publishFailed": "Publish failed", "readOnlyDraftHint": "Current version is read-only. Create a draft first.", "readOnlyHint": "Limits and rules are read-only. Create a draft first.", "ruleDialog": { "apply": "Apply to draft", "description": "Play {{playCode}}. Changes stay in the draft until you save and publish it.", "title": "Rule text (i18n)" }, "ruleSavedLocal": "Rule text was saved into the local draft. Save the draft to persist it.", "states": { "disabled": "Disabled", "enabled": "Enabled", "readOnly": "Read only" }, "table": { "actions": "Actions", "category": "Category", "displayName": "Display name", "maxBet": "Max bet", "minBet": "Min bet", "order": "Order", "playCode": "Play code", "status": "Status" }, "toggleConfirmDescription": "This updates the current draft only. Players see changes after save and publish.", "toggleConfirmTitle": "{{action}} play {{playCode}}?", "toggleDisable": "Disable", "toggleEnable": "Enable", "toggleInstantFailed": "Failed to apply play switch. Try again later.", "validation": { "displayNameRequired": "Display name is required", "minMaxInvalid": "{{playCode}}: min bet cannot exceed max bet" } }, "prizeScopes": { "consolation": "Consolation prize odds", "first": "First prize odds", "second": "Second prize odds", "starter": "Starter prize odds", "third": "Third prize odds" }, "rebate": { "createDraftFailed": "Failed to create draft", "createDraftSuccess": "Created draft v{{version}}", "deleteFailed": "Delete failed", "dimensionRatesMixedHint": "Base rebate within the same dimension (2D/3D/4D) is not identical: the three percentage inputs show the first play (alphabetically) that has the primary prize scope; use the table as the source of truth. Bulk inputs will overwrite all plays in that dimension to one rate.", "editingVersion": "Editing version v{{version}} · {{status}}", "effectiveTime": "Effective time (current active odds version)", "embeddedVersionHint": "Base rebate shares the odds version line—switch versions in the Odds section above.", "fields": { "d2": "2D base rebate rate (%)", "d3": "3D base rebate rate (%)", "d4": "4D base rebate rate (%)" }, "lazyLoadHint": "Scroll down to the rebate section to load", "placeholders": { "d2": "Enter 2D base rebate", "d3": "Enter 3D base rebate", "d4": "Enter 4D base rebate" }, "publishDialog": { "confirm": "Confirm publish", "description": "After publish, the base rebate applies to new tickets. Agent/player extra rebate is still added on top.", "title": "Publish base rebate/odds version?" }, "publishFailed": "Publish failed", "publishLabel": "Publish", "publishSuccess": "Published odds version with rebate", "readOnlyHint": "Create a draft before editing base rebate.", "sectionHint": "This section configures the base rebate, which is stored in the odds version; select or create an odds draft in the section above first.", "sheetDescription": "Rebate is stored in the odds draft version and shares the same version set as odds.", "winEnjoy": { "description": "Maps to settlement.apply_rebate_to_payout: when enabled, winning payout uses gross win × (1 - rebate_rate_snapshot).", "hint": "Global switch; affects future settlement payouts immediately (not tied to odds version publish).", "label": "Deduct rebate on winning payouts", "saveFailed": "Update failed", "saveSuccess": "Winning-ticket rebate setting updated" } }, "riskCap": { "actions": { "addSpecialCap": "+ Add special cap", "addNumberCap": "+ Add number cap", "close": "Close", "exportCsv": "Export CSV", "filterPresets": "Filter presets…", "update": "Update" }, "createDraftFailed": "Failed to create draft", "createDraftSuccess": "Created draft v{{version}}", "defaultCap": { "description": "Numbers without a special cap use this default cap template.", "fieldLabel": "Cap amount (major unit)", "title": "Default cap" }, "deleteFailed": "Delete failed", "effectiveAt": "Effective at: {{value}}", "groups": { "count": "{{count}} rows", "drawDescription": "Only applies to the selected draw. Use these for temporary tightening or relaxing of a number cap.", "drawEmpty": "No draw-specific caps yet.", "drawTitle": "Draw-specific caps", "globalDescription": "Long-running caps that are not tied to a specific draw. Use these for normal number-level selling limits.", "globalEmpty": "No global number caps yet.", "globalTitle": "Global number caps" }, "loadingDetails": "Loading details…", "noDetailRows": "No detail rows.", "note": "Note: {{value}}", "occupancy": { "searchLabel": "Search number", "searchPlaceholder": "e.g. 8888" }, "placeholders": { "capAmount": "Enter cap amount", "defaultCap": "Enter default cap amount", "number": "4-digit number" }, "publishDialog": { "confirm": "Confirm publish", "description": "After publish, per-number risk-pool cap limits take effect.", "title": "Publish cap configuration?" }, "publishFailed": "Publish failed", "readOnly": "Read only", "readOnlyHint": "Read only. Create a draft first.", "runtime": { "description": "Loaded from the draw risk-pool API, not from the version draft above. Select a draw to see used, remaining, and sold-out state.", "drawLabel": "Draw", "drawPlaceholder": "Select draw", "filterAll": "All", "filterHighRisk": "High usage", "filterSoldOut": "Sold out only", "manageHint": "Use the links above for full risk operations on this draw.", "noDraws": "No draws available; cannot load occupancy.", "soldNo": "No", "soldYes": "Yes", "title": "Per-draw occupancy (live)" }, "savedLocalDraft": "Saved into local draft. Save the draft to persist it.", "scope": { "drawId": "Draw ID: {{id}}", "global": "Global number" }, "specialCaps": { "description": "No draw selected means a global number cap. Selecting a draw makes it a draw-specific cap.", "title": "Special caps" }, "summary": { "defaultCap": "Default cap", "defaultHint": "Any number without a special rule falls back to this value.", "drawCaps": "Draw-specific caps", "drawHint": "Temporary rules that only apply to selected draws.", "globalCaps": "Global number caps", "globalHint": "Long-running rules that do not change with a single draw." }, "syncDialog": { "confirm": "Confirm", "description": "The default cap template will be set to {{value}}. This only changes the draft. Save and publish after confirming.", "title": "Sync default cap" }, "table": { "actions": "Actions", "draw": "Draw", "capAmount": "Cap amount", "number": "Number", "ratio": "Ratio", "remaining": "Remaining", "scope": "Scope", "soldOut": "Sold out", "used": "Used" }, "validation": { "defaultCannotBindDraw": "Default cap cannot be bound to a specific draw", "defaultGreaterThanZero": "Default cap amount must be greater than 0", "enterValidCapAmount": "Enter a valid cap amount", "numberMustBe4Digits": "Number must be 4 digits: {{number}}", "requireAtLeastOne": "At least one cap row is required", "specialGreaterThanZero": "Special cap amount must be greater than 0: {{number}}" } }, "system": { "pageTitle": "System settings", "confirmSaveCurrencyFormatDescription": "This updates decimal places and separators.", "confirmSaveCurrencyFormatTitle": "Save currency display format?", "confirmSaveDescription": "This updates draw review, cooldown, auto settlement/approval/payout, and play-rules display. It may affect site-wide operation.", "confirmSaveDrawDescription": "This updates manual draw review and cooldown duration only.", "confirmSaveDrawTitle": "Save draw parameters?", "confirmSaveFrontendDescription": "This updates play-rules HTML on the player site. Draw and settlement logic are not changed.", "confirmSaveFrontendTitle": "Save front-end display settings?", "confirmSaveRuntimeDescription": "This updates draw review, schedule timing, cooldown, and auto settlement/approval/payout. Play-rules HTML is not changed.", "confirmSaveRuntimeTitle": "Save draw and settlement parameters?", "confirmSaveSettlementDescription": "This updates auto settlement, approval, and payout switches.", "confirmSaveSettlementTitle": "Save settlement automation?", "confirmSaveTitle": "Save system runtime parameters?", "description": "Controls review flow after RNG draw generation, cooldown duration, and automatic settlement behavior. These are global runtime policies and do not belong to versioned operations config.", "discard": "Discard changes", "fields": { "applyRebateToPayout": "Deduct rebate again on winning payouts", "autoApprove": "Auto-approve settlement batches", "autoPayout": "Auto-credit winnings to wallets", "autoSettlement": "Run settlement automatically", "cooldownMinutes": "Cooldown duration (minutes)", "currencyDecimalSeparator": "Decimal separator", "currencyDisplayDecimals": "Display decimals", "currencyThousandsSeparator": "Thousands separator", "defaultCurrency": "Default currency code", "drawBettingWindowSeconds": "Betting window (seconds)", "drawBufferDrawsAhead": "Pre-generated future draws", "drawCloseBeforeDrawSeconds": "Close before draw (seconds)", "drawIntervalMinutes": "Draw interval (minutes)", "manualReview": "Require manual review for draw results", "playRulesHtml": "Play rules HTML (i18n)", "playRulesHtmlDesc": "Rendered on the player play-rules page per locale. Leave empty to fall back to another language or the default empty state." }, "frontendConfig": "Front-end configuration", "hints": { "applyRebateToPayout": "When enabled, payout = gross win × (1 - rebate_rate_snapshot). Default off (rebate already reflected in actual deduct).", "autoApprove": "After cooldown ends and settlement completes, whether batches are automatically marked as approved.", "autoPayout": "After a batch is approved, whether tick automatically credits winnings to player wallets.", "autoSettlement": "When disabled, tick will not run settlement automatically and admins must trigger it manually.", "cooldownMinutes": "How long to wait after publishing before entering settling. Use 0 to settle immediately.", "manualReview": "When enabled, RNG draw results enter pending review and must be published manually in admin." }, "loadFailed": "Failed to load system settings", "placeholders": { "cooldownMinutes": "Enter cooldown minutes", "currencyDecimalSeparator": "Enter decimal separator, for example .", "currencyDisplayDecimals": "Enter display decimal places, for example 2", "currencyThousandsSeparator": "Enter thousands separator, for example ,", "defaultCurrency": "Enter default currency code, for example NPR", "drawBettingWindowSeconds": "Enter betting window in seconds", "drawBufferDrawsAhead": "Enter pre-generated draw count", "drawCloseBeforeDrawSeconds": "Enter seconds to close before draw", "drawIntervalMinutes": "Enter draw interval in minutes" }, "runtimeIntro1": "This area stores global system parameters that do not belong to play, odds, or risk-control versions. They directly affect wallet transfers, job switches, and runtime policy.", "runtimeIntro2": "Play, odds, rebate, and cap management stay under operations configuration. System settings only carry cross-module runtime parameters to avoid overlapping responsibilities in admin.", "runtimeTitle": "Global runtime parameters", "saveCurrencyFormatSuccess": "Currency display format saved", "saveDrawSuccess": "Draw parameters saved", "saveFailed": "Failed to save system settings", "saveFrontendSuccess": "Front-end display settings saved", "saveRuntimeSuccess": "Draw and settlement parameters saved", "saveSettlementSuccess": "Settlement automation saved", "saveSuccess": "System settings saved", "sections": { "deployment": "Deployment (read-only)", "deploymentDescription": "Default currency and draw schedule are set in server .env; this block shows effective values.", "currencyFormat": "Currency display format", "currencyFormatDescription": "Decimals and separators for amounts across the site (separate from currency master data).", "draw": "Draw review", "drawDescription": "Manual review after RNG and post-publish cooldown.", "settlement": "Settlement automation", "settlementDescription": "In order: auto settlement → auto approve → auto payout. When off, handle manually in the relevant module." }, "deployment": { "footer": "Restart PHP or refresh config cache after changes. Contact ops if unsure.", "fields": { "default_currency": "Default currency", "draw_timezone": "Draw timezone", "draw_interval_minutes": "Draw interval (minutes)", "draw_betting_window_seconds": "Betting window (seconds)", "draw_close_before_draw_seconds": "Close before draw (seconds)", "draw_buffer_draws_ahead": "Pre-generated future draws" }, "hints": { "default_currency": "Default for new players when currency is unspecified", "draw_timezone": "Timezone for draw schedule and display", "draw_interval_minutes": "Minutes between consecutive draw times", "draw_betting_window_seconds": "How long betting stays open each draw", "draw_close_before_draw_seconds": "Seconds before draw time to stop accepting bets", "draw_buffer_draws_ahead": "How many future draws the scheduler pre-creates" } }, "states": { "disabled": "Disabled", "enabled": "Enabled" }, "title": "Draw and settlement runtime settings", "unsavedChanges": "Unsaved changes" }, "title": "Configuration Center", "versionActions": { "newDraft": "New draft", "publishCurrent": "Publish", "refresh": "Refresh versions", "refreshing": "Refreshing", "rollbackDialog": { "confirm": "Confirm rollback", "description": "A new draft will be cloned from version v{{version}}. The active version will not be overwritten directly.", "title": "Confirm rollback" }, "rollbackFailed": "Rollback failed", "rollbackSuccess": "Cloned v{{fromVersion}} into new draft v{{version}}", "saveDraft": "Save draft", "saveFailed": "Failed to save configuration" }, "versionStatus": { "active": "Active", "archived": "Archived", "draft": "Draft" }, "versionSwitcher": { "count": "{{count}} items", "current": "Current", "delete": "Delete", "deleteConfirmDescription": "Version v{{version}} will be deleted. This cannot be undone.", "deleteConfirmTitle": "Delete this version?", "effectiveAt": "Effective at: {{value}}", "empty": "No version records yet.", "loading": "Loading…", "moreActions": "More actions for v{{version}}", "noneSelected": "Select version", "note": "Note: {{value}}", "rollback": "Rollback", "selected": "Selected", "sheetDescription": "Select a version to view on this page. Drafts are editable; active and archived versions are read-only.", "sheetTitle": "Versions", "switch": "Switch version", "view": "View" }, "versionToolbar": { "draftEditing": "Editing a draft — save and publish to go live" }, "wallet": { "confirmSaveDescription": "This updates per-order transfer-in/out limits and immediately affects player wallet transfers.", "confirmSaveTitle": "Save wallet limits?", "description": "Amounts use the game's minor currency unit (for example, under NPR, 100 = 1.00 NPR). The minimum amount must be at least 1 minor unit.", "discard": "Discard changes", "fields": { "inMax": "Maximum transfer-in amount", "inMin": "Minimum transfer-in amount", "outMax": "Maximum transfer-out amount", "outMin": "Minimum transfer-out amount" }, "hints": { "inMax": "Per-order maximum from main wallet to lottery wallet", "inMin": "Per-order minimum from main wallet to lottery wallet", "outMax": "Per-order maximum from lottery wallet to main wallet", "outMin": "Per-order minimum from lottery wallet to main wallet" }, "loadFailed": "Failed to load", "placeholders": { "max": "For example: 10000.00", "min": "For example: 1.00" }, "saveFailed": "Save failed", "saveSuccess": "Saved successfully", "title": "Wallet transfer limit settings", "validation": { "amountAtLeastMinorUnit": "{{field}} must be a valid amount and at least 0.01.", "inRangeInvalid": "Maximum transfer-in amount cannot be less than the minimum transfer-in amount.", "outRangeInvalid": "Maximum transfer-out amount cannot be less than the minimum transfer-out amount." } } }