Translating the Text Other Shopify Translation Apps Can't Reach
Summary
Standard translation apps only cover structured content — products, collections, pages, blogs, navigation. Theme language files and hardcoded text in templates — in some stores most of what visitors read on product pages — stay in English. Scanning for it, converting it into the theme’s language-key mechanism, and measuring completeness against rendered pages is how a store becomes truly translated.
Quick answer
Text that stays English after “translation” usually lives in theme templates as hardcoded strings. Scan template files for visible strings, convert them into the theme’s language-key mechanism as a reviewable code change, and measure completeness against what a visitor actually sees on rendered pages.
You install a translation app, translate your products and pages, and the store still shows English in half a dozen places. The reason is rarely a mistake — it's that much of a real store's visible text lives outside the structured fields that translation apps know about. This article explains where that text hides and how to translate it safely.
Where the untranslated text lives
Shopify content can be split into three buckets:
- Structured content — products, collections, pages, blogs, navigation. This is what translation apps handle well.
- Theme language files — the labels, buttons and UI strings your theme keeps in its own language resources.
- Hardcoded text — anything written directly into theme templates: banners, feature lists, trust badges, custom sections. In some stores this is the majority of what a visitor actually reads on product pages.
Standard apps stop at the first bucket. If your headline content is in the third, you get a “100% translated†dashboard next to a half-English store.
How to find hardcoded text
Hardcoded text has to be discovered before it can be translated. The approach: scan the theme's template files for visible strings, extract them with their location, and organize them so the same text used across many templates is translated once and reused everywhere.
Translating it safely
Theme code is different from store content — a mistake in a template can break the page. That's why template changes should never be applied automatically:
- Translations are prepared as a code change you review, not a silent edit.
- The change converts hardcoded text into the theme's language-key mechanism, so future translations reuse it.
- You see the diff, approve it, and it becomes a proper reviewable change — never auto-merged.
Measuring what's really translated
“Field coverage†lies. What matters is what a visitor sees on a rendered page. So instead of counting fields, measure completeness against the text actually visible on your live pages — by source (structured, theme files, hardcoded). That's how you know the store is truly translated and what's still missing.
The takeaway
If your store still shows English after “translation,†check the template. Real multilingual stores translate all three buckets — including hardcoded text — with code changes that go through review. Only then does “translated†mean what it says.
Frequently asked questions
Why does my store still show English after using a translation app?
Translation apps only handle structured content — products, collections, pages, blogs, navigation. Theme language files and hardcoded text written directly into templates live outside those fields, and in some stores that hardcoded text is most of what visitors read on product pages.
What is hardcoded text in Shopify?
Anything written directly into theme templates: banners, feature lists, trust badges, custom sections. It isn’t in the structured fields translation apps know about, so it must be discovered, extracted with its location, and translated once so the same text is reused everywhere.
Why shouldn’t template translations be applied automatically?
Theme code is different from store content — a mistake in a template can break the page. Translations should be prepared as a code change you review: you see the diff, approve it, and it becomes a reviewable change — never auto-merged.