Snug Gallery / Guides

Galleries on a multilingual Shopify store: what translates

Which parts of a Snug Gallery block follow the shopper's language on a multilingual Shopify store, which stay in one language, and how to plan captions.

A Shopify store that sells in two or three languages has a translation layer for almost everything: product titles, pages, theme text, even metafields. A gallery sits across several of those layers at once, so the honest answer to “will my gallery be in French for French shoppers?” is “some of it”. This guide goes through a Snug Gallery block piece by piece, says which language each piece will appear in and why, and ends with a way to set up captions so the parts that stay in one language do not look wrong in another.

Three kinds of text in one gallery

Look at a finished gallery on a storefront and you see one thing. Technically it is three. There is text you typed into the theme editor when you added the block: the heading above the gallery and, if customer photos are on, the label on the submission button. There is text the app ships with and renders itself: Add to cart, Sold out, View product, All on the filter bar, the accessibility labels on arrows and lightbox buttons, and every line of the customer photo form. And there is text you wrote in the Snug Gallery app for each image: the alt text, the caption title, the caption body and the link.

Shopify treats these three kinds differently because they live in three different places. Theme editor settings are theme content. The app's own strings come from a locale file bundled with the app. Per-image text is stored in app-owned metaobject entries in your store. Each place has its own rules about languages, and the gallery inherits all three.

Block settings: the heading and the button label

The heading is a plain text setting on the Snug Gallery app block, and so is the customer photo button label (which defaults to “Share your photo” when you leave it empty). Shopify's Translate & Adapt app reads text settings on app blocks as part of your theme's content, in the same way it reads a section heading from your theme, so once the block is on a page and has a value, the heading shows up for translation under that page's template.

A couple of practical notes from merchants who have done this. The field only appears once the block is actually added to a published or preview theme with a value in it; an empty heading has nothing to translate. And translations are tied to the theme, so if you switch themes or duplicate one, check the gallery heading in the new theme's translations rather than assuming it carried over. Shopify's developer forum has a long thread on localising app block settings where this behaviour has changed over time, so if the field does not show for you, confirm the block is enabled and populated before anything else.

The app's own strings: buttons, labels, the photo form

Everything the block renders on its own comes from a storefront locale file inside the app's theme extension. Shopify's theme app extension documentation is explicit that these files hold customer-facing translations and that merchants cannot edit them. Snug Gallery currently ships one such file, English. That means Add to cart on a shop-the-look pin, Sold out, View product, the From price prefix, the All tab on the filter bar, screen-reader text such as Previous images and Open image, and the whole customer photo form (Choose a photo, Your name, the consent line, Send photo and the error messages) are rendered in English on every language of your storefront today.

We are saying this plainly because it is the part most likely to surprise a merchant who has translated everything else. For a gallery that is only images and captions, none of these strings appear and there is nothing to notice. For a gallery with shop-the-look pins, the filter bar or the submission form on a non-English storefront, you will see English words inside an otherwise translated page. If you sell mainly in one non-English language, tell us which one through the support page; adding a locale file is a small change on our side and we prioritise languages merchants actually ask for.

A workaround that works today: the filter bar's tag names are your own text, not the app's, so they appear exactly as you typed them. Only the All tab comes from the locale file. If the English All is the one word that bothers you, a one-line CSS rule in the block's custom CSS field can hide it, at the cost of losing the reset button; most stores leave it.

Per-image text: alt text, captions and links

Alt text, caption title, caption text, the link URL and the tags are stored once per image, in your store, as fields on app-owned metaobject entries. Shopify does allow a metaobject definition to be marked translatable, which would put its fields into Translate & Adapt alongside products and pages. Snug Gallery's definitions are not marked translatable at the moment, so each image has one alt text, one caption title and one caption body, and they appear identically in every language.

This is the layer where a multilingual store has to make a decision, because captions are the text shoppers actually read. There is no setting that changes it, so the choice is editorial: what should a caption say so that it reads well in all of your languages? The next section is about that.

Writing captions for a store with more than one language

