Prestashop 1.7 – Gérer les traductions (ép. 67)

Traduire une boutique Prestashop à 100% n’est pas forcément une mission simple, d’ailleurs beaucoup de sites e-commerce ont des termes ou des blocs de contenu non traduits… Comment corriger ce genre de problème ?

Modifier un texte de traduction, c’est simple non ?

Prestashop avec son outil de traduction a essayé de rendre les choses simples pour la traduction des textes… Sur le principe il suffit d’aller dans la partie « International->Traductions » de la boutique et de rechercher la chaine de caractères à traduire… Le problème c’est surtout quand on ne trouve pas le texte à traduire ou lorsque la traduction est intégrée en back-office… mais ne s’affiche pas sur le shop côté public. Dans Prestashop 1.7, mon impression c’est que cela semble « moins simple » qu’en version 1.6 où c’était mieux centralisé et moins segmenté.

Faites du multilingue si vraiment vous jugez utile

Bien souvent les e-commerçants tentent de faire du multilingue pour essayer de vendre plus… Cette approche est intéressante, mais à condition que le shop dans sa langue de base (ex. le français) atteint déjà un seuil de rentabilité. Le fait de faire du multilingue, démultiplie le nombre de page indexées et sur des boutiques avec peu de trafic / notoriété, souvent cela provoque l’effet inverse (encore moins de trafic).

Utiliser un outil de gestion de projet PHP ça aide

En fait, parfois pour trouver l’emplacement exact d’une traduction, il est préférable d’avoir une copie de son projet en local et de pouvoir faire une recherche massive dans l’ensemble des fichiers sources, pour comprendre à quel emplacement se trouve la chaîne de caractères à modifier. Vous le verrez dans le tutoriel que parfois cela est loin d’être une mission simple… La modification dans le fichier source original peut être parfois la solution la plus rapide.

Revenir aux basiques un idéal ?

Quand je constate ce mélange infernal, même si effectivement cela est nécessaire pour découper une application… je pense qu’arrivé à un certain stade le processus de traduction peut devenir vraiment complexe à prendre en main, même si son interface est simple. On est en ce moment très loin de l’approche d’un fichier par langue pour toute l’application… on a des fichiers de traductions dans tous les sens. Certes on est bien d’accord que cela est structuré… mais en terme d’accessibilité / rapidité de changement… c’est pas tout à fait ça.

Gagnez du temps en prenant un bon template et de bons modules pour Prestashop

Quand vous choisissez l’apparence du thème graphique de Prestashop, vérifiez déjà que sur l’interface de démonstration en « français » vous avez bien toutes les traductions intégrées sur toutes les pages (prenez le temps de tester). Cela est valable aussi pour les modules, assurez-vous que le module est bien traduit en « français » et que le développeur parle « français ». Cela vous fera gagner beaucoup de temps, vous n’aurez pas besoin de modifier / réajuster toutes vos traductions.

Ressources

Pour ce tutoriel vous avez à disposition :

  • 1 x fichier traduction.txt (avec quelques codes basiques)

Télécharger

Résumé de la vidéo : traduire sa boutique Prestashop

  • Démonstration de l’outil de traduction classique, avec la problématique de trouver une chaîne de caractères spécifique à traduire.
  • Inspecter le code avec la console de Google peut aider à identifier le nom du module grâce au nom de la div qui encapsule le contenu.
  • L’utilisation de Netbeans sur un projet permet de localiser un texte à traduire directement dans le code source.
  • Très important dupliquer le thème standard et le renommer, sinon certaines traductions ne remontent pas dans l’outil de traduction Prestashop (j’ai cherché un moment concernant ce problème sur le thème par défaut).
  • Si aucune approche de traduction fonctionne il est toujours possible de mettre en place des exceptions basées sur le code de la langue courante.
  • Pour les plus avancés je vous invite à consulter la documentation officielle concernant les traductions Prestashop 1.7.

BOUM !

1 seul mail par semaine - pas de publicité

