Skip to content

By , who builds the Hullara theme

· Tested on Hullara 0.2.4 and 0.2.5 on a Shopify development store with French and German published, 4 October 2026 · How we test and write these pages

Why parts of your Shopify store stay in English after you translate it

You translated the store, published the language, and some words are still English — a heading, the browser tab, a button after a click. Almost always the cause is the theme, not the translation app: the word never reached the place a translation app reads. There are four such places. Each one has a quick test, and a fix that is either a setting or a few lines of code.

We know these four because we found all of them in our own theme. In October 2026 we published French and German on our development store, translated the product option names, and went through every page in both languages. The details of what we measured are with each section below.

1. A theme setting with English already in it

Many headings — "Your cart", a newsletter title, a ticker message — are settings of a section, and a setting can arrive with English typed in as its default. A setting's value is text the merchant owns, so it is shown as typed, in every language, until somebody translates that value.

How to tell: open the theme editor, click the section, and look for the English words in one of its fields.

The fix: translate the field's value — Shopify's developer documentation lists text settings among those merchants translate in Translate & Adapt — or, if the theme shows its own translated wording when the field is empty, clear the field.

What we found: in Hullara 0.2.4 the cart page and the cart drawer defaulted their heading to "Your cart". The drawer had a translated fallback for an empty heading, and the default meant it was never empty — so French and German shoppers saw "Your cart". Version 0.2.5 ships the field empty.

2. Words typed into the theme's code

A translation app can only offer what the theme puts in its locale files — the locales/*.json files the t filter reads. A word typed straight into the Liquid is not in any of them, so no app can show it to you, and no translation reaches it.

How to tell: you cannot find the English words anywhere in Translate & Adapt, and they are not in any section's settings. Look at the browser tab as well as the page — the <title> is the easiest place to miss.

The fix: move the words into the locale files and render them with t. In our theme it was the tab title on a filtered or second page:

{%- comment -%} Before: two English words in the layout {%- endcomment -%}
{%- if current_tags %} &ndash; tagged "{{ current_tags | join: ', ' }}"{% endif -%}
{%- if current_page != 1 %} &ndash; Page {{ current_page }}{% endif -%}

{%- comment -%} After: both from the locale, with the tags joined before `t` {%- endcomment -%}
{%- if current_tags %}{% assign title_tags = current_tags | join: ', ' %} &ndash; {{ 'general.meta.tagged' | t: tags: title_tags }}{% endif -%}
{%- if current_page != 1 %} &ndash; {{ 'general.pagination.page' | t: number: current_page }}{% endif -%}

with "general": { "meta": { "tagged": "tagged “{{ tags }}”" } } in en.default.json and a translation in each language's file. A merchant on the Shopify Community who added text to a theme was given the same answer — a key in the locale file and the t filter is what makes the text visible to a translation app:

What we found: Hullara 0.2.4 had "tagged" and "Page" typed into the title. On the German store, the second page of a collection was titled "Page 2". Version 0.2.5 reads both from the locale, in all five of its languages.

Edit theme code in a copy of your theme, not the live one — Online Store › Themes › … › Duplicate first.

3. Parts the theme redraws after a click

Some of a page is redrawn without reloading it — the price and the buy button when the shopper picks a size, the cart after an add. If the theme fetches that new piece of page from an address without the language in it (/products/… instead of /fr/products/…), Shopify answers in the default language, and the redrawn part turns English.

How to tell: open a product in your second language, pick another option, and watch the buy button. To be sure, open the browser's developer tools, Network tab, and look at the request made when you click: its path should start with your language, like /fr/.

The fix is in the theme's JavaScript or Liquid — build the address from the product's own URL, which Shopify gives with the language in it, or from routes. On the Shopify Community the reported case was an "Add to Cart" button that switched to English on every variant change, and the fix given was a locale-aware route:

What we found: nothing to fix in this one. Hullara redraws the product section from the product's own URL; on our French and German pages the request went to /fr/… and /de/… and the button stayed in the shopper's language. That is now a test that runs against the store.

4. Swatches matched by the option's name

Translating an option's name — "Colour" becoming "Couleur" — is a normal part of translating a store. A theme that finds the colour option by comparing its name with the word "Colour" stops finding it in every other language, and the colour swatches quietly disappear from product cards.

How to tell: compare a collection page in your default language with the same page in a translated one. If the swatch row is on the cards in one and gone in the other, the theme is matching by name.

The fix: if the theme has a setting where you type the name of the option to show as swatches, check whether it accepts the translated names too; otherwise the theme has to find the option by something that does not change with the language. Shopify's own swatch data — an option linked to a colour, set up in Settings › Products — is the same in every language.

What we found: this one was ours. In Hullara 0.2.4 a collection page with six cards showing swatches showed none in French and none in German. In 0.2.5 a card falls back to the option that carries swatch data when the name does not match.

Check your own store in ten minutes

  1. Publish the language, then open the storefront with its prefix — /fr, /de.
  2. Read the header, the footer, a collection, a product, the cart and the cart drawer, and the browser tab on page two of a collection.
  3. On a product, pick another option and watch the buy button.
  4. Compare the swatch rows on a collection page with the default language.
  5. Search for nothing — the empty-results message — and open an address that does not exist, for the 404.

Anything still in English is one of the four above.

Two limits worth knowing

We are not native speakers of French or German. The checks above are about where the words come from, not about whether the translations read well. Have a native speaker read the cart and the checkout before you sell in a language.

This page does not cover checkout. Shopify's checkout is translated by Shopify and by your Translate & Adapt settings, not by the theme.

Built into Hullara

Since 0.2.5, Hullara's build refuses the first, second and fourth causes in its own code: a check fails on an English word in the page title, on a default that would hide a translated heading, and on finding an option by its English name; the third is tested against a store in French and German. Hullara ships its storefront text in English, French, German, Spanish and Italian.

See Hullara Apparel Core

Frequently asked

Why is my Shopify store still in English after I translated it? The words still in English are usually not in the theme's locale files — they are a setting's value, text typed into the code, a part redrawn from an address without the language, or a feature that compares English words. Each needs a different fix; the sections above show how to tell them apart.

Why can't I find some text in Translate & Adapt? Translate & Adapt offers the text a theme puts in its locale files and in translatable settings. Text typed directly into the theme's Liquid is in neither, so it never appears there.

Why does "Add to cart" turn English when I pick a variant? The theme fetches the redrawn part of the page from an address without the language in it, and Shopify answers in the default language. The request's path should start with the language, like /fr/.

Why did my colour swatches disappear after translating? The theme finds the colour option by its name, and translating the name — "Colour" to "Couleur" — means it no longer matches.

Does translating a theme setting change it in other languages? No. A translated value is kept per language; the original stays as it was for the default language.

May we count this page visit with Google Analytics? Saying no changes nothing you can see, and we still learn the page was read — just not that it was you. No advertising cookie either way. What we store, exactly