The first option is to write captions that do not need translating. Product names, collection names, a season and a year, a place name, a photographer credit: these are the same in every language, and for a lookbook or an inspiration gallery they are often all a caption needs. Many strong galleries carry no caption body at all and rely on the image, with the caption title holding the product or look name.

The second option is to use the layers that do translate. The gallery heading is translatable, so put the sentence you care about there rather than in a caption. For shop-the-look galleries, the pin pulls the product title and price from the product itself, and product titles are translated through Shopify's normal product translations, so the text on the pin follows the shopper's language even though the caption does not.

The third option is one gallery per language. Create a French gallery and an English gallery with the same images and translated captions, add two app blocks to the page, and set the heading of each to the gallery's language. Both blocks render for everyone, so this only works if your theme or a small CSS rule hides one of them based on the page's language. Shopify exposes the current language as an attribute on the page, and a theme developer can use it to hide one block. It is the most work of the three and the only one that gives fully translated captions, so it suits a handful of hero galleries rather than every gallery in the store.

Whichever you choose, alt text deserves its own thought. Alt text is read by screen readers in the language of the page they think they are on, and by search engines as a description of the image. A French shopper using a screen reader on your French storefront will hear an English alt text read with French pronunciation, which is unpleasant but understandable; an empty alt text is worse. Our advice is to write alt text in your main language, keep it descriptive, and not try to cram two languages into one field.

Shopify Markets, currencies and the gallery

Language is not the only thing a multilingual store varies. If you use Shopify Markets, the shop-the-look pin shows the product price in the shopper's market currency, because the pin reads the price from the product on the page in the context of the current market, the same way the product page does. Nothing in the gallery stores a price, so there is no conversion to get wrong. Catalog prices per market, where a product is deliberately priced differently abroad, show correctly for the same reason.

Product availability on a pin also follows the market: a product not published to a market will not add to the cart there, and the pin shows the Sold out state from the locale file. If you run market-specific galleries, say a lookbook with products that only ship to one region, use the per-gallery approach above and hide the block for other markets with the same technique used for languages.

A short checklist before you launch a second language

  1. Open Translate & Adapt, pick the language, find the page templates where gallery blocks sit and translate each gallery heading and, if you use customer photos, the button label.
  2. Decide which of the three caption approaches above you are using, and apply it to the galleries that matter most first. Hero and homepage galleries deserve the per-language treatment; archive galleries can stay language-neutral.
  3. Switch the storefront to the second language and open one gallery of each kind you use: plain, filtered, shop-the-look, customer photos. Note any English strings from the app's locale file and decide whether they are acceptable for now.
  4. Check alt text on the dozen images that get the most traffic, so that the main-language text you decided on is actually there. Where images come from your store's Files, alt text set on the file in Shopify is what the gallery uses, as the Files guide explains.
  5. If an app string in your language would make a real difference to your shoppers, tell us which language. That is the one thing on this list we can fix for you.

Frequently asked questions

Does Snug Gallery translate captions for multilingual Shopify stores?

Not today. Caption title, caption text, alt text and links are stored once per image and shown in every language. The gallery heading, which is a block setting, can be translated through Shopify's Translate & Adapt app, and product names and prices on shop-the-look pins follow Shopify's product translations and market pricing.

Why does my translated store show Add to cart in English inside the gallery?

That text comes from the app's storefront locale file, which merchants cannot edit and which currently exists in English only. The same applies to Sold out, View product, the All filter tab, accessibility labels and the customer photo form. Tell us which language you need and we can add a locale file for it.

Can I translate the gallery heading with Translate & Adapt?

Yes. The heading is a text setting on the app block, and Shopify treats app block text settings as theme content. Add the block to the theme, give the heading a value, then open Translate & Adapt, pick the language and find the heading under the template of the page where the block sits.

What is the best way to have fully translated captions in two languages?

Create one gallery per language with the same images and translated captions, place both blocks on the page, and have your theme hide the block that does not match the current storefront language. It is more work than writing language-neutral captions, so reserve it for the few galleries where caption text really matters.

More guides