Sin impuesto Con impuesto

Translating an entire PrestaShop store: catalogue, modules, theme, emails and URLs

A half-translated store sells less than one in a single language. We go through PrestaShop's text layers, the order of work, URLs and hreflang, and how to track down the phrase that refuses to change.

Equipo Rekire
Updated: 17/10/2026 30
Translating an entire PrestaShop store: catalogue, modules, theme, emails and URLs
Share:

You enable French in International > Localization, PrestaShop installs the language pack and the little flag appears in the header. You click it and see a store with the buttons in French and everything else in Spanish: products, categories, pages, the title shown in Google, the order confirmation email.

That is normal. Adding a language creates the slots for the translations, copies the default language text into them and brings in the core translation. Everything you have written yourself, and much of what the modules bring, remains untranslated.

The text layers of a PrestaShop store

A store's texts live in different places, and each is translated in a different way:

LayerWhat it includesWhere it is translated
ContentProducts, categories, features, attributes, CMS pages, brands, order statuses, carriers, meta tagsIn each item, language by language (_lang tables)
CorePrestaShop's own texts in the storefront and back officeOfficial language pack
ThemeButtons, forms, footer, fixed theme textsInternational > Translations, theme
ModulesWhatever each installed module displaysInternational > Translations, modules
EmailsEmail templates: order, shipping, passwordEmail translations, plus the template text

And there is one more complication: the same phrase can be in several places at once —in the database, in the module's XLIFF file, in an old translation file, written directly into a template— and only one of them is the one shown. That is why you sometimes «translate» something, save, clear the cache and it still shows the same.

The order to work in

  1. Backup. A bulk translation writes to thousands of rows. If the result is not good enough and you have no backup, you have to redo it by hand.
  2. Categories and meta tags. There are few of them, they appear everywhere and they help you judge the quality of the translator you use.
  3. Products. Name, summary, description, meta title, meta description and friendly URL. Features and attributes (size, colour, material) too, which tend to be forgotten.
  4. Theme and modules in the purchase journey: cart, checkout, error messages, stock notices. A payment button in another language creates distrust exactly where you least want it.
  5. Transactional emails. Confirmation, shipping, returns. Customers read them carefully.
  6. Legal and CMS pages. Terms and conditions and the privacy policy, reviewed by a person, not just by a machine.
  7. Order statuses and carriers, which appear in the customer account and in emails.

Machine translation, AI or a person

For a catalogue of hundreds or thousands of products, translating everything by hand is not realistic. The usual approach is to combine:

  • Machine translation (DeepL, Google, Microsoft) for the bulk: fast and cheap.
  • AI models when tone or context matter, for example in sales descriptions.
  • Human review for your best sellers, legal pages and checkout texts.
Watch out for placeholders. Module and theme texts contain variables such as %s, %d or %shop_name%, and sometimes HTML tags. A machine translator may drop or translate them, and the phrase then breaks the page or the email. Always check that the placeholders in the original are still there in the translation.

URLs, hreflang and SEO

A well-built multilingual store has a different URL per language (for example /es/, /fr/) and, within each, the translated friendly URL of the product and category. If you leave the Spanish link_rewrite in the French version, it works, but you waste keywords and it looks odd.

Also:

  • Each version must declare its alternatives with hreflang, including itself, so that Google serves the right one to each user.
  • Do not publish a half-finished language: pages with content in another language are seen as duplicate or low quality.
  • Translate the meta title and meta description, which are what people see in search results.
  • Image alt text is translatable too.
  • If you change an already indexed URL when translating it, set up a 301 redirect.

When a phrase just will not change

It happens often: the button is still in English, even though it is translated in International > Translations. The most common causes:

  • The theme overrides the module template and uses a different translation domain.
  • There is an old translation in a module file inside the theme that takes precedence over the one in the database.
  • The text is hard-coded in a .tpl or .twig template, without going through the translator.
  • The text comes from the database (an order status, a carrier) and not from a translation.
  • The cache has not been cleared.

Searching blindly screen by screen can take an afternoon. The effective approach is to search for the phrase in all layers at once and see which one is winning.

Versions also change how translation works

PrestaShop moved from each module's old translation files to the XLIFF catalogue system, and in versions 8 and 9 both worlds coexist depending on how each module is built. A very old module may be translated one way and a modern one another. If you are planning to migrate from 1.6 or 1.7, leave the full translation until after the migration: translating everything twice is wasted work.

Checklist

  • Backup before any bulk translation.
  • Test with a small batch and check the quality.
  • Content, theme, modules and emails, all four.
  • Translated friendly URLs and correct hreflang.
  • Placeholders intact in module texts.
  • Legal pages reviewed by a person.
  • A complete test order in each language, with its emails.
  • When adding new products, translate them as well.

How to solve it in PrestaShop

RKR Traducción Total translates the entire store from a single back office screen: content (products, categories, features, attributes, pages, meta tags, brands, order statuses, carriers, image alt text), the texts of installed modules, and the theme and email templates. It shows the percentage translated for each item in each language, translates into several languages at once and via cron, and lets you choose between eleven services (DeepL, Google, Microsoft, ChatGPT, Gemini and others) with your own key and usage; it works on PrestaShop 8 and 9. For the phrase that refuses to change, the translation finder searches for it in the database, XLIFF, old files, _lang tables, emails and code, tells you which one takes precedence, lets you fix it right there and highlights in red any translations that are missing a placeholder.

Loading...
Cookie consent
Back to top