Les traductions des textes sous PrestaShop sont très pratiques et pourtant méconnues. Je dois former au moins une fois chaque client sur cette thématique dans le cadre d’un projet de création ou de refonte e-commerce. C’est pour cela que je rédige cet article tuto pour vous t’aider aussi à y voir plus clair.
Qu’est-ce qu’une traduction PrestaShop ?
Avant tout, tu peux utiliser les traductions dans PrestaShop même si ta boutique est disponible dans une seule langue, en français par exemple. En effet, les traductions permettent de changer tout ou partie des textes qui ne sont pas du contenu.
Qu’est-ce que les textes de contenu ?
C’est par exemple le titre ou les descriptions des produits et des catégories, le contenu des pages CMS, les caractéristiques des produits ou encore tout texte qui peut être modifié dans la configuration d’un module en back office.
Par opposition, les autres textes sont des traductions donc ?
Si on généralise, oui. C’est par exemple le texte des boutons “ajouter au panier”, “voir”, “mon compte” mais aussi les textes de certains modules / blocks qu’on ne peut pas modifier dans leur configuration en back office.
J’ai donc répondu à la question suivante : comment identifier une traduction PrestaShop ?
Comment identifier dans le code une traduction PrestaShop ?
Plutôt qu’un long discours, voici à quoi ressemble une traduction avec PrestaShop 1.7 :
Voici à quoi ressemble une traduction sous PrestaShop 1.6 :
Les traductions dans le code sont en anglais par défaut et sont à traduire en français pour notre cas via le back office.
Si vous avez besoin d’insérer une traduction avec un apostrophe, voici la nomenclature à utiliser sans quoi tu auras une erreur 500 :
Le texte après la traduction pour PrestaShop 1.7 permet d’identifier le type de contenu : ça s’appelle la structure de domaine / domain’s structure.
On distingue les différents domaines de traductions de niveau 1 suivants :
- Admin : pour le back office
- Email : pour les e-mails envoyés
- Install : pour le contenu lors de l’installation
- Modules : pour les modules natifs
- Shop : pour le thème par défaut, le front office et les textes affichés aux clients
Pour les modules, la structure sera la suivante :
- Modules.ModuleName.Shop : Front office
- Modules.ModuleName.Admin : Admin
Pour le front office, la structure sera la suivante :
- Shop.Emails : E-mails envoyés aux clients (création de compte, confirmation de commande…)
- Shop.PDF : PDF générés (facture, avoir, bon de livraison…)
- Shop.Theme : traductions pour le thème par défaut
- Shop.Demo : contenu des produits et pages de démonstration
- Shop.Navigation : la plupart des meta title et titres de pages du thème par défaut
- Shop.Notifications : les textes des messages d’avertissement, d’erreur et de validation
- Shop.Forms : les textes des formulaires (contact, inscription, connexion…)
Enfin, pour le front office toujours mais cette fois-ci pour le thème, la structure est de 3 niveaux sous la forme suivante :
- Shop.Theme.Catalog : les textes d’affichage du catalogue (produit, catégorie…)
- Shop.Theme.Customer : les textes liés au compte client et aux commandes
- Shop.Theme.Account : idem
- Shop.Theme.Checkout : contenu lié à l’achat et au tunnel de commande
- Shop.Theme.Actions : tous les textes des boutons et liens peu importe la page
Le détail des domaines pour les traductions sur PrestaShop 1.7 est disponible en ligne dans la documentation pour développeur ici : https://devdocs.prestashop.com/1.7/development/internationalization/translation/translation-domains/
Comment traduire PrestaShop ?
On arrive dans le vif du sujet avec la réponse à la question : comment traduire mes contenus et mes textes dans PrestaShop ?
Pour rappel, la traduction s’applique aussi bien pour un site web seulement dans une langue qu’à un site web en multilingue avec 5 langues.
Comment traduire PrestaShop 1.7 ?
Tu dois te rendre dans le back office de PrestaShop 1.7 puis dans “International” puis “Traductions”.
Dans le bloc “Modifier les traductions”, il faut alors sélectionner :
- Type de traduction : thèmes / modules / e-mails… (selon le besoin)
- Sélectionnez votre thème : choisir le thème utilisé
- Choisissez votre langue : choisir la langue à traduire (français par défaut si une seule langue)
- Cliquez sur “Modifier”
Il ne te reste plus qu’à chercher la traduction à modifier – attention à la casse – puis de cliquer sur “Enregistrer”.
Sur certains hébergeur, le temps de chargement peu être long, très long, donc sois patient !
Comment traduire PrestaShop 1.6 ?
C’est légèrement différent de la dernière version de PrestaShop. Tu dois aller dans le back office de PrestaShop 1.6 puis dans “International” puis “Traductions”.
Idem à PrestaShop 1.7, dans le bloc “Modifier les traductions”, il faut sélectionner :
- Type de traduction : thèmes / modules / e-mails… (selon le besoin)
- Sélectionnez votre thème : choisir le thème utilisé
- Choisissez votre langue : choisir la langue à traduire (français par défaut si une seule langue)
- Cliquez sur “Modifier”
Il ne te reste plus qu’à chercher le bloc correspondant au modèle de page où la traduction à modifier se situe, cliquer dessus pour déplier le bloc, modifier la traduction puis cliquer sur “Enregistrer”.
Sur certains hébergeur, le temps de chargement peu être long également. Il faut donc être patient !
Conclusion
PrestaShop propose donc une solution simple et efficace pour traduire les textes de sa boutique pour du multilingue ou simplement pour la langue native. C’est d’ailleurs utile quand on utilise un thème dont les textes ne sont pas traduits en français !
Malheureusement, dans certains cas la modification des textes est bien fastidieuse : modification non prise en compte, traduction non visible en back office et bien d’autres cas. Je mettrai à jour l’article pour compiler toutes les informations à ce sujet et pour en aider un maximum d’entre vous.
Super explication.
Je suis tombé sur le site car j’ai un problème de traduction. J’avais inséré un code dans le fichier product-add-to-cart.tpl : getPageLink(‘contact’, true)|escape:’html’:’UTF-8′}” title=”{l s=’ASK FOR QUOTATION’ mod=’blockcontact’}”>{l s=’ASK FOR QUOTATION’ mod=’blockcontact’}
Maintenant, je cherche à traduire ce mot “ASK FOR QUOTATION” en français mais je n’arrive pas à trouver où et comment le traduire.
Vous avez parler d’override dans le commentaire, mais je n’ai aucune idée de comment on fait. Pouvez-vous expliquer dans un autre tuto comment ça marche, si ce n’est pas déjà fait ?
Merci infiniment.
Bonjour Hezekia,
Merci pour le message,
Il faut enlever dans le fichier tpl le suffixe suivant : “mod=’blockcontact’” dans la déclaration de la traduction.
Bon courage 😉
Bonjour,
J’ai donc ajouté “d=’Shop.Theme.Actions’” après mon texte dans le fichier “\themes\classic\templates\_partials\head.tpl”
Par contre, quand je retourne dans le back-office à “TRADUCTION”, en sélectionnant Espagnol/Traduction du front Office puis Shop/Thème/Action, je suis censé retrouvé mon texte à traduire ?
c’est bien ça car je ne vois rien ?
Ou bien j’ai loupé une étape ?
Merci pour votre aide.
Bonjour Nicolas,
C’est bien ça mais parfois pour une raison inconnue la “magie” n’opère pas.
Plus sérieux, ce sytème est assez capricieux.
Essayez sans l’extension de domaine pour voir déjà.
Bonjour Arnaud,
Merci pour ce tuto, mais de mon coté, je n’arrive pas à traduire les fichier PDF !?
Avez-vous déjà rencontré ce problème ?
Merci d’avance pour votre retour
Bruno
Bonjour Bruno,
Merci pour votre commentaire.
Jamais eu le cas, en dernier recours si c’est une seule langue vous pouvez traduire en dur dans le fichier .tpl avec un override dans le dossier du thème.
Bon courage 😉