Translate and localize payment forms
Payment Form supports localization:
- When previewing the payment form, it is displayed in the selected language based on the region you choose from the preview region list.
- To support localization at runtime, you can use either of the following approaches:
- Use Zuora's default localization, which supports 41 languages.
- Configure your custom translation files.
At runtime, the translation is dynamically loaded based on the following logic:
- If the
locale
parameter is specified in the Payment Form configuration parameters in the integration code, the payment form is rendered in the language corresponding to thelocale
parameter. - If the
locale
parameter is not specified, the payment form is rendered in the language based on the locale configuration of the browser. - Otherwise, the payment form is rendered in English.
Zuora's default localization
The following table describes the 41 languages supported by Zuora's default localization:
Language name | Language code |
---|---|
Arabic |
ar |
Bulgarian |
bg |
Catalan, Valencian |
ca |
Croatian |
hr |
Czech |
cs |
Danish |
da |
Dutch |
nl |
English |
en |
Estonian |
et |
Filipino |
fil |
Finnish |
fi |
French |
fr |
German |
de |
Greek |
el |
Hebrew |
iw |
Hindi |
hi |
Hungarian |
hu |
Icelandic |
is |
Indonesian |
id |
Italian |
it |
Japanese |
ja |
Korean |
ko |
Latvian |
lv |
Lithuanian |
lt |
Malay |
ms |
Maltese |
mt |
Norwegian |
no |
Norwegian Bokmål |
nb |
Polish |
pl |
Portuguese |
pt |
Romanian |
ro |
Russian |
ru |
Simplified Chinese |
zh |
Slovak |
sk |
Slovenian |
sl |
Spanish |
es |
Swedish |
sv |
Thai |
th |
Turkish |
tr |
Ukrainian |
uk |
Vietnamese |
vi |
Configure custom translation files
Zuora provides the Resource Bundle Template, which is a template file for you to create translated resource files for Payment Form. Complete the following tasks to download the template, edit it to a custom translation resource file, and upload the file:
- In the Zuora UI, click your username in the upper right and navigate to Settings > Payments > Payment Form.
- Click the Custom Localization tab. The available translation resource files are listed on the page.
- Click Add Custom Localization.
- In the Add Custom Localization dialog, select a locale from the Locale list and click Next.
- Click Download to download the resource template file. The name of the file is
resource_bundle_template_<locale_code>.txt
, such asresource_bundle_template_fr.txt
. - Edit the template file to provide translations for the texts and labels on the payment form:
- Open the downloaded template file in a text editor, and then enter the translated labels and texts for the keys. Do not remove any code lines from the Resource Bundle Template file. For more information about the keys, see Keys in the translation template file in a later section.
- Save the custom resource file with UTF-8 encoding, except for the following European languages, which require ISO-8859-1 encoding to correctly display the payment form in their locales:
- French
- Canadian French
- Italian
- Click Upload and select the custom resource file to upload the translated resource file.
- Click Add.
Keys in the translation template file
The following keys are available in the Resource Bundle Template file:
Key | Description |
---|---|
metaForm.button.type.pay |
Text on the submit button of type “Pay” |
metaForm.button.type.book |
Text on the submit button of type “Book” |
metaForm.button.type.subscribe |
Text on the submit button of type “Subscribe” |
metaForm.button.type.donate |
Text on the submit button of type “Donate” |
metaForm.validation.rule.required |
Error message to say that the field is a required field. |
metaForm.validation.rule.minLength |
Error message to say that the field value length is too short. |
metaForm.validation.rule.maxLength |
Error message to say that the field value length exceeds the maximum length. |
metaForm.validation.rule.minValue |
Error message to say that the field value is less than the minimum limit. |
metaForm.validation.rule.maxValue |
Error message to say that the field value exceeds the maximum limit. |
metaForm.validation.rule.pattern |
Error message to say that the field value doesn’t match the expected pattern. |
metaForm.validation.sepa.invalidIban |
Error message to say that the provided IBAN is invalid. (For Bank Transfer - SEPA). |
metaForm.validation.cc.invalidCcNumber |
Error message to say that the provided card number is invalid. |
metaForm.validation.cc.invalidCardHolderName |
Error message to say that the provided card holder name is invalid. |
metaForm.validation.cc.notSupportedCard |
Error message to say that the provided card type is not supported. |
metaForm.validation.cc.passedExpiryDate |
Error message to say that the expiry date must be a future date. |
metaForm.paymentMethod.creditcard.cardNumber.label |
Label for the card number input. |
metaForm.paymentMethod.creditcard.cardNumber.placeholder |
Placeholder for the card number input. |
metaForm.paymentMethod.creditcard.cardNumber.validation.required |
Error message to say the card number is a required field. |
metaForm.paymentMethod.creditcard.cardNumber.validation.pattern |
Error message to say the card number is invalid. |
metaForm.paymentMethod.creditcard.cardExpiryDate.placeholder |
Placeholder for the card expiry date. |
metaForm.paymentMethod.creditcard.cardExpiryDate.validation.required |
Error message to say the card expiry date is a required field. |
metaForm.paymentMethod.creditcard.cardExpiryDate.validation.pattern |
Error message to say the card expiry date format is invalid. |
metaForm.paymentMethod.creditcard.cardCvv.placeholder |
Placeholder for the CVV. |
metaForm.paymentMethod.creditcard.cardCvv.validation.required |
Error message to say the CVV is a required field. |
metaForm.paymentMethod.creditcard.cardCvv.validation.pattern |
Error message to say the CVV is invalid. |
metaForm.paymentMethod.creditcard.cardHolderName.label |
Label for the card holder name. |
metaForm.paymentMethod.creditcard.cardHolderName.placeholder |
Placeholder for the card holder name. |
metaForm.paymentMethod.creditcard.cardHolderName.validation.required |
Error message to say that the Cardholder Name is a required field. |
metaForm.paymentMethod.creditcard.cardHolderName.validation.minLength |
Error message to say that the card holder name exceeds the maximum length |
metaForm.paymentMethod.ach.routingNumber.label |
Label for Bank Routing number in case of “ACH” |
metaForm.paymentMethod.ach.routingNumber.placeholder |
Placeholder for the Bank Routing Number in case of “ACH”. |
metaForm.paymentMethod.ach.routingNumber.validation.required |
Error message to say that the Bank Routing Number is a required field in case of “ACH”. |
metaForm.paymentMethod.ach.routingNumber.validation.minLength |
Error message to say that the Bank Routing Number length is less than the minimum length |
metaForm.paymentMethod.ach.accountNumber.placeholder |
Placeholder for the Bank Account Number in case of “ACH”. |
metaForm.paymentMethod.ach.accountNumber.validation.required |
Error message to say that the Bank Account Number is a required field in case of “ACH”. |
metaForm.paymentMethod.ach.accountNumber.validation.minLength |
Error message to say that the Bank Account Number length is less than the minimum length |
metaForm.paymentMethod.ach.accountType.values.checking |
Text for the “Checking” Bank Account Type |
metaForm.paymentMethod.ach.accountType.values.saving |
Text for the “Saving” Bank Account Type |
metaForm.paymentMethod.ach.accountType.values.businessChecking |
Text for the “Business Checking” Bank Account Type |
metaForm.paymentMethod.ach.bankName.placeholder |
Placeholder for the Bank Name in case of “ACH”. |
metaForm.paymentMethod.ach.bankName.validation.required |
Error message to say that the Bank Name is a required field in case of “ACH”. |
metaForm.paymentMethod.ach.bankName.validation.minLength |
Error message to say that the Bank Name length is less than the minimum length in case of “ACH”. |
metaForm.paymentMethod.ach.accountName.placeholder |
Placeholder for the Bank Account Name in case of “ACH”. |
metaForm.paymentMethod.ach.accountName.validation.required |
Error message to say that the Bank Account Name is a required field in case of “ACH”. |
metaForm.paymentMethod.ach.accountName.validation.minLength |
Error message to say that the Bank Account Name length is less than the minimum length in case of “ACH”. |
metaForm.paymentMethod.sepa.accountName.label |
Label for the Bank Account Name in case of “SEPA”. |
metaForm.paymentMethod.sepa.accountName.placeholder |
Placeholder for the Bank Account Name in case of “SEPA”. |
metaForm.paymentMethod.sepa.accountName.validation.required |
Error message to say that the Bank Account Name is a required field in case of “SEPA”. |
metaForm.paymentMethod.sepa.accountName.validation.minLength |
Error message to say that the Bank Account Name length is less than the minimum length in case of “SEPA”. |
metaForm.paymentMethod.sepa.iban.placeholder |
Placeholder for the IBAN. |
metaForm.paymentMethod.sepa.iban.validation.required |
Error message to say that the IBAN is a required field in case of “SEPA”. |
metaForm.paymentMethod.sepa.iban.validation.pattern |
Error message to say that the provided IBAN pattern is invalid in case of “SEPA”. |
metaForm.paymentMethod.pad.accountName.label |
Label for the Bank Account Name field in case of “PAD”. |
metaForm.paymentMethod.pad.accountName.placeholder |
Placeholder for the Bank Account Name field in case of “PAD”. |
metaForm.paymentMethod.pad.accountName.validation.required |
Error message to say that the Bank Account Name is a required field in case of “PAD”. |
metaForm.paymentMethod.pad.accountNumber.placeholder |
Placeholder for the Bank Account Number field in case of “PAD”. |
metaForm.paymentMethod.pad.accountNumber.validation.required |
Error message to say that the Bank Account Number is a required field in case of “PAD”. |
metaForm.paymentMethod.pad.bankCode.placeholder |
Placeholder for the Bank Code field in case of “PAD”. |
metaForm.paymentMethod.pad.bankCode.validation.required |
Error message to say that the Bank Code is a required field in case of “PAD”. |
metaForm.paymentMethod.pad.bankBranchCode.placeholder |
Placeholder for the Bank Branch Code field in case of “PAD”. |
metaForm.paymentMethod.pad.bankBranchCode.validation.required |
Error message to say that the Bank Branch Code is a required field in case of “PAD”. |
metaForm.paymentMethod.pad.bankName.placeholder |
Placeholder for the Bank Name in case of “PAD”. |
metaForm.paymentMethod.pad.bankName.validation.required |
Error message to say that the Bank Name is a required field in case of “PAD”. |
metaForm.billingAddress.title |
Label for the Billing Address section |
metaForm.billingAddress.country.label |
Label for the Country field |
metaForm.billingAddress.state.label |
Label for the State field |
metaForm.billingAddress.state.placeholder |
Placeholder for the State field. |
metaForm.billingAddress.state.validation.required |
Error message to say that the State is a required field. |
metaForm.billingAddress.city.placeholder |
Placeholder for the City field. |
metaForm.billingAddress.city.validation.required |
Error message to say that the City is a required field. |
metaForm.billingAddress.address1.placeholder |
Placeholder for the Address Line 1 field. |
metaForm.billingAddress.address1.validation.required |
Error message to say that the Address line 1 is a required field. |
metaForm.billingAddress.address2.placeholder |
Placeholder for the Address Line 2 field. |
metaForm.billingAddress.zipcode.placeholder |
Placeholder for the Zip/Postal Code field. |
metaForm.billingAddress.zipcode.validation.required |
Error message to say that the Zip/Postal code is a required field. |
metaForm.email.label |
Label for the Email field. |
metaForm.email.placeholder |
Placeholder for the Email field. |
metaForm.email.validation.required |
Error message to say that the email is a required field. |
metaForm.email.validation.pattern |
Error message to say that the provided email is invalid. |
paymentForm.title.creditcard |
Label for the “Card” payment method type |
paymentForm.title.ach |
Label for the “ACH” payment method type |
paymentForm.title.sepa |
Label for the “SEPA” payment method type |
paymentForm.title.googlepay |
Label for the “Google Pay” payment method type |
paymentForm.title.applepay |
Label for the “Apple Pay” payment method type |
paymentForm.title.pad |
Label for the “PAD” payment method type |
paymentForm.title.paypal |
Label for the “Paypal” payment method type |
Here is a sample resource file translated into French: