Menu

Afficher du texte dans PrestaShop avec Smarty : la meilleure pratique SEO

3 min - 5 mars 2025 - 0

Lorsque vous affichez du texte dans PrestaShop, que ce soit pour un thème, un module ou une personnalisation front-end, la meilleure pratique consiste à utiliser les chaînes de caractères Smarty plutôt que de coder directement le texte.

Pourquoi utiliser Smarty pour afficher du texte ?

L’utilisation des chaînes Smarty permet de :

  • Faciliter la traduction via le back-office de PrestaShop.
  • Assurer la compatibilité multi-langues si vous élargissez votre marché.
  • Simplifier la gestion et la maintenance du texte dans vos fichiers de template.

Même si votre boutique cible actuellement un public monolingue, il est recommandé d’utiliser cette approche pour gagner du temps dans le futur.

Afficher un texte simple avec Smarty

Si vous souhaitez afficher du texte dans vos fichiers de template, utilisez cette syntaxe de base :

{l s='Mon exemple de texte'}

En insérant cette ligne dans un fichier .tpl de votre thème, le texte sera automatiquement disponible pour la traduction dans le back-office (Localisation > Traductions).

Cas d’un module PrestaShop

Si le texte est utilisé dans un fichier de template d’un module, ajoutez le paramètre mod avec le nom du module :

{l s='Mon exemple de texte' mod='nomdumodule'}

Ajouter une variable dans une chaîne Smarty

Mauvaise pratique : fractionner la chaîne

Une méthode courante mais inefficace consiste à découper la chaîne :

{l s='Vous avez' mod='nomdumodule'} {$points} {l s='points sur votre compte'}

Problèmes avec cette méthode :

  • Elle génère plusieurs chaînes à traduire, compliquant la gestion.
  • L’ordre des mots peut varier selon la langue, rendant la traduction incohérente.

Bonne pratique : utiliser un placeholder

Préférez cette syntaxe, plus propre et facile à gérer :

{l s="Vous avez %d points sur votre compte" sprintf=[$points] mod='nomdumodule'}

Cas d’une variable texte ou mixte

Si votre variable contient du texte, utilisez %s au lieu de %d :

{l s="Bonjour %s, vous avez %d points sur votre compte" sprintf=[$nom, $points] mod='nomdumodule'}

Insérer des balises HTML dans une chaîne Smarty

Mauvaise solution : diviser la chaîne

Certains essaient d’ajouter des balises HTML comme ceci :

{l s="Bienvenue sur" mod='nomdumodule'}{l s="ma boutique" mod='nomdumodule'}

Problèmes :

  • Texte fragmenté = plusieurs traductions à gérer.
  • HTML non interprété dans certaines situations.

Solution efficace : utiliser la syntaxe avec tags

Voici la bonne méthode pour garder une seule chaîne traduisible avec des balises HTML :

{l s="Bienvenue sur [1]ma boutique[/1]. Bonne navigation !" tags=[''] mod='nomdumodule'}

Ajouter plusieurs balises HTML

Il est aussi possible d’insérer plusieurs tags dans la chaîne :

{l s="Bienvenue sur [1]ma boutique[/1]. [2]Bon shopping[/2] !" tags=['', ''] mod='nomdumodule'}

Correspondance des tags

  • [1] = <a href="...">
  • [2] = <strong>

Combiner HTML et variables

Enfin, vous pouvez mélanger variables et HTML dans une seule chaîne Smarty :

{l s="Bienvenue %s sur [1]ma boutique[/1]. [2]Bon shopping[/2] !" sprintf=[$nom] tags=['', ''] mod='nomdumodule'}

Conclusion

Utiliser Smarty dans PrestaShop pour afficher du texte est essentiel pour une gestion efficace des traductions et une meilleure évolutivité.

Avantages principaux :

  • Facilité de traduction depuis le back-office.
  • Meilleure organisation avec des variables et placeholders.
  • Intégration de HTML propre et optimisée.

Optimisez vos templates dès maintenant pour une boutique PrestaShop plus flexible et performante !