13 commentaires sur “Prestashop 1.7 – Gérer les traductions (ép. 67)”

    1. Hello,

      C’est exact je confirme que c’est une bonne méthode pour rechercher les traductions du type (TPL) pour le PHP par contre… il faudra rechercher sur « ->l(« .

      A bientôt !

  1. Bonjour,
    Moi ça ne fonctionne pas la méthode avec la règle
    {l s=’TEXTEATRADUIRE’ d=’Shop.Theme.Global’}
    j’ai essayé avec {l s=’TEXTEATRADUIRE’} mais c’est pareil. J y suis donc allé avec la methode des if elseif elseif elseif /if et là ça fonctionne.

    J’ai ajouté une div dans header.tpl (à la 74eme ligne) sous la bannière et au dessus du menu pour écrire le nom de ma boutique avec une phrase dans l’entête, comme cela:

    nomdelaboutique

    TEXTEATRADUIRE

    J’y suis allé un peu « au pif au mètre », est ce qu’il y a quelque chose qui empêcherait {l s=’TEXTEATRADUIRE’} de fonctionner ?

    TEXTEATRADUIRE apparaissait bien en front office sous le nome de la boutique. Le problème étant que dans le back office dans /international/translation il n y a aucun TEXTEATRADUIRE de trouvable… C’est incrompréhensible, j’ai vidé tout les caches des millier de fois j’ai même reboot l’OS! Rien a faire ça veut pas.

    1. Bonjour,

      Délicat de se prononcer sur la partie des traductions, car j’ai déjà vécu des cas similaires et impossible de trouver la chaîne de caractères à traduire. Je ne suis pas encore certain que c’est à 100% au point leur nouveau système de traduction.

      A bientôt !

    2. Petite chose à noter si on ne veut pas « traduire » mais « corriger la traduction »
      C’est que c’est {l s=’TEXTEATRADUIREENANGLAIS’}
      On doit mettre la phrase anglaise bien sur, pas celle en francais. (ca parait idiot mais on sait jamais.. )

  2. Bonjour,
    Trop polie ce français il dit toujours bonjour malgrés le 4eme commentaire d’affilé 😉
    sinon moi j’ai un soucie avec 2 traductions.
    1 sur la page produit il y a un message qui s’affiche en cas de rupture de stock, j’ai trouvé la traduction dans le BO, j’ai bien changé pour y mettre mon texte mais rien à faire ça reste normal.
    j’ai bien vidé les cache mais rien à faire. je me suis dit que j’allais à la sauvage en dur mais la encore problème, dans le fichier TPL ça cherche la ressource dans « $message » impossible de trouver le fichier message.
    2eme, dans un module rien n’est traduit, pas de fichier de traduction.
    comment intégrer la traduction de « NEW » dans ce morceaux de code?
    ‘jxNewestText’ => $this->trans(‘New’, array(), ‘Modules.Jxblogcomment.Admin’).
    je pense que trans est pour translate mais pas sur, surtout comme dit que je n’ai pas de fichier de traduction dans le module.
    il y a juste un php DE mais qui est vide.

    Au plaisir.
    Ludo

    1. Bonjour,

      Il est difficile de répondre précisément à ce point, car moi-même encore cette semaine j’ai vu des cas incompréhensibles où la traduction Prestashop ne voulait pas fonctionner… Si bien que pour finir j’ai dû rechercher massivement dans le projet les chaînes et faire le remplacement manuellement. Parfois je modifie le texte source en anglais (dans le TPL ou PHP) et je refais la traduction et là étrangement ça fonctionne.

      A bientôt !

  3. Je rajoute mon grain de sel.
    Mon système de traduction Prestashop ne marchant à peu près pas, je modifie les traductions à la main dans les fichiers .xlf (et fr.php). Quand je rajoute une nouvelle phrase, je recopie un bloc existant du fichier xlf puis j’y change les phrases et bien sûr l’id (sinon ça marche pas). Par ex:

    Optional
    Optionnel

    Pour obtenir le bon id (ebb061953c0454b2c8ee7b0ac615ebcd dans l’exemple), je tape la phrase dans la langue d’origine (« Optional ») ici : http://www.md5.fr . Ce site transforme le texte en code MD5.
    Plus qu’à vider le cache et ça marche.

    1. Hello,

      Ahaha vraiment très amusant, j’y avais pas du tout pensé à cette méthode. Je me demande si le fichier « xlf » peut-être parfois écrasé et que la traduction se perde en faisant ça… mais très bonne expérience.

      A bientôt !

  4. bonjour
    Alors je poste ici mon désespoir au sujet des traductions dans prestashop 1.7.7.1.
    Je veux faire une boutique prestashop sur un serveur qui me propose l’installation de prestashop uniquement en anglais. Alors ce n’est pas forcement un soucis, je repasse derrière en important le francais via le back office, et également en mettant mon profil admin en francais, ce qui me traduit le backoffice …. MAIS!!! en base de données, j’ai bien mes deux langues….avec bien tous les enregistrements en double, francais, et anglais. Sauf que le texte dans les enregistrements, qui correspond à la traduction française.. est en anglais!!! par exemple, j’ai mes pages de cms dans la table ps_cms_lang, en double, une version française, une anglaise, mais le contenu est dans les deux cas écrits en anglais… est il possible à tout hasard qu’il existe une solution pour réécraser le langage Français, mais avec du Français pour de vrai?
    merci!!!
    Vero

  5. Cette méthode de traduction ne fonctionne plus avec 1.7.8 j’ai l’impression.

    Comment faire pour traduire en dur, dans le tpl, un code en Français et en Anglais ? Par quoi faut-il remplacer : $language.language_code==’en’ ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *