{
  "threeDS": {
    "safePayGuard": {
      "title": "SafePayGuardJs Component",
      "description": "SafePayGuardJs is a risk control plugin for payment processes, including fraud prevention, fund security protection, and user experience enhancement."
    },
    "secureShield": {
      "title": "SecureShieldJs Component",
      "description": "Provides 3DS services and browser information collection."
    },
    "serverToServer": {
      "title": "Server To Server",
      "description": "Simple 3DS integration through API without using components, requires merchants to have their own risk control capabilities."
    },
    "safePayGuardLink": "/en/notes/riskManger/safePayGuardJs/",
    "secureShieldLink": "/en/notes/riskManger/SecureShieldJs/",
    "serverToServerLink": "/en/notes/riskManger/riskDefense/"
  },
  "integration": {
    "checkoutMode": "Checkout",
    "checkoutModeDesc": "Users use the checkout page to complete payments and simplify the access process.",
    "s2sMode": "API Only",
    "s2sModeDesc": "Merchants use APIs to complete the payment process from the server to the server, which is suitable for merchants who have their own checkout page.",
    "pluginMode": "Plugin",
    "pluginModeDesc": "Merchants use plugins to complete the payment process, which is suitable for using e-commerce platforms. Like Woocommerce",
    "viewMore": "View More >>",
    "checkoutModeLink": "/en/notes/integrate/sdk-v4/",
    "s2sModeLink": "/en/notes/integrate/non-hosted/",
    "pluginModeLink": "/en/notes/integrate/plugin/",
    "viewMoreLink": "/en/notes/integrate/overview/"
  },
  "actionCode": {
    "cardBrand": "Card Brand",
    "responseCode": "Response Code",
    "description": "Description",
    "explanation": "Explanation and Recommended Merchant Action",
    "brands": {
      "所有卡品牌": "All Card Brands",
      "-": "-"
    }
  },
  "signTool": {
    "title": "Signature Tool",
    "generateSign": "Generate Signature",
    "verifySign": "Signature Verification",
    "algorithm": "Signature Algorithm",
    "selectAlgorithm": "Please select signature algorithm",
    "key": "Key",
    "inputKey": "Please enter the key",
    "data": "Data to Sign",
    "inputData": "Please enter the data to sign",
    "result": "Signature Result",
    "resultPlaceholder": "Signature result will be displayed here",
    "sign": "Signature",
    "inputSign": "Please enter the signature to verify",
    "verifyResult": "Verification Result",
    "verifySuccess": "Signature verification passed",
    "verifyFailed": "Signature verification failed",
    "generateSuccess": "Signature generated successfully",
    "generateFailed": "Signature generation failed",
    "needKey": "HMAC-SHA256 algorithm requires a key",
    "needSign": "Please generate a signature first and enter the signature to verify"
  },
  "redirectTool": {
    "title": "Redirect Tool",
    "url": "Redirect URL",
    "inputUrl": "Please enter redirect URL",
    "params": "Parameters",
    "inputParams": "Please enter parameters in JSON format",
    "redirect": "Redirect",
    "reset": "Reset",
    "paramsError": "Parameter format error, please check JSON format"
  },
  "api": {
    "title": "API Request",
    "sendRequest": "Send Request",
    "requestMethod": "Request Method",
    "selectMethod": "Please select request method",
    "requestUrl": "Request URL",
    "inputUrl": "Please enter request URL",
    "requestHeaders": "Request Headers",
    "inputHeaders": "Please enter request headers (JSON format)",
    "requestParams": "Request Parameters",
    "inputParams": "Please enter request parameters (JSON format)",
    "responseResult": "Response Result",
    "clear": "Clear",
    "statusCode": "Status Code",
    "responseHeaders": "Response Headers",
    "responseBody": "Response Body",
    "noResponse": "No response data yet",
    "headersError": "Request headers format error, please check JSON format",
    "paramsError": "Request parameters format error, please check JSON format",
    "requestSuccess": "Request sent successfully",
    "requestFailed": "Request sending failed"
  },
  "tools": {
    "signTool": {
      "title": "Signature Tool",
      "description": "Used to generate or verify electronic signatures."
    },
    "jsSdkTool": {
      "title": "JS-SDK Debug Tool",
      "description": "Used to debug JS-SDK code and view checkout effects."
    },
    "hostedRedirectTool": {
      "title": "Hosted-Redirect Debug Tool",
      "description": "Used to debug Hosted-Redirect code and view checkout effects."
    },
    "signToolLink": "/en/notes/tools/sign/",
    "jsSdkToolLink": "/en/notes/tools/sdk/",
    "hostedRedirectToolLink": "/en/notes/tools/redirect/"
  },
  "business": {
    "quickPay": {
      "title": "Quick Pay",
      "description": "Complete payment process quickly and enhance user experience."
    },
    "preAuth": {
      "title": "Pre-Authorization",
      "description": "Pre-freeze funds to ensure transaction security."
    },
    "subscription": {
      "title": "Subscription",
      "description": "Support automatic recurring payments to simplify renewal process."
    },
    "tokenization": {
      "title": "Tokenization",
      "description": "Securely store payment information to improve payment efficiency."
    },
    "offlineScan": {
      "title": "Offline Scan",
      "description": "Support offline scan payment to cover more scenarios."
    },
    "quickPayLink": "/en/notes/onlinePayment/debit/",
    "preAuthLink": "/en/notes/onlinePayment/auth/",
    "subscriptionLink": "/en/notes/onlinePayment/recurring/overview/",
    "tokenizationLink": "/en/notes/onlinePayment/features/tokenization/overview/",
    "offlineScanLink": "/en/notes/onlinePayment/offlineBarcodePayment/"
  },
  "apis": {
    "apiReference": {
      "title": "API Reference",
      "description": "View all backend API objects, methods, properties and responses."
    },
    "idempotency": {
      "title": "Idempotency",
      "description": "Idempotency logic for order transactions in different scenarios."
    },
    "apiReferenceLink": "/en/notes/checkout/api/reserve/",
    "idempotencyLink": "/en/notes/guide/paystatus/"
  },
  "pluginDoc": {
    "name": "Name",
    "clickToConfig": "Click to configure",
    "configDoc": "Configuration Documentation",
    "phpVersion": "PHP Version",
    "version": "Version"
  },
  "saasDoc": {
    "name": "Name",
    "clickToConfig": "Click to configure",
    "configDoc": "Configuration Documentation"
  },
  "paymentMethodsOverview": {
    "非制裁国家": "Non-sanctioned Countries",
    "settlementCurrency": "All other currencies settle to {currency}"
  },
  "tradeCountriesText": {
    "非制裁国家": "Non-sanctioned Countries",
    "制裁国家": "Sanctioned Countries",
    "见本页交易国家栏目": "Non-sanctioned Countries"
  },
  "sanctionedCountriesLink": "/en/notes/appendix/sanctionedCountries/",
  "guide": {
    "checkoutLink": "/en/notes/checkout/overview/",
    "subscriptionLink": "/en/notes/onlinePayment/recurring/overview/",
    "tokenizationLink": "/en/notes/onlinePayment/features/tokenization/overview/",
    "kybLink": "/en/notes/guide/kyb/",
    "disputeLink": "/en/notes/risk/overview/",
    "paymentChainLink": "/en/notes/guide/paymentChain/",
    "settlementCycleLink": "/en/notes/reconciliation/settlementCycle/",
    "refundLink": "/en/notes/onlinePayment/modify/Refund/",
    "TokenizationLink": "/en/notes/onlinePayment/features/tokenization/overview/",
    "3DSLink": "/en/notes/risk/3ds/",
    "capturesLink": "/en/notes/onlinePayment/modify/Capture/",
    "recurringLink": "/en/notes/onlinePayment/recurring/overview/",
    "chargebackLink": "/en/notes/risk/overview/"
  },
  "properties": {
    "checkoutLink": "/en/notes/checkout/overview/",
    "subscriptionLink": "/en/notes/onlinePayment/recurring/overview/",
    "tokenizationLink": "/en/notes/onlinePayment/features/tokenization/overview/",
    "kybLink": "/en/notes/guide/kyb/",
    "disputeLink": "/en/notes/risk/overview/",
    "paymentChainLink": "/en/notes/guide/paymentChain/",
    "settlementCycleLink": "/en/notes/reconciliation/settlementCycle/",
    "refundLink": "/en/notes/onlinePayment/modify/Refund/",
    "TokenizationLink": "/en/notes/onlinePayment/features/tokenization/overview/",
    "3DSLink": "/en/notes/risk/3ds/",
    "capturesLink": "/en/notes/onlinePayment/modify/Capture/",
    "recurringLink": "/en/notes/onlinePayment/recurring/overview/",
    "chargebackLink": "/en/notes/risk/overview/",
    "结算周期": "Settlement Cycle",
    "paymentMethod": "Payment Method",
    "supportedCardNetworks": "Supported Card Networks",
    "tradeCountryList": "Supported Regions",
    "paymentCategory": "Payment Category",
    "paymentType": "Payment Type",
    "tradeCurrenciesList": "Supported Currencies",
    "settlementCycle": "Settlement Cycle",
    "3DS": "3DS",
    "captures": "Captures",
    "recurring": "Recurring",
    "Installment": "Installment",
    "chargeback": "Chargeback",
    "integrationCapabilities": "Integration Capabilities",
    "redirectCheckout": "Redirect Checkout",
    "onePageCheckout": "OnePage Checkout",
    "embeddedSdk": "Embedded SDK",
    "directApi": "Direct API",
    "remark": "Remark",
    "limit": "Limit",
    "refund": "Refund",
    "Tokenization": "Tokenization"
  },
  "iAPIContentWithCheckout": {
    "jsonDetailTitle_1": "Expand bizContent",
    "jsonDetailTitle_2": "Request Body Example",
    "buttonText_1": "Request Body Viewer",
    "buttonText_2": "bizContent Viewer",
    "noData": "No data available"
  },
  "features": {
    "basicInformation": "Basic Information",
    "properties": "Properties",
    "tradeCountries": "Supported Regions",
    "label": {
      "支持交易的国家": "Supported Regions",
      "交易规则": "Trading Rules"
    }
  },
  "quickStart": {
    "preparation": {
      "title": "Preparation",
      "description": "Complete account registration, obtain keys, configure development environment and other preparatory work"
    },
    "guide": {
      "title": "Development Guide",
      "description": "Detailed API usage guide, integration steps and code examples"
    },
    "acceptance": {
      "title": "Acceptance Criteria",
      "description": "Test cases, acceptance criteria and pre-launch checklist"
    }
  },
  "specialIntegrates": {
    "title": "Supported Integration Methods",
    "intro": "To enable Apple Pay, you need to use your own certificate or PingPongCheckout's certificate:",
    "introItem1": "You can enable your own certificate for API Only integration.",
    "introItem2": "You can only use PingPongCheckout's certificate for PingPongCheckout hosted checkout integration.",
    "ppCert": {
      "desc1": "You don't need to create your own Apple Pay certificate for your web integration, as you can process payments through PingPongCheckout's Apple Pay certificate.",
      "desc2": "Benefits of using PingPongCheckout's Apple Pay certificate include:",
      "benefit1": "Add Apple Pay to your integration faster.",
      "benefit2": "Less configuration required.",
      "benefit3": "If you have a hosted checkout integration, Apple Pay can be enabled through configuration.",
      "benefit4": "If using JS-SDK integration, you must add your website domain to the Apple Pay domain list and pass verification. See",
      "domainLink": "/en/notes/paymentMethods/ApplePay/sdk_domain_association/",
      "domainLinkText": "Apple Pay Domain Verification"
    },
    "yourCert": {
      "beforeStart": "Before you start",
      "requirements": "To enable Apple Pay with your own certificate, you need the following:",
      "req1": "An Apple Developer account associated with Apple Developer Program or Apple Developer Enterprise Program.",
      "req2": "To ensure you receive notifications when your Apple Pay certificate is about to expire, create a user with Account Holder or Admin role, using an email address linked to a group inbox or distribution list.",
      "req3": "For certificate configuration details, see",
      "configLink": "/en/notes/paymentMethods/ApplePay/merchantCertificateConfiguration/",
      "configLinkText": "Apple Pay Merchant Certificate Configuration"
    }
  },
  "flowImages": {
    "paymentFlow": "Payment Flow"
  },
  "iImage": {
    "loading": "Loading",
    "figure": "Figure"
  },
  "specialIntegratesGooglePay": {
    "title": "Supported Integration Methods",
    "intro": "To enable Google Pay, you can choose Checkout integration or API-Only integration:",
    "checkoutIntegration": "Checkout Integration",
    "checkoutIntegrationDesc": "No special development is required for Google Pay. Google Pay will be integrated on your website with the same process as other wallets.",
    "apiOnlyIntegration": "API-Only Integration",
    "apiOnlyIntegrationDesc": "You need to integrate the Google Pay specified page, then use API to communicate with PingPongCheckout. You can ",
    "usePPCert": "use PingPongCheckout's certificate",
    "or": " or ",
    "useYourCert": "your own certificate",
    "ppCert": {
      "desc1": "You don't need to create your own Google Pay certificate for your web integration, as you can process payments through PingPongCheckout's Google Pay certificate.",
      "desc2": "Benefits of using PingPongCheckout's Google Pay certificate include:",
      "benefit1": "Lower development and maintenance costs",
      "benefit2": "Less configuration/development work required, add Google Pay to your integration faster.",
      "benefit3": "If you have Hosted Checkout/Embedded JS-SDK integration, Google Pay can be enabled through configuration."
    },
    "yourCert": {
      "beforeStart": "Before you start",
      "requirements": "To enable Google Pay with your own certificate, you need the following:",
      "req1": "PCI-DSS Compliance",
      "req2": "Google Pay Developer Account."
    }
  },
  "codeGrant": {
    "title": "CodeGrant Signing Tool",
    "steps": {
      "step1": "Get Auth URL",
      "step2": "Get Token",
      "step3": "Token Payment"
    },
    "step1": {
      "title": "Step 1: Get Auth URL",
      "desc": "After calling the /v4/paymethod/bind API in Postman or production, paste the full response JSON into the text area and click 'Parse Response' to extract authUrl and token.",
      "redirectTip": "Single-page redirect:",
      "redirectItems": [
        "Set <code>merchantResultUrl</code> to this page's URL when calling the bind API",
        "After wallet authorization, PingPong will redirect back with <code>merchantToken</code>",
        "This page automatically parses the URL parameter and proceeds to the 'Get Token' step"
      ],
      "parseRule": "Parse rules:",
      "parseItems": [
        "Automatically extracts the bizContent field from the response",
        "Supports bizContent as a JSON string or object",
        "Parse failures will show a JSON format error"
      ],
      "testAccount": "Wallet Test Account (AlipayHK Sandbox):",
      "testAccountItems": [
        "Account: yangfan1@pingpongx.com",
        "Password: Aa.121314"
      ],
      "pasteTitle": "📋 Paste /v4/paymethod/bind Response JSON",
      "pastePlaceholder": "Paste the /v4/paymethod/bind response JSON here...",
      "parseBtn": "Parse Response",
      "clearBtn": "Clear",
      "resultTitle": "Parse Result",
      "token": "Token:",
      "copyToken": "Copy Token",
      "authUrl": "Auth URL (authUrl)",
      "copyUrl": "Copy URL",
      "openAuth": "Open Auth URL",
      "nextBtn": "I've completed wallet signing",
      "walletStepsTitle": "Wallet Operation Steps:",
      "walletSteps": [
        "Copy the <code>authUrl</code> below or click \"Open Auth URL\"",
        "Check \"I have read and agree to the Auto Debit Agreement\"",
        "Click <strong>Authorize Now</strong>",
        "Enter wallet account and password, click Continue",
        "Check the agreement again, click <strong>Authorize Now</strong>",
        "Authorization success → auto redirect → back to this page"
      ],
      "formatBtn": "Format",
      "minifyBtn": "Minify",
      "shortcutTip": "Ctrl+Enter to parse",
      "editorValid": "Valid JSON",
      "editorInvalid": "Invalid JSON",
      "formatSuccess": "Formatted",
      "formatFailed": "Format failed: ",
      "minifySuccess": "Minified",
      "minifyFailed": "Minify failed: "
    },
    "step2": {
      "title": "Step 2: Get Token",
      "desc": "After wallet authorization, PingPong redirects back with merchantToken via the merchantResultUrl.",
      "redirectExample": "Redirect URL example:",
      "redirectItems": [
        "standalone.html?merchantToken=xxx&status=SUCCESS",
        "This page automatically parses the merchantToken from the URL"
      ],
      "warning": "Production note:",
      "warningItems": [
        "Production requires an async notification endpoint to receive ACCESS_TOKEN_CREATION",
        "merchantToken is sensitive — never display it in plaintext in production"
      ],
      "tokenInfo": "Token Information",
      "tokenLabel": "Token Value:",
      "tokenPlaceholder": "No token obtained",
      "copyToken": "Copy Token",
      "backBtn": "Back",
      "nextBtn": "Payment Guide"
    },
    "step3": {
      "title": "Step 3: Token Payment",
      "desc": "Use token + bizType=CodeGrant + merchantUserId to call the /v4/payment/unifiedPay API.",
      "paramTitle": "Parameters:",
      "paramItems": [
        "<code>amount</code> — Payment amount in the currency's main unit (e.g., 1 = 1 HKD)",
        "<code>currency</code> — Supports HKD, USD, SGD",
        "<code>merchantUserId</code> — Must match the signing request exactly",
        "<code>bizType=CodeGrant</code> — Identifies this as a CodeGrant payment"
      ],
      "errors": "Common errors:",
      "errorItems": [
        "merchantUserId mismatch → token not found",
        "Token expired or revoked → re-sign required",
        "Amount exceeds limit → payment rejected"
      ],
      "exampleTitle": "📌 Payment Request Example (reference only)",
      "backBtn": "Back"
    },
    "copied": "Copied to clipboard",
    "copyFailed": "Copy failed, please copy manually",
    "parseSuccess": "Parse successful",
    "errors": {
      "emptyInput": "Please enter bind response JSON",
      "invalidJson": "Invalid JSON: ",
      "invalidBizContent": "bizContent is not valid JSON: ",
      "noBizContent": "bizContent field not found",
      "noAuthUrlOrToken": "No authUrl or token found in bizContent",
      "invalidUrl": "Invalid URL format, only http/https supported",
      "noAuthUrl": "No auth URL obtained"
    }
  }
}