Files
lotteryAdmin/src/i18n/locales/en/config.json

648 lines
28 KiB
JSON
Raw Blame History

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