User Account Dictionary
The User Account dictionary contains all user-facing text, labels, and messages displayed by this drop-in. Customize the dictionary to:
- Localize the drop-in for different languages and regions
- Customize labels and messages to match your brand voice
- Override default text without modifying source code for the drop-in
Dictionaries use the i18n (internationalization) pattern, where each text string is identified by a unique key path.
How to customize
Section titled “How to customize”Override dictionary values during drop-in initialization. The drop-in deep-merges your custom values with the defaults.
import { initialize } from '@dropins/storefront-account';
await initialize({ langDefinitions: { en_US: { "Account": { "minifiedView": { "CustomerInformation": { "containerTitle": "My Custom Title", "genderMale": "Custom value" } } } } }});You only need to include the keys you want to change. For multi-language support and advanced patterns, see the Dictionary customization guide.
Customizing form field labels and placeholders
Section titled “Customizing form field labels and placeholders”Address form fields support custom labels and placeholders through the dictionary. Multiline fields like street addresses benefit from clear guidance for each line.
The pattern for customizing form fields:
Account.AddressForm.fields.{field_code}.labelAccount.AddressForm.fields.{field_code}.placeholderWhere {field_code} is the field’s code (for example, street, street_multiline_2, city, postcode).
Example: Customizing street address fields
Section titled “Example: Customizing street address fields”import { initialize } from '@dropins/storefront-account';
await initialize({ langDefinitions: { en_US: { "Account": { "AddressForm": { "fields": { "street": { "label": "Street Address", "placeholder": "Enter your street name" }, "street_multiline_2": { "label": "Additional Street Information", "placeholder": "Apartment, suite, floor, building" } } } } } }});Stored payment methods (Payments)
Section titled “Stored payment methods (Payments)”The PaymentMethods container and PaymentCard component use keys under Account.Payments for the section title, error messages, and per-card labels. When no saved methods exist, the empty state uses EmptyList.Payments in both Account.minifiedView and Account.fullSizeView, with the same default message in each view.
| Key path | Description |
|---|---|
Account.Payments.containerTitle | Section header for the stored payment methods list. |
Account.Payments.loadError | Heading shown when the list fails to load from GraphQL. |
Account.Payments.removeError | Heading shown when removing a token fails. |
Account.Payments.paymentCard.actionRemove | Label for the remove control on a card row. |
Account.Payments.paymentCard.cardEndingIn | Prefix before the masked card number (for example, “Credit card ending in”). |
Account.Payments.paymentCard.expiredLabel | Text for the expired badge when applicable. |
Account.Payments.removePaymentModal.title | Confirmation modal title when removing a stored payment method. |
Account.Payments.removePaymentModal.description | Body text asking the shopper to confirm removal. |
Account.Payments.removePaymentModal.actionCancel | Label for the control that closes the modal without deleting. |
Account.Payments.removePaymentModal.actionConfirm | Label for the control that confirms removal and runs the delete. |
Account.minifiedView.EmptyList.Payments.message | Empty state copy in minified (dashboard) layouts. |
Account.fullSizeView.EmptyList.Payments.message | Empty state copy on full-page account views. |
Default keys and values
Section titled “Default keys and values”Below are the default English (en_US) strings provided by the User Account drop-in:
{ "Account": { "minifiedView": { "CustomerInformation": { "containerTitle": "Account settings", "genderMale": "Male", "genderFemale": "Female", "changePassword": { "passwordValidationMessage": { "chartTwoSymbols": "Use characters and numbers or symbols", "chartThreeSymbols": "Use characters, numbers and symbols", "chartFourSymbols": "Use uppercase characters, lowercase characters, numbers and symbols", "messageLengthPassword": "At least {minLength} characters long", "passwordMismatch": "Passwords do not match. Please make sure both password fields are identical", "incorrectCurrentPassword": "The current password you entered is incorrect. Please check and try again.", "passwordUpdateMessage": "Your password has been updated" }, "containerTitle": "Change password", "currentPassword": { "placeholder": "Password", "floatingLabel": "Password" }, "newPassword": { "placeholder": "New Password", "floatingLabel": "New Password" }, "confirmPassword": { "placeholder": "Confirm new password", "floatingLabel": "Confirm new password" }, "buttonSecondary": "Cancel", "buttonPrimary": "Save" }, "customerInformationCard": { "buttonSecondary": "Change password", "buttonPrimary": "Edit", "accountCreation": "Account creation date" }, "editCustomerInformation": { "containerTitle": "Edit details", "buttonSecondary": "Cancel", "buttonPrimary": "Save", "accountSuccess": "Your account information has been updated.", "accountError": "Your account information has not been updated.", "passwordField": { "placeholder": "Password", "floatingLabel": "Password" } } }, "Addresses": { "containerTitle": "Addresses", "editAddressFormTitle": "Edit address", "differentAddressFormTitle": "Deliver to new address", "viewAllAddressesButton": "View address list", "differentAddressButton": "Use a different address", "ariaLabelAddressPicker": "form", "addressCard": { "actionRemove": "Remove", "actionEdit": "Edit", "cardLabelShipping": "Shipping", "cardLabelBilling": "Billing", "defaultLabelText": "DEFAULT", "ariaLabel": { "editButton": { "default": "Edit address", "shipping": "Edit default shipping address", "billing": "Edit default billing address", "shippingAndBilling": "Edit address set as default for both shipping and billing" }, "removeButton": { "default": "Remove address", "shipping": "Remove default shipping address", "billing": "Remove default billing address", "shippingAndBilling": "Remove address set as default for both shipping and billing" } } }, "removeAddressModal": { "title": "Remove address", "description": "Are you sure you would like to remove this address?", "actionCancel": "Cancel", "actionConfirm": "Remove" } }, "OrdersList": { "containerTitle": "Recent orders", "viewAllOrdersButton": "View all orders", "ariaLabelLink": "Redirect to full order information", "dateOrderPlaced": "Date order placed", "OrdersListCard": { "orderNumber": "Order number:", "itemsAmount": "items", "carrier": "Carrier:", "returns": "Return(s):", "orderDate": "Placed on" }, "OrdersListSelectDate": { "pastSixMonths": "Past 6 months", "currentYear": "Current year", "viewAll": "View all" } }, "EmptyList": { "Addresses": { "message": "No saved addresses" }, "OrdersList": { "message": "No orders" }, "Payments": { "message": "No saved payments" } } }, "fullSizeView": { "Addresses": { "containerTitle": "Addresses", "editAddressFormTitle": "Edit address", "differentAddressFormTitle": "Deliver to new address", "newAddressFormTitle": "Add address", "addNewAddressButton": "Create new", "differentAddressButton": "Use a different address", "ariaLabelAddressPicker": "form", "addressCard": { "actionRemove": "Remove", "actionEdit": "Edit", "cardLabelShipping": "Shipping", "cardLabelBilling": "Billing", "defaultLabelText": "DEFAULT", "ariaLabel": { "editButton": { "default": "Edit address", "shipping": "Edit default shipping address", "billing": "Edit default billing address", "shippingAndBilling": "Edit address set as default for both shipping and billing" }, "removeButton": { "default": "Remove address", "shipping": "Remove default shipping address", "billing": "Remove default billing address", "shippingAndBilling": "Remove address set as default for both shipping and billing" } } }, "removeAddressModal": { "title": "Remove address", "description": "Are you sure you would like to remove this address?", "actionCancel": "Cancel", "actionConfirm": "Remove" } }, "OrdersList": { "containerTitle": "Your orders", "ariaLabelLink": "Redirect to full order information", "dateOrderPlaced": "Date order placed", "OrdersListCard": { "orderNumber": "Order number:", "itemsAmount": "items", "carrier": "Carrier:", "returns": "Return(s):", "orderDate": "Placed on" }, "OrdersListSelectDate": { "pastSixMonths": "Past 6 months", "currentYear": "Current year", "viewAll": "View all" } }, "EmptyList": { "Addresses": { "message": "No saved addresses" }, "OrdersList": { "message": "No orders" }, "Payments": { "message": "No saved payments" } } }, "AddressForm": { "formText": { "secondaryButton": "Cancel", "primaryButton": "Save", "defaultShippingLabel": "Set as default shipping address", "defaultBillingLabel": "Set as default billing address", "saveAddressBook": "Save in address book" }, "fields": { "street": { "label": "Street Address", "placeholder": "Enter your street address" }, "street_multiline_2": { "label": "Additional Street Information", "placeholder": "Apartment, suite, floor, building" } } }, "FormText": { "requiredFieldError": "This is a required field.", "numericError": "Only numeric values are allowed.", "alphaNumWithSpacesError": "Only alphanumeric characters and spaces are allowed.", "alphaNumericError": "Only alphanumeric characters are allowed.", "alphaError": "Only alphabetic characters are allowed.", "emailError": "Please enter a valid email address.", "dateError": "Please enter a valid date.", "dateLengthError": "Date must be between {min} and {max}.", "urlError": "Please enter a valid URL, e.g., http://www.adobe.com.", "lengthTextError": "Text length must be between {min} and {max} characters." }, "AddressValidation": { "title": "Verify your address", "subtitle": "To ensure accurate delivery, we suggest the changes highlighted below. Please choose which address you would like to use. If neither option is correct, edit your address.", "suggestedAddress": "Suggested Address", "originalAddress": "Original Address" }, "Payments": { "containerTitle": "Payments", "loadError": "We couldn’t load your saved payment methods. Try again later.", "removeError": "We couldn’t remove this payment method. Try again.", "paymentCard": { "actionRemove": "Remove", "cardEndingIn": "Credit card ending in", "expiredLabel": "Expired" }, "removePaymentModal": { "title": "Remove Payment Method", "description": "Are you sure you would like to remove this payment method?", "actionCancel": "Cancel", "actionConfirm": "Remove" } } }}