Are you looking for test card numbers?

Would you like to contact support?

Online-payment icon

Localizing Components

Learn how to customize the text displayed in a Component, or create you own localization.

If you integrated with our JavaScript Components, you can:

Change language

By default, text rendered in Components is in English - US (en-US).

To change the language:

  • In the configuration object on your payment page, specify the locale of the language you want rendered in your payment form. 

    The following languages are supported: 

    Language locale
    Chinese - Simplified zh-CN
    Chinese - Traditional zh-TW
    Danish da-DK
    Dutch nl-NL
    English - US en-US
    From ver 3.2.0
    French fr-FR
    German de-DE
    Italian it-IT
    From ver 2.1.0
    From ver 3.3.0
    Norwegian no-NO
    Polish pl-PL
    Portuguese pt-BR
    Russian ru-RU
    Spanish es-ES
    Swedish sv-SE

You can find more information on the configuration object in the Drop-in or Components guide.

Customize localization

The supported localizations can be customized, replacing the default text with the text of your choice. 

 To customize a supported localization:

  • Add a translations object to your payments page with the fields you want to customize. For each specify:

    • locale you want to customize.
    • The fields you want to customize, and the text you want to present for this field.

For example, to customize the English - US (en-US) translation so that your payments form displays:

  • Shipping Address in place of Delivery Address.
  • State in place of State or Province.
const translations = {
  "en-US": {
    "deliveryAddress": "Shipping Address",
    "stateOrProvince": "State"

To use this custom localization in the Components:

Create localization

If your shoppers use a language that isn't supported by the Components, you can create your own localization.

To create a localization:

  • Add a translations object to your payment page, specifying:

    • The locale you want to create. For example, en-GB for English - British.
    • An object containing the fields that are used in the Components, as well as the text you want displayed for each field.

The following example shows how you would create a localization for English - British (en-GB).

const translations = {
    "en-GB": {
        "paymentMethods.moreMethodsButton": "More payment methods",
        "payButton": "Pay",
        "storeDetails": "Save for my next payment",

To use this localization in the Components:


The fields that can be rendered in the Components are: 

    "paymentMethods.moreMethodsButton": "More payment methods",
    "payButton": "Pay",
    "payButton.redirecting": "Redirecting...",
    "storeDetails": "Save for my next payment",
    "payment.redirecting": "You will be redirected…",
    "payment.processing": "Your payment is being processed",
    "creditCard.holderName.placeholder": "J. Smith",
    "creditCard.holderName.invalid": "Invalid cardholder name",
    "creditCard.numberField.title": "Card number",
    "creditCard.numberField.placeholder": "1234 5678 9012 3456",
    "creditCard.numberField.invalid": "Invalid card number",
    "creditCard.expiryDateField.title": "Expiry date",
    "creditCard.expiryDateField.placeholder": "MM/YY",
    "creditCard.expiryDateField.invalid": "Invalid expiry date",
    "creditCard.expiryDateField.month": "Month",
    "creditCard.expiryDateField.month.placeholder": "MM",
    "creditCard.expiryDateField.year.placeholder": "YY",
    "creditCard.expiryDateField.year": "Year",
    "creditCard.cvcField.title": "CVC / CVV",
    "creditCard.cvcField.placeholder": "123",
    "creditCard.cvcField.placeholder.4digits": "4 digits",
    "creditCard.cvcField.placeholder.3digits": "3 digits",
    "creditCard.storeDetailsButton": "Remember for next time",
    "creditCard.oneClickVerification.invalidInput.title": "Invalid CVC / CVV format",
    "installments": "Number of installments",
    "sepaDirectDebit.ibanField.invalid": "Invalid account number",
    "sepaDirectDebit.nameField.placeholder": "J. Smith",
    "sepa.ownerName": "Holder Name",
    "sepa.ibanNumber": "Account Number (IBAN)",
    "giropay.searchField.placeholder": "Bankname / BIC / Bankleitzahl",
    "giropay.minimumLength": "Min. 4 characters",
    "giropay.noResults": "No search results",
    "giropay.details.bic": "BIC (Bank Identifier Code)",
    "error.title": "Error",
    "error.subtitle.redirect": "Redirect failed",
    "error.subtitle.payment": "Payment failed",
    "error.subtitle.refused": "Payment refused",
    "error.message.unknown": "An unknown error occurred",
    "idealIssuer.selectField.title": "Bank",
    "idealIssuer.selectField.placeholder": "Select your bank",
    "creditCard.success": "Payment Successful",
    "holderName": "Name on card",
    "loading": "Loading…",
    "continue": "Continue",
    "continueTo": "Continue to",
    "wechatpay.timetopay": "You have %@ to pay",
    "wechatpay.scanqrcode": "Scan QR code",
    "personalDetails": "Personal details",
    "socialSecurityNumber": "Social security number",
    "firstName": "First name",
    "infix": "Prefix",
    "lastName": "Last name",
    "mobileNumber": "Mobile number",
    "city": "City",
    "postalCode": "Postal code",
    "countryCode": "Country Code",
    "telephoneNumber": "Telephone number",
    "dateOfBirth": "Date of birth",
    "dateOfBirth.format": "DD/MM/YYYY",
    "shopperEmail": "E-mail address",
    "gender": "Gender",
    "male": "Male",
    "female": "Female",
    "billingAddress": "Billing address",
    "street": "Street",
    "stateOrProvince": "State or province",
    "country": "Country",
    "houseNumberOrName": "House number",
    "separateDeliveryAddress": "Specify a separate delivery address",
    "deliveryAddress": "Delivery Address",
    "creditCard.cvcField.title.optional": "CVC / CVV (optional)",
    "moreInformation": "More information",
    "klarna.consentCheckbox": "I consent to the processing of my data by Klarna for the purposes of identity- and credit assessment and the settlement of the purchase. I may revoke my %@ for the processing of data and for the purposes for which this is possible according to law. The general terms and conditions of the merchant apply.",
    "klarna.consent": "consent",
    "socialSecurityNumberLookUp.error": "Your address details could not be retrieved. Please check your date of birth and/or social security number and try again.",
    "privacyPolicy": "Privacy policy",
    "afterPay.agreement": "I agree with the %@ of AfterPay",
    "paymentConditions": "payment conditions",
    "openApp": "Open the app",
    "voucher.readInstructions": "Read instructions",
    "voucher.introduction": "Thank you for your purchase, please use the following coupon to complete your payment.",
    "voucher.expirationDate": "Expiration Date",
    "voucher.alternativeReference": "Alternative Reference",
    "": "Select your provider",
    "": "Select your bank",
    "voucher.paymentReferenceLabel": "Payment Reference",
    "voucher.surcharge": "Incl. %@ surcharge",
    "voucher.introduction.doku": "Thank you for your purchase, please use the following information to complete your payment.",
    "voucher.shopperName": "Shopper Name",
    "voucher.merchantName": "Merchant",
    "voucher.introduction.econtext": "Thank you for your purchase, please use the following information to complete your payment.",
    "voucher.telephoneNumber": "Phone Number",
    "voucher.shopperReference": "Shopper Reference",
    "boletobancario.btnLabel": "Generate Boleto",
    "boleto.sendCopyToEmail": "Send a copy to my email",
    "button.copy": "Copy",
    "": "Download",
    "boleto.socialSecurityNumber": "CPF/CNPJ",
    "creditCard.storedCard.description.ariaLabel": "Stored card ends in %@",
    "voucher.entity": "Entity",
    "donateButton": "Donate",
    "notNowButton": "Not now",
    "thanksForYourSupport": "Thanks for your support!",
    "preauthorizeWith": "Preauthorize with",
    "confirmPreauthorization": "Confirm preauthorization",
    "confirmPurchase": "Confirm Purchase",
    "applyGiftcard": "Apply Giftcard",
    "": "Pin",
    "creditCard.encryptedPassword.label": "First 2 digits of card password",
    "creditCard.encryptedPassword.placeholder": "12",
    "creditCard.encryptedPassword.invalid": "Invalid password",
    "creditCard.taxNumber.label": "Cardholder birthdate (YYMMDD) or Corporate registration number (10 digits)",
    "creditCard.taxNumber.placeholder": "YYMMDD / 0123456789" // <= SKIP TRANSLATION (format is always the same),
    "creditCard.taxNumber.labelAlt": "Corporate registration number (10 digits)",
    "creditCard.taxNumber.invalid": "Invalid Cardholder birthdate or Corporate registration number",
    "storedPaymentMethod.disable.button": "Remove",
    "storedPaymentMethod.disable.confirmation": "Remove stored payment method",
    "storedPaymentMethod.disable.confirmButton": "Yes, remove",
    "storedPaymentMethod.disable.cancelButton": "Cancel",
    "ach.bankAccount": "Bank account",
    "ach.accountHolderNameField.title": "Account holder name",
    "ach.accountHolderNameField.placeholder": "J. Smith",
    "ach.accountHolderNameField.invalid": "Invalid account holder name",
    "ach.accountNumberField.title": "Account number",
    "ach.accountNumberField.invalid": "Invalid account number",
    "ach.accountLocationField.title": "ABA routing number",
    "ach.accountLocationField.invalid": "Invalid ABA routing number",
    "select.stateOrProvince": "Select state or province",
    "": "Select country",
    "generateQRCode": "Generate QR Code",
    "blik.confirmPayment": "Open your banking app to confirm the payment.",
    "blik.invalid": "Enter 6 numbers",
    "blik.code": "6-digit code",
    "": "Get the code from your banking app."

See also