{
  "pageTitle": "SIWE Lab | Get Started with Web3",
  "pageDesc": "A static Sign-In with Ethereum learning identity demo for ERC-4361 message fields, nonce, expiration, and replay boundaries.",
  "backHome": "Back to home",
  "eyebrow": "Learning Identity Lab",
  "heading": "SIWE Learning Identity Lab",
  "subheading": "Compose and sign an ERC-4361-style message, then inspect the local result without creating a production login session.",
  "demoOnlyLabel": "Educational demo only",
  "interactiveTitle": "Compose a SIWE message",
  "statusIdle": "Ready",
  "statusDiscovering": "Detecting wallets",
  "statusConnecting": "Connecting",
  "statusConnected": "Connected",
  "statusSigning": "Waiting for signature",
  "statusSigned": "Signed locally",
  "refreshWallets": "Refresh wallets",
  "detectedWalletsTitle": "Detected wallets",
  "detectedWalletsCount": "{{count}} detected",
  "noWalletTitle": "No injected wallet detected",
  "noWalletBody": "Open this lab in a browser with an EVM wallet extension to compose and sign a SIWE message.",
  "connectWallet": "Connect wallet",
  "disconnectWallet": "Disconnect locally",
  "connectedWallet": "Wallet",
  "connectedAccount": "Account",
  "connectedNetwork": "Network",
  "statementLabel": "Statement",
  "nonceLabel": "Nonce",
  "issuedAtLabel": "Issued at",
  "expirationLabel": "Expiration",
  "refreshNonce": "Refresh nonce",
  "signMessage": "Sign SIWE message",
  "messagePreviewTitle": "Message preview",
  "signedResultTitle": "Local SIWE inspection",
  "checkDomain": "Domain matches this page",
  "checkAddress": "Address matches connected wallet",
  "checkNonce": "Nonce is at least 8 alphanumeric characters",
  "checkExpiration": "Expiration is still in the future",
  "checkSignatureShape": "Signature has standard 65-byte hex shape",
  "localInspectionNote": "These checks inspect message fields and signature shape only. A production relying party still needs server-side nonce issuance, signature verification, replay protection, and session management.",
  "conceptsTitle": "What this lab teaches",
  "conceptNonce": "A nonce must be generated by a trusted relying party and used once so an old signature cannot be replayed later.",
  "conceptDomain": "The domain and URI bind the message to the site requesting the signature, helping wallets and users detect phishing.",
  "conceptExpiration": "Issued-at and expiration timestamps narrow the valid time window for a signed authentication message.",
  "conceptSession": "A signature is not a session. Production SIWE needs a server to verify the signature and create, rotate, and invalidate sessions.",
  "authBoundaryTitle": "Not production authentication",
  "authBoundaryBody": "This static GitHub Pages demo does not issue trusted nonces, store sessions, or verify ERC-1271 contract-wallet signatures. It is a learning surface for SIWE message anatomy.",
  "learningIdentityTitle": "Learning identity connection",
  "learningIdentityBody": "The same pattern can later help a learner prove wallet control before receiving a badge, certificate, or verifiable credential. This project does not claim that account system yet.",
  "errorNoWallet": "No injected wallet provider was detected in this browser.",
  "errorProviderUnavailable": "The selected wallet provider is unavailable.",
  "errorNoAccount": "The wallet did not return an account.",
  "errorNoConnection": "Connect a wallet before signing a SIWE message.",
  "errorRejected": "The wallet request was rejected.",
  "errorUnauthorized": "The wallet has not authorized this page.",
  "errorRequestPending": "A wallet request is already pending. Check the wallet popup.",
  "errorInvalidMessage": "The SIWE message could not be constructed from the current fields.",
  "errorGeneric": "The wallet request failed."
}
