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.

  1. In your Shopify admin, go to Settings → Languages and add each language you want to support.
  2. Open the Stashlist app and navigate to Translations in the sidebar.
  3. 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.
  4. 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

LabelKeyEnglish default
Add to wishlist buttonbtn.addAdd to wishlist
Saved statebtn.savedSaved

Toast

LabelKeyEnglish default
Added toast messagetoast.addedAdded to wishlist

Wishlist page

LabelKeyEnglish default
Page headingpage.titleMy Wishlist
Add to cart buttonpage.add_to_cartAdd to cart
Sold out labelpage.sold_outSold out
View product linkpage.view_productView product
Remove buttonpage.removeRemove
Share buttonpage.shareShare
Empty state messagepage.emptyYour wishlist is empty

Drawer

LabelKeyEnglish default
Drawer headingdrawer.titleMy Wishlist
View wishlist linkdrawer.view_wishlistView wishlist
Add to cart buttondrawer.add_to_cartAdd to cart
Sold out labeldrawer.sold_outSold out
Move to cart buttondrawer.move_to_cartMove to cart
Remove itemdrawer.removeRemove

Cart embed

LabelKeyEnglish default
Save for later buttoncart.save_for_laterSave for later
Saved statecart.savedSaved
Saved section headingcart.saved_headingSaved for later
Move to cart buttoncart.move_to_cartMove to cart
View wishlist linkcart.view_wishlistView wishlist
Remove buttoncart.removeRemove

Lists

LabelKeyEnglish default
Default list namelists.default_nameMy Wishlist
New list buttonlists.new_list+ New list
List name input placeholderlists.name_placeholderList name