{
  "page": {
    "unavailable": "Campaign not open yet",
    "loadingConfig": "Loading campaign…",
    "reload": "Reload"
  },
  "rail": {
    "notStarted_one": "{{count}} period, not started",
    "notStarted_other": "{{count}} periods, not started",
    "ended_one": "{{count}} period, ended",
    "ended_other": "{{count}} periods, ended",
    "period": "Period {{number}}",
    "progress": "Period {{current}} / {{count}} · {{remaining}} left",
    "remainingDays": "{{days}}d {{hours}}h",
    "remainingHours": "{{hours}}h",
    "remainingMinutes": "{{minutes}}m"
  },
  "enrollment": {
    "status": {
      "identity_pending": "Identity pending verification",
      "excluded": "This account can't join this campaign",
      "not_enrolled": "Not joined",
      "scheduled": "Joined",
      "enrolled": "Joined",
      "ended": "Campaign ended"
    },
    "closed": {
      "ENROLLMENT_FULL": "This batch is full",
      "ENROLLMENT_DISABLED": "Joining is not open yet",
      "ENROLLMENT_NOT_OPEN": "Outside the joining window",
      "default": "Joining is unavailable right now",
      "upcoming": "Join once the campaign starts",
      "ended": "Campaign ended; joining closed",
      "waiting": "Waiting for eligibility confirmation"
    },
    "form": {
      "label": "Join the campaign",
      "startPeriod": "Start from",
      "optionCurrent": "This period · Period {{number}}",
      "optionNext": "Next period · Period {{number}}",
      "effectiveNow": "Effective once confirmed",
      "effectiveAt": "Effective {{time}}",
      "lastPeriod": "This is the final period, so you can only start now.",
      "noteCurrent": "Trades before joining count toward the threshold only",
      "noteNext": "Starts from period {{number}}",
      "accept": "I've read the <a>campaign rules and lock terms</a> ({{version}})",
      "submitting": "Submitting…",
      "submit": "Confirm and join"
    },
    "headline": {
      "authLoading": "Checking sign-in…",
      "signedOut": "Sign in to see your progress",
      "statusError": "Couldn't load your record",
      "loading": "Loading your record…",
      "enrolled": "Joined · from period {{number}}",
      "success": "Joined · from period {{number}}"
    },
    "sub": {
      "identity": "Verifying your DPIN account",
      "excluded": "This account isn't eligible",
      "pendingData": "Data is being prepared",
      "intro": "Join once; it renews every period"
    },
    "participation": "My participation",
    "record": "Joining record",
    "startPeriod": "Start period",
    "effectiveTime": "Effective from",
    "enrolledTime": "Joined at",
    "ruleVersion": "Rules version",
    "retryRecord": "Retry",
    "activityChanged": "The rules have changed. Please review them again",
    "asideLabel": "Joining and claiming",
    "tab": "Join",
    "loginToEnroll": "Sign in to join",
    "join": "Join the campaign",
    "noPrincipal": "Joining doesn't involve your assets",
    "lockLabel": "Stake lock",
    "lockValue": "Locked until {{time}} once staked",
    "l1Label": "L1 threshold",
    "l1Value": "Stake <dpn></dpn>{{dpn}} + <dps></dps>{{dps}}, trade {{volume}} USDT this period"
  },
  "errors": {
    "invalidResponse": "Couldn't load. Try again later",
    "invalidConfig": "Couldn't load. Try again later",
    "invalidStatus": "Couldn't load. Try again later",
    "invalidOverview": "Couldn't load. Try again later",
    "invalidClaim": "Couldn't load. Try again later",
    "invalidEnrollResult": "Couldn't load. Refresh and try again",
    "activityMismatch": "Couldn't load. Try again later",
    "requestFailed": "Something went wrong. Please try again.",
    "enrollFailed": "Couldn't join. Please try again.",
    "rateLimited": "Too many requests. Try again in {{seconds}}s"
  },
  "level": {
    "pending": "Verifying",
    "building": "Calculating",
    "label": "My level",
    "current": "Current level",
    "inactive": "Not activated",
    "notSynced": "Data not synced yet, updates after verification",
    "buildingNote": "Calculating, updates in a few minutes",
    "trade": "Trade now",
    "currentFrom": "Current level · from period {{number}}",
    "stake": "Stake",
    "periodVolume": "This period's volume",
    "reached": "Reached L{{level}}",
    "stakeShort": "<gap></gap> more to reach L{{level}}",
    "tradeShort": "Trade {{amount}} more to reach L{{level}}",
    "goStake": "Stake more",
    "pendingActivation": "{{amount}} USDT pending activation",
    "syncedAt": "Last synced {{time}}"
  },
  "ledger": {
    "pending": "Verifying",
    "building": "Calculating",
    "perTrade": "Trading rewards",
    "quota": "Points cap",
    "title": "Accumulated rewards",
    "self": "Personal rewards",
    "commission": "Referral commission",
    "adjustment": "Adjustment",
    "net": "Total earned",
    "claimed": "Claimed",
    "infoLabel": "How personal rewards work",
    "infoTrade": "Trading rewards: each trade's volume × {{coefficient}} × your level's personal rate at the time. USDT-market volume counts at {{usdt}}.",
    "infoQuota": "Points cap: level Lk earns {{points}}×k points a day; {{perUsdt}} points = 1 USDT of cap.",
    "infoLower": "Personal rewards are the lower of the two; anything above the cap counts once the cap grows.",
    "total": "Total rewards",
    "claimable": "Claimable",
    "unsettled": "Pending settlement",
    "holdTitle": "On hold",
    "holdLine": "Funds are being topped up",
    "heldTitle": "Verifying",
    "heldLine": "Rewards are being verified",
    "offsetLine": "{{amount}} USDT to offset",
    "unsettledNote": "Expected to open {{date}}",
    "unsettledNoteNoDate": "Settled after this period",
    "commissionSyncPending": "Syncing referrals",
    "commissionSyncFailed": "Referral sync failed",
    "holdLinePaused": "Claiming is paused"
  },
  "rules": {
    "title": "Rules",
    "term": "{{term}}: ",
    "items": {
      "enroll": {
        "term": "Joining",
        "text": "Join once and it renews every period. It doesn't involve your assets."
      },
      "level": {
        "term": "Level",
        "text": "The lower of your stake tier and trading tier. The trading tier resets every period."
      },
      "stake": {
        "term": "Staking",
        "text": "Only the DPIN campaign staking contract counts. Staked tokens can't be withdrawn before the campaign ends."
      },
      "trade": {
        "term": "Trades",
        "text": "DPN/DPS markets count {{dpn}} toward the reward base and USDT markets {{usdt}}. Level thresholds always use 100% of volume.",
        "split": "DPN markets count {{dpn}} and DPS markets {{dps}} toward the reward base, USDT markets {{usdt}}. Level thresholds always use 100% of volume."
      },
      "self": {
        "term": "Personal rewards",
        "text": "The lower of trading rewards and the points cap. {{points}} points = 1 USDT of cap."
      },
      "commission": {
        "term": "Referral commission",
        "text": "Split by referral differential. The whole referral chain gets at most {{cap}} of a trade's reward base, and it doesn't use your points cap."
      },
      "payout": {
        "term": "Payout",
        "text": "Paid in USDT, settled every {{periodDays}} days. Claim any time once open; unclaimed amounts carry over."
      }
    },
    "footer": "Rules version {{version}} · All times SGT",
    "full": "Full rules"
  },
  "hero": {
    "title": "My rewards",
    "unit": "USDT",
    "claimableUnit": "USDT claimable",
    "tagline": "Stake and trade to earn USDT rewards by level",
    "signedOut": "Sign in to see your claimable rewards",
    "login": "Connect wallet to sign in",
    "claim": "Claim rewards",
    "claiming": "Claiming…",
    "confirming": "Confirming…",
    "loading": "Loading…",
    "settling": "Settling",
    "settlingLine": "Period {{period}} has ended",
    "settlingLineGeneric": "This period has ended",
    "opensAt": "Expected to open {{date}}",
    "held": "On hold",
    "heldLine": "Funds are being topped up",
    "heldSide": "Opening time to be announced",
    "claimedTotal": "{{amount}} USDT claimed",
    "nextOpensAt": "Next claim expected {{date}}",
    "configPending": "Claim configuration pending",
    "payoutDiffers": "Payout address {{address}} differs from the connected wallet",
    "retry": "Reload",
    "error": {
      "identityPending": "Identity pending verification",
      "disabled": "Not open yet",
      "unavailable": "Unavailable"
    },
    "step": {
      "switching": "Switch to BSC in your wallet",
      "preparing": "Checking claim data…",
      "signing": "Confirm in your wallet",
      "confirming": "Confirming transaction…"
    },
    "outcome": {
      "switch_refused": "Switch to the BSC network",
      "cancelled": "Cancelled",
      "reverted": "Transaction failed; amount unchanged",
      "timeout": "Confirmation timed out; refresh later",
      "unavailable": "Nothing to claim right now",
      "failed": "Claim failed; try again",
      "unverified": "Claim result not confirmed yet"
    },
    "pendingTx": "Previous transaction is confirming",
    "viewTx": "View transaction",
    "verifying": "Verifying",
    "heldRecordLine": "Rewards are being verified",
    "modal": {
      "title": "Confirm claim",
      "doneTitle": "Received",
      "close": "Close",
      "amount": "Amount to claim",
      "to": "Claim to",
      "toValue": "{{address}} (connected wallet)",
      "network": "Network",
      "note": "Rejecting the signature costs nothing · A small amount of BNB is needed for gas",
      "stepConfirm": "Confirm",
      "stepSign": "Sign",
      "stepChain": "Confirming",
      "stepDone": "Received",
      "confirm": "Confirm claim",
      "cancel": "Cancel",
      "finish": "Done"
    },
    "unverifiedNote": "Records update later. Don't claim again",
    "heldLinePaused": "Claiming is paused"
  },
  "tabs": {
    "label": "Rewards",
    "overview": "Overview",
    "stake": "Stake",
    "invite": "Referrals",
    "detail": "Details & rules",
    "detailShort": "Details"
  },
  "stake": {
    "current": "Current stake",
    "staked": "Staked",
    "stakeTier": "Stake tier",
    "tradeTier": "Trading tier",
    "verifying": "Verifying",
    "verifyingLine": "Verifying · last synced {{time}}",
    "limitLine": "Add <0/> to reach L{{trade}}",
    "topUp": "Top up stake",
    "target": "Target stake tier",
    "need": "L{{level}} needs <0/> + <1/>. You need <2/> · <3/> more",
    "deposit": "Deposit",
    "depositLabel": "Deposit {{symbol}}",
    "wallet": "Wallet {{amount}}",
    "minus": "Minus 100",
    "plus": "Plus 100",
    "afterTier": "Stake tier after staking",
    "afterLevel": "Level after staking",
    "notActivated": "Not activated",
    "wasted": "Your level is capped by trading tier L{{trade}}. Staking up to L{{level}} won't raise it",
    "lock": "Locked until {{date}}",
    "ack": "I understand my stake is locked until {{date}}",
    "ackHint": "Please tick the confirmation above",
    "error": {
      "unit": "Must be a multiple of 100",
      "over": "Exceeds wallet balance"
    },
    "approveStep": "Approve <0/>",
    "stakeStep": "Stake (one transaction)",
    "state": {
      "run": "Waiting for signature…",
      "wait": "Confirming…",
      "done": "Done",
      "skip": "Skipped",
      "fail": "Failed"
    },
    "confirm": "Confirm stake",
    "receipt": {
      "title": "Stake confirmed",
      "deposited": "Deposited",
      "onchain": "On-chain stake",
      "tx": "Transaction",
      "note": "Updates automatically once recorded"
    },
    "outcome": {
      "cancelled": "Cancelled",
      "reverted": "Transaction failed; your balance is unchanged",
      "switch_refused": "Switch to the BSC network",
      "timeout": "Confirmation timed out. Don't stake again",
      "failed": "Stake failed; please try again",
      "unverified": "Result not confirmed yet. Don't stake again",
      "account_changed": "Wallet account changed; staking stopped"
    },
    "connect": "Connect wallet",
    "signedOut": "Sign in to stake",
    "unavailable": "Staking unavailable",
    "table": {
      "title": "Tiers",
      "toggle": "Tiers (L1–L13)",
      "level": "Level",
      "stake": "DPN / DPS each",
      "volume": "Period volume USDT",
      "self": "Personal rate",
      "invite": "Referral differential",
      "current": "Current",
      "target": "Target"
    },
    "notStarted": "Staking opens {{date}}",
    "ended": "The campaign has ended; staking is closed",
    "loadFailed": "Couldn't load staking info. Try again later",
    "wastedGeneric": "Your level is capped by your trading tier. Staking more won't raise it",
    "checked": "I've checked",
    "contract": {
      "notActive": "Staking isn't open yet",
      "ended": "The campaign has ended; staking is closed",
      "unit": "Must be a multiple of 100",
      "empty": "Enter an amount to stake",
      "transfer": "Token transfer failed. Check your wallet balance and approval"
    },
    "pendingLine": "Your recent stake of <0/> isn't counted yet",
    "unconfirmedLine": "A stake is unconfirmed. Don't stake again",
    "approvedRetry": "Approval is done; a retry won't ask again",
    "maxTier": "Top tier reached"
  },
  "invite": {
    "title": "Invite & earn",
    "tagline": "Earn USDT commission by level when your referrals trade",
    "inviter": "My referrer",
    "count": "Referrals",
    "commission": "Total referral commission USDT",
    "periodCommission": "This period {{amount}}",
    "direct": "Direct referrals",
    "scopePeriod": "This period",
    "scopeTotal": "All time",
    "colInvitee": "Referral",
    "colVolumePeriod": "Volume ≈USDT",
    "colVolumeTotal": "Volume ≈USDT",
    "colCommissionPeriod": "Commission USDT",
    "colCommissionTotal": "Commission USDT",
    "noTrades": "No trades yet",
    "empty": "No direct referrals yet",
    "syncFailed": "Referral sync failed. Last synced {{time}}",
    "syncFailedNever": "Referral sync failed",
    "syncPending": "Syncing referrals",
    "signedOut": "Sign in to see your referrals",
    "notEnrolled": "Commission starts once you join and activate a level",
    "colVolumeShort": "Volume ≈USDT",
    "colCommissionShort": "Commission USDT"
  },
  "list": {
    "loading": "Loading…",
    "unavailable": "Couldn't load",
    "loadMore": "Load more",
    "noMore": "No more",
    "summary": "{{count}} items · {{size}} per page",
    "empty": "No records yet",
    "prev": "Previous page",
    "next": "Next page"
  },
  "detail": {
    "segTrades": "My trades",
    "segCommission": "Commission",
    "segSettlements": "Settlements & claims",
    "segRules": "Rules",
    "filterPeriod": "Period",
    "filterToken": "Token",
    "filterSide": "Side",
    "filterState": "Status",
    "filterReferral": "Referral",
    "all": "All",
    "buy": "Buy",
    "sell": "Sell",
    "colTime": "Time",
    "colTokenSide": "Token / Side",
    "colVolume": "Volume ≈USDT",
    "colLevel": "Level applied",
    "colReward": "Trading rewards USDT",
    "colRewardShort": "Trading rewards",
    "colReferral": "Referral",
    "colReferralToken": "Referral's token",
    "colRate": "My rate",
    "colCommission": "Commission USDT",
    "colCommissionShort": "Commission",
    "sumPeriod": "Total volume {{volume}} USDT · Trading rewards {{reward}}",
    "sumAll": "Total volume {{volume}} USDT · Trading rewards {{reward}}",
    "commPeriod": "This period's commission {{amount}} USDT · All time {{total}}",
    "commAll": "Total commission {{amount}} USDT · All time {{total}}",
    "state": {
      "counted": "L{{level}} · {{rate}}",
      "pendingActivation": "Counted at L1",
      "activatedL1": "L1 {{rate}} once activated",
      "forfeited": "Not activated, not counted",
      "preEnrollment": "Before joining, counts toward thresholds only",
      "stakeInsufficient": "Insufficient stake, counts toward thresholds only",
      "held": "Verifying",
      "invalidated": "Reversed",
      "excluded": "Not counted"
    },
    "stateName": {
      "counted": "Counted",
      "pendingActivation": "Pending activation",
      "activatedL1": "Activated",
      "forfeited": "Not activated",
      "preEnrollment": "Before joining",
      "stakeInsufficient": "Insufficient stake",
      "held": "Verifying",
      "invalidated": "Reversed",
      "excluded": "Not counted"
    },
    "settleTitle": "Settlements",
    "settleNote": "Settled every {{days}} days",
    "colPeriod": "Period",
    "colOpens": "Opens",
    "colAdded": "Added this period USDT",
    "colStatus": "Status",
    "expected": "Expected {{date}}",
    "status": {
      "notStarted": "Not started",
      "inProgress": "In progress",
      "settling": "Settling",
      "hold": "On hold",
      "open": "Open"
    },
    "claimsTitle": "Claims",
    "colAmount": "Amount USDT",
    "colTx": "Transaction",
    "received": "Received",
    "claimsPending": "Syncing claim records",
    "claimsUnresolved": "Verifying claim records",
    "sumPending": "Pending activation {{amount}}",
    "estimated": "Est. {{amount}}",
    "asOf": "Data as of {{time}}",
    "unattributed": "{{count}} trades being verified",
    "sumFiltered": "Filtered total {{volume}} USDT · Trading rewards {{reward}}"
  }
}
