Yeah, your theme broke. Here’s what actually happened.
You export the catalog CSV, dump descriptions into ChatGPT / DeepL / Google Translate, import back, and the German store looks cursed. Prices gone. Layout crooked. Sometimes you literally see `{{ product.price }}` on the page like a bad joke.
It’s not that the German is “bad.” The translator treated Liquid and HTML like normal sentences. So `{{ product.price }}` becomes something stupid like “product price,” `{% if product.available %}` turns into prose, and a closing `</div>` vanishes. Theme goes boom.
Why bulk AI translation wrecks Shopify CSVs
Those tools want nice readable text. Your theme wants contracts. Liquid tags are contracts. Break them and the PDP doesn’t render right — especially on `/de/` and `/fr/` Markets URLs where you’re already juggling layout.
Variables get “translated”
`{{ product.price }}` becomes `{{ produkt.preis }}` or just words. Shopify shrugs. No price. Customer bounces.
HTML gets “cleaned”
Model decides your markup is messy, deletes a `</div>`, flattens the product grid. Suddenly the theme CSS has nothing to hang on. Looks fine in Excel. Looks dead on mobile.
The old “fixes” that waste your week
Regex masks. “Please don’t touch curly braces” prompts. Intern QA on 400 SKUs. Works until it doesn’t — nested filters, weird ICU slots, one long description and you’re back in Slack with screenshots.
If you’re shipping seasonal drops every week, vibes-based prompts aren’t a process. You need the syntax locked before anything gets rewritten.
What actually works
Inventory the tokens first. Lock Liquid, HTML structure, and slots. Only rewrite the human copy for DE / FR / ES. Put the tokens back exactly. Then export a CSV you can import without praying.
That’s the whole game: keep the theme alive, still get market-ready titles and bullets. No hero speech required.
Try it without nuking a live theme
Linguistore is for that exact mess — bulk Shopify CSV translation that doesn’t eat your Liquid. Run a small batch, check five PDPs, then scale.
