Translations
Stashlist supports multi-language stores out of the box. The Translations page in your admin lets you provide translated text for every customer-facing string: buttons, labels, toasts, drawer headings, and more.
Setup
Before you can add translations, your store needs at least one additional language enabled. Go to Shopify admin → Settings → Languages and add the languages you sell in. Once added, they appear as tabs on the Stashlist Translations page.
-
In your Shopify admin, go to Settings → Languages and add each language you want to support.
-
Open the Stashlist app and navigate to Translations in the sidebar.
-
Select a language tab. You'll see every customer-facing string with its English default on the left and an input field on the right.
-
Fill in the translations you want to override and click Save translations. Leave any field blank to keep the English default.
Instant publish. Saving translations writes them directly to your storefront via a shop metafield. No theme deployment needed.
How it works
When you save translations, Stashlist serialises all your translations into a JSON object and stores it as a stashlist.i18n shop metafield. The Stashlist Settings embed injects this as window.stashlistI18n on every storefront page. The wishlist scripts then read Shopify.locale at runtime and pick the right translations, falling back to English for any string not yet translated.
This means translations work across all Stashlist embeds simultaneously: the wishlist button, drawer, cart embed, wishlist page, and list UI all respond to the active locale.
String reference
The table below lists every translatable string, its key, and its English default. All strings are editable from the Translations page in the app; you don't need to work with keys directly.
Buttons
| Label | Key | English default |
| Add to wishlist button | btn.add | Add to wishlist |
| Saved state | btn.saved | Saved |
Toast
| Label | Key | English default |
| Added toast message | toast.added | Added to wishlist |
Wishlist page
| Label | Key | English default |
| Page heading | page.title | My Wishlist |
| Add to cart button | page.add_to_cart | Add to cart |
| Sold out label | page.sold_out | Sold out |
| View product link | page.view_product | View product |
| Remove button | page.remove | Remove |
| Share button | page.share | Share |
| Empty state message | page.empty | Your wishlist is empty |
Drawer
| Label | Key | English default |
| Drawer heading | drawer.title | My Wishlist |
| View wishlist link | drawer.view_wishlist | View wishlist |
| Add to cart button | drawer.add_to_cart | Add to cart |
| Sold out label | drawer.sold_out | Sold out |
| Move to cart button | drawer.move_to_cart | Move to cart |
| Remove item | drawer.remove | Remove |
Cart embed
| Label | Key | English default |
| Save for later button | cart.save_for_later | Save for later |
| Saved state | cart.saved | Saved |
| Saved section heading | cart.saved_heading | Saved for later |
| Move to cart button | cart.move_to_cart | Move to cart |
| View wishlist link | cart.view_wishlist | View wishlist |
| Remove button | cart.remove | Remove |
Lists
| Label | Key | English default |
| Default list name | lists.default_name | My Wishlist |
| New list button | lists.new_list | + New list |
| List name input placeholder | lists.name_placeholder | List name |