Modifier un texte dans PrestaShop : le libellé ne change pas ou la traduction ne s’enregistre pas
Quand modifier un texte dans PrestaShop ne fonctionne pas, vérifiez le cache, l’endroit modifié et le modèle. La page affiche peut-être une ancienne copie en cache. La traduction est peut-être allée dans le thème alors que le libellé vient d’un module. Ou le libellé est écrit en dur dans le modèle : changez-le dans un fichier, idéalement une copie du modèle dans le thème.
Auteur: L’équipe TellMyShop. Un guide pour les propriétaires de boutiques PrestaShop : la cause, la correction manuelle et le même travail dans une conversation avec le chat.
Dernière mise à jour: · 6 min de lecture
Pourquoi le libellé ne change-t-il pas dans la boutique ?
Parce que PrestaShop garde les textes à plusieurs endroits, et la page n’en lit qu’un seul. Jeudi, 19 h 50. Pour la troisième fois, vous changez « Ajouter au panier » en « Ajouter à mon panier », enregistrez et rafraîchissez la boutique. Toujours l’ancien libellé. Vous retournez dans les traductions, et votre version y est bien enregistrée.
C’est un symptôme typique. La traduction s’est bien enregistrée, mais pas là où la page la lit. Ou elle s’est enregistrée, et la page affiche une copie en cache.
Symptôme et cause : quoi vérifier d’abord
Associez ce que vous voyez à une ligne du tableau.
| Symptôme | Cause la plus fréquente | Que faire |
|---|---|---|
| Traduction enregistrée dans le back office, la boutique affiche l’ancien texte | le cache | videz-le dans Paramètres avancés > Performances, rafraîchissez la page sans le cache du navigateur |
| La modification fonctionne à un endroit mais pas à un autre | le même texte est dans le thème et dans un module | changez-le dans les deux types de traductions |
| Le texte est introuvable dans la recherche des traductions | le libellé est écrit en dur dans un modèle | changez-le dans le fichier du modèle, dans le thème |
| Le texte change dans le module mais pas dans un thème acheté | le thème a sa propre copie du modèle du module | changez-le dans la copie du modèle dans le thème |
| Après l’enregistrement, le champ revient à l’ancienne version | une erreur d’enregistrement de la traduction dans la base de données | le journal d’erreurs, puis un développeur |
| La modification disparaît après une mise à jour du module | quelqu’un a modifié les fichiers du module | déplacez la modification dans une copie du modèle dans le thème |
Le cas d’un champ qui revient à l’ancienne version a été décrit par Pskrk. Le coupable était une entrée de la base de données qui écrasait la traduction. Le fonctionnement des types de traductions du back office est montré par PrestaPros et PrestaPremium (tous trois en polonais).
Comment trouver et modifier un texte pas à pas
Commencez par les traductions du back office, et ne passez aux fichiers que si le texte n’y est pas.
- Copiez le libellé exactement comme il apparaît dans la boutique. Avec les mêmes majuscules et la même ponctuation.
- Ouvrez International > Traductions. Choisissez les traductions du thème, votre thème et la langue.
- Cherchez le libellé. S’il y est, modifiez-le et enregistrez. Sinon, vérifiez les traductions des modules installés.
- Videz le cache dans Paramètres avancés > Performances et vérifiez la boutique dans une fenêtre de navigation privée.
- Si le texte est introuvable, il est dans un modèle. Déterminez quel module ou quel fichier du thème affiche cet élément.
- Changez le texte dans une copie du modèle dans le thème. PrestaShop utilise la copie au lieu de l’original du module. Le mécanisme est décrit dans la documentation PrestaShop sur la surcharge des modules.
Ne modifiez pas le texte dans les fichiers du dossier modules. La prochaine mise à jour du module ramènera l’ancien libellé.
Comment modifier un texte dans une boutique en plusieurs langues
Modifiez-le dans les traductions de chaque langue séparément, et faites attention aux fichiers. Les traductions du back office ont une version distincte pour chaque langue de la boutique. Changer le libellé français ne change pas le libellé allemand : après la modification, passez la boutique dans l’autre langue et vérifiez les deux.
Un texte écrit en dur dans un modèle, c’est différent. Une ligne dans un fichier s’affiche de la même façon dans toutes les langues. Si la boutique a une version allemande et que vous saisissez une phrase en français dans le modèle, un client d’Allemagne verra un texte en français. Dans une telle boutique, mieux vaut demander à un développeur de modifier le modèle pour que le libellé puisse être traduit dans le back office.
Comment changer le libellé d’un module pour qu’il survive à une mise à jour
Vous décrivez quel texte changer et en quoi, et votre chat (Claude ou ChatGPT) avec le module TellMyShop détermine quel module l’affiche. Il copie ensuite le modèle du module dans le thème et montre la différence avant l’enregistrement.
Vous: Change le texte du bloc newsletter dans le pied de page en « Un e-mail par mois avec les nouveautés de Lampiarnia ». Il doit survivre à une mise à jour du module.
Votre chat: Le bloc est affiché par le module de newsletter. Le texte est écrit en dur dans son modèle, les traductions du back office ne le changeront donc pas. Je vais copier le modèle dans le thème et changer le texte dans la copie. Aperçu :
La boutique a aussi une version allemande. Le texte de la copie du modèle sera en français dans les deux versions. Je le change ?
Vous: Oui, de toute façon nous désactivons la version allemande.
Votre chat: Enregistré, cache vidé. L’original du module n’est pas touché : une mise à jour ne ramènera donc pas l’ancien texte.
ancienne version : Inscrivez-vous à notre newsletter pour recevoir les nouveautés.
nouvelle version : Un e-mail par mois avec les nouveautés de Lampiarnia.
Corriger un libellé, c’est une demande et un aperçu de la ligne modifiée du modèle. Ce travail exige TellMyShop Pro et l’interrupteur Thème. Il est désactivé après l’installation, et vous l’activez dans le panneau du module pour 24 heures, quand la boutique a une sauvegarde de la base de données du jour même. Avant chaque enregistrement, le module fait une copie du fichier, et revenir à cette copie annule la modification. Deux tâches proches sont décrites dans les cas d’usage changer un texte fixe dans un bloc de module et changer l’apparence d’un module pour qu’elle survive à une mise à jour. Vous pouvez lire ce que contient TellMyShop Pro sur la page tarifs.
Le chat ne modifie pas l’écran International > Traductions. Il traduit les noms des caractéristiques, des valeurs et des attributs, comme les couleurs et les tailles, dans TellMyShop Pro dès l’activation de la licence, sans interrupteur. Nous décrivons la traduction d’une boutique entière dans l’article comment traduire une boutique PrestaShop. Si la boutique affiche toujours l’ancien texte après la modification, lisez que faire quand les modifications ne s’affichent pas dans PrestaShop.
Questions et réponses
Où changer le libellé Ajouter au panier dans PrestaShop ?
Dans International > Traductions. Choisissez les traductions du thème, votre thème et la langue, puis saisissez le libellé actuel dans la recherche. Modifiez-le, enregistrez et videz le cache dans Paramètres avancés > Performances. Si le libellé vient d’un module, cherchez-le plutôt dans les traductions des modules que dans celles du thème.
Pourquoi une modification de traduction ne s’affiche-t-elle pas dans la boutique ?
En général pour l’une de trois raisons. La boutique affiche l’ancien texte depuis le cache. Vous avez modifié la traduction à un autre endroit que celui qu’utilise la page, par exemple dans un module au lieu du thème. Ou le thème a sa propre copie du modèle du module, avec le texte écrit en dur, que les traductions du back office ne couvrent pas.
Ma modification de texte disparaîtra-t-elle après une mise à jour du module ?
Une modification dans les traductions du back office reste en général. Une modification saisie directement dans les fichiers du module disparaît à sa mise à jour, car la nouvelle version écrase les fichiers. Le texte qu’on ne peut pas changer dans les traductions se change donc dans une copie du modèle du module dans le thème. Cette copie survit aux mises à jour du module.
Que faire d’un texte qui ne figure pas dans les traductions ?
Ce texte est écrit en dur dans le modèle du thème ou du module. Vous le changez dans le fichier du modèle, idéalement dans un thème enfant ou dans une copie du modèle du module dans le thème. Dans une boutique en plusieurs langues, rappelez-vous qu’un texte écrit en dur sera le même dans toutes les versions linguistiques.
Le chat modifiera-t-il les traductions dans le back office ?
Non. Le chat ne modifie pas l’écran International > Traductions. Dans TellMyShop Pro, avec l’interrupteur Thème, il change le texte dans une copie d’un modèle de module ou dans un fichier du thème, avec un aperçu des différences et une sauvegarde. Il traduit séparément, sans interrupteur, les noms des caractéristiques et des attributs, comme les couleurs et les tailles.
PrestaShop est une marque déposée de PrestaShop SA. Claude est une marque d’Anthropic PBC. ChatGPT et OpenAI sont des marques d’OpenAI. TellMyShop n’est pas affilié à ces entreprises.