Shopify · June 29, 2023
How to Translate & Localize a Shopify Theme
Translating a Shopify theme means more than swapping words: it covers Shopify's translate and adapt system, theme content vs. app strings, currency and formatting, and layout that survives longer text. Here is the practical, step-by-step way to do it.
By Polo Themes
To translate and localize a Shopify theme, you set up markets and languages in Shopify admin, then translate three separate layers: the theme's static text (via Translate and adapt or a similar app), your product and collection content, and any checkout or notification strings. You also need to test that your layout does not break when translated text runs longer than the English original, and that currency, date, and address formats match each target market. None of this requires switching themes — it is a configuration and content process that any well-built theme, including our Wosa and Electronix Shopify themes, should support cleanly.
Selling in more than one language is one of the more misunderstood parts of running a Shopify store. Merchants often assume it is purely a translation task — hand the copy to a translator, paste it back in, done. In practice it touches theme markup, app content, checkout settings, and market configuration, and skipping any one of those layers leaves you with a store that looks half-finished in the second language. This guide walks through the full process in order, so you can localize a theme properly the first time instead of patching gaps after a customer reports a mistranslated button.
Step 1: Understand the Three Layers of a Localized Store
Before touching any settings, it helps to separate what actually needs translating, because each layer is edited in a different place.
- Theme static text: labels baked into the theme itself — "Add to cart", "Sold out", section headings, footer text, search placeholders. This lives in the theme's schema and locale files.
- Store content: product titles and descriptions, collection descriptions, blog posts, page content, and metafields — content you or your team wrote.
- Shopify system strings: checkout, order status pages, shipping labels, and transactional emails, which Shopify manages separately from theme and store content.
A common mistake is translating only the store content (products and collections) and assuming the theme "just works" in the new language, because that is the layer that is most visible day to day. The result is a page where product names are in French but every button around them still says "Add to cart" in English. All three layers need attention for a translation to feel complete.
Step 2: Set Up Markets and Languages
Start in Settings > Markets in Shopify admin. A market groups one or more countries together and lets you assign a language, currency, and (on eligible plans) domain or subfolder pattern to that group — for example, a "Europe" market that serves French and German with EUR pricing. Markets are the foundation localization sits on top of: without them, you can still add languages, but you lose the ability to tie a language to specific pricing, currency display, or country-specific behavior.
Once markets are defined, go to Settings > Languages and add each language you plan to support. Shopify will generate a machine translation as a starting point for store content in supported languages, which is useful for a first pass but should always be reviewed by a fluent speaker before publishing — automated translation reliably mishandles product terminology, idioms, and brand voice.
Step 3: Translate Theme Static Text with Translate and Adapt
Shopify's free Translate and Adapt app (or a comparable localization app) is the standard tool for translating the strings baked into your theme — button labels, section titles, form field names, and any text your theme developer marked as translatable through the theme's schema and locale JSON files. Install it, select a target language, and it will surface every translatable string in the theme, organized by template and section, with a side-by-side editing view.
This is also where you translate dynamic-but-not-content strings: things like "X items in cart", pagination labels, and filter option names generated by the theme rather than typed by you. A theme built with proper locale files makes this step comprehensive — if large chunks of visible text do not show up in the translation app at all, that is usually a sign the theme hard-codes strings in its templates instead of pulling from a locale file, which is worth checking before you commit to a theme for a multi-language store.
Step 4: Translate Store Content
Product titles, descriptions, collection descriptions, page and blog content, and metafields all get translated through the same Translate and Adapt interface, under the "Products", "Collections", "Pages", and "Metafields" tabs. This is usually the largest volume of work, since it scales with your catalog rather than your theme, so plan the time accordingly — a 50-product catalog in three languages is 150 sets of product copy to review, not 50.
If you rely on metafields for structured product data — size charts, material breakdowns, spec tables — confirm those metafields are marked as translatable in your theme's settings and that your theme actually renders the translated value rather than always pulling the default-language field. This is a frequent gap in themes that were not designed with localization in mind from the start.
Step 5: Handle Checkout, Emails, and System Strings
Checkout, shipping method names, and transactional emails (order confirmation, shipping updates, abandoned cart) are Shopify-managed and translated separately from theme and store content, generally through the language settings in admin and, for checkout extensibility customizations, through their own translation flow. Test a full purchase in each supported language before launch — it is easy to translate the storefront thoroughly and never notice that the order confirmation email still arrives in the default language.
Step 6: Localize Currency, Numbers, and Address Formats
Localization is more than language. Within each market, set the local currency and confirm Shopify's currency formatting matches local conventions — decimal and thousands separators differ by region, and getting this wrong looks like a pricing error to a shopper even when the number itself is correct. Also review date formats (day/month/year vs. month/day/year) anywhere your theme displays dates, such as estimated delivery windows or blog post timestamps, and confirm your checkout's address form fields make sense for each country you ship to — some countries do not use a "state" field, others require a different postal code format.
Step 7: Stress-Test the Layout for Longer Text
This is the step most localization projects skip, and it is where a poorly built theme shows its cracks. German and Finnish product labels routinely run 30-40% longer than the English equivalent; French adds accented characters that some condensed fonts render oddly. Buttons sized tightly around English text can wrap awkwardly, truncate, or overflow their container once translated. Before launch, load your busiest pages — homepage, a product page with a full option set, the cart drawer — in each target language and check that buttons, navigation labels, and badges hold up rather than breaking their layout.
Themes with rigid, pixel-fixed button widths or single-line text truncation baked into the CSS tend to fail this test first. Section-based, flexible-width themes generally cope much better, since labels can wrap or the container can grow instead of clipping text. If you are still choosing a theme and know multi-language support is coming, it is worth testing a candidate with a deliberately long placeholder string (not just the English default) before committing.
Step 8: Add a Language Switcher and Verify SEO Signals
Once translations are live, confirm your theme displays a visible language (and currency, if relevant) switcher — most themes built for international selling include one as a header or footer section, and Shopify's market setup handles the underlying routing (subfolders, subdomains, or ccTLDs depending on your plan). Separately, check that each translated page carries the correct hreflang tags, which Shopify markets generate automatically when configured correctly — this is what tells search engines which language version to show a given searcher, and it is worth spot-checking with your browser's page source rather than assuming it is correct.
Choosing a Theme Built for This
Not every theme handles this cleanly. Our Wosa fashion theme and Electronix electronics theme are both built with proper Shopify locale files and section-based, flexible layouts, so translated labels have room to breathe instead of clipping against fixed-width buttons. If you are evaluating themes for a store that will sell in more than one language from day one, it is worth browsing our full Shopify themes catalog and checking each candidate against the layout-stress test in Step 7 before you commit — retrofitting localization onto a rigid theme later is far more work than choosing a flexible one up front.
Frequently Asked Questions
Does translating my theme require switching to a different theme?
No. Translation is a content and configuration process layered on top of whatever theme you already use, provided that theme was built with proper Shopify locale files rather than hard-coded strings. If your current theme's text does not appear in Translate and Adapt at all, that is a sign of hard-coded strings, and it is worth raising with your theme developer or considering a better-structured theme.
Is Shopify's machine translation good enough to publish as-is?
It is a reasonable starting draft, not a finished translation. Machine translation frequently mishandles product terminology, brand voice, and idiomatic phrasing, so every machine-generated string should be reviewed by a fluent speaker, ideally one familiar with your product category, before it goes live.
What is the single most common localization mistake?
Translating store content (products, collections) but leaving theme static text and transactional emails in the default language, so the storefront reads as half-translated. The three layers — theme text, store content, and system strings — need to be addressed together for the experience to feel complete.
Do I need separate domains for each language?
No. Shopify markets support several URL structures — subfolders, subdomains, or country-code domains depending on your plan — and you can choose the option that fits your setup without needing a fully separate store or domain per language.