{ "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" } } }