Finding the key of a text
Every customizable text carries metadata attributes in the page. To find the key of the text you want to change:- Open any checkout page in your browser.
- Right-click the text and choose Inspect.
- In the Elements tab, look at the selected node. The attributes sit on the element that renders the text, or right next to it.

Messages use the ICU format through
next-intl. The image below shows cardinal pluralization: the same key renders differently for one item and for many.

next-intl documentation. Keep the placeholders of the original template when you override a message.
Where to edit
Admin → Versions → your version → Messages Configuration. The tab has two rows,ui and app, and each one is edited as a JSON object with its Edit button.

Versions → Messages Configuration
uiholds the texts of the checkout pages and components. Almost everything you will change is here.appholds application-level texts.
Overriding a text
Edit theui row and add the key with the new text. Click Update; the change is saved immediately and the checkout uses it on the next page load.
For one value in every language, use the key at the top level:
ui
ui
Rules for locale keys
- Locale keys are lowercase with a hyphen:
pt-br,en-us,es-mx.pt-BRnever matches. - The match is exact against the shopper’s language. A
ptkey does not apply to apt-brsession. - A row is either flat or locale-keyed. Once a key matching the current language exists, only that nested object is used and any flat keys next to it are ignored for that language.
- Your overrides are merged over the template’s defaults, so you only list the keys you change.
en, en-us, en-ca, es, es-ar, es-es, es-gt, es-mx, fr, fr-ca, pt, pt-br, ro, ro-ro. A shopper in an unsupported locale gets the first locale with the same language, then en-us.

Overriding the cart page title
Adding a translation
A translation is just an override under another locale key. Add the locale object with the keys you want to translate; everything you leave out keeps the template’s default for that locale.
Custom components
Messages are for the native components. A custom component owns its own strings; make them configurable with props and read the session locale fromuseCheckoutSession().session.locale to pick the right one.
Related
- Form Fields: validation rules reference message keys of the form
addressForm_<id> - Managing Versions: where the Messages tab lives