WooCommerce Multilingual, Free — Translate Your Shop Without Per-Word Billing

🔒 Security-reviewed 🧾 GPL open source 📤 No lock-in — export anytime ⚡ 20× lighter engine

A shop is the worst possible case for per-word translation pricing. A catalogue is not one page: it is hundreds of product titles, descriptions, short descriptions, attributes, category names and checkout strings — and every one of them is counted again for each language you add. Five hundred products in five languages is not five hundred translations, it is two and a half thousand.

TranslateRocket takes the volume out of the equation: it is free, with no paid tier and no word or credit meter. If you use AI you bring your own provider key and pay that provider directly. This page covers what it does specifically for WooCommerce — including the parts that usually break in a multilingual shop — and, at the end, what it deliberately does not do.

A WooCommerce shop serving customers in several languages

The three things that quietly break in a multilingual shop

Translating product pages is the easy part: they are page content, and any decent plugin handles them. What catches shop owners out is everything WooCommerce renders outside the page HTML, where a translation engine that only rewrites the page never reaches:

  1. The AJAX mini-cart. Add a product to the basket and WooCommerce swaps the cart markup through an AJAX “fragment”. That fragment is generated after the page was rendered, so it comes back in the shop’s default language — an English mini-cart sitting on an otherwise German page.
  2. Strings that live in JavaScript. The “View cart” link that appears after adding an item, and similar messages, are handed to the browser as script data rather than page text.
  3. Order emails. A customer buys in French and receives the confirmation in English, because the email is generated later — often by a cron job — when nothing remembers which language the order was placed in.

TranslateRocket handles all three. The mini-cart fragments and the JS-localised strings are translated with the same translation map used for the page, so they cost no extra AI calls. And at checkout the order’s language is recorded — for the classic checkout and for the newer block-based checkout through the Store API — and the customer email is rendered in that language instead of the shop default.

Email wording is a special case worth explaining. The engine normally learns strings while you browse your own site — but nobody ever browses an email, so phrases WooCommerce prints only there (“Thank you for your order”, “Quantity”, “Price”) used to be invisible to it, and order emails came out only partly translated. Since version 0.8.4 customer emails are scanned as they are sent and their wording is filed under “WooCommerce emails” in the translation screens, ready to translate by hand or with AI like anything else. The scan runs once per template, not once per order.

Product and category URLs in each language

Each language is served under its own clean prefix, and slugs are translated too — for products and for product categories — so a German customer lands on a German-looking URL rather than an English slug with a language prefix bolted on. hreflang tags are emitted for every language, which is what tells Google these are the same product in different languages rather than duplicate content.

Because every language has its own URL, page caches treat them as separate pages automatically. There is no cookie-based language switching to defeat your cache — which matters more on a shop than anywhere else.

Product pages and checkout translated in every language

What it costs to translate a catalogue

Nothing, in plugin fees. There is no licence and no word allowance. For the machine translation itself you have three routes, and you can mix them:

  • By hand — unlimited, free, with a click-to-translate editor on the live page. Sensible for the fifty strings that actually sell (titles, category names, checkout).
  • Free Google Translate — every field offers a prefilled link; you translate on Google’s own site and paste back.
  • Your own AI key — DeepL, OpenAI, Gemini, Anthropic or Google Cloud. You pay the provider at their price. DeepL’s free tier alone covers 500,000 characters a month, which is a substantial catalogue.

The engine also reuses translations across identical strings, so a phrase repeated on two hundred product pages is translated once, not two hundred times.

Large catalogues

Shops are where translation plugins tend to hit the PHP memory limit, because the usual approach is to load the whole translation map into memory on every request. Past roughly 20,000 strings TranslateRocket switches by itself to indexed per-page lookups: it fetches only the strings the current page needs. Memory stays flat and render time stays the same whether the site holds 500 strings or 500,000 — which is the difference between a catalogue that scales and one that starts throwing white screens.

What it does not do — and when to buy something else

This is the part worth reading before you install anything.

  • No multi-currency. TranslateRocket translates; it does not convert prices, add currency switchers or handle per-country pricing. If you need to sell in dollars and euros with different price lists, you need a dedicated multi-currency solution — or WooCommerce Multilingual with WPML, which pairs the two.
  • No separate product per language. Translations are layered over one product rather than creating a duplicate product per language. That keeps stock and orders in one place, which is usually what you want — but if your workflow depends on genuinely separate per-language products, this is not that model.
  • No translation-agency workflow. There are no translator accounts or review queues, and no way to order professional translation from inside the dashboard.
  • Support is best-effort, from one developer, through the WordPress.org forum. If your shop needs a guaranteed response time, buy a licence from someone who sells one.

If what you need is a shop your customers can read and buy from in their own language — with the mini-cart, the checkout and the order emails all following along — without a bill that grows every time you add products, that is what this is for.

Already paying for a multilingual plugin?

You can bring the translations you have already paid for. TranslateRocket imports from WPML, TranslatePress and Polylang, and from a Weglot CSV export. WPML’s translations are read straight from its database tables, so the import still works when WPML is deactivated and the licence has lapsed.

Translate your shop — free, unlimited languages


Keep reading

💬 Need help?
Powered by TranslateRocket™