Jump to content

Template de modules et traductions


Recommended Posts

Bonjour,
Vous savez certainement que l'on peut aisément customiser les templates des modules en dupliquant le tpl original dans la même arborescence dans notre dossier thème.
Ex : modules/blocknewproducts/blocknewproducts.tpl -> themes/[mon_theme]/modules/blocknewproducts/blocknewproducts.tpl
C'est très bien expliqué ici :
http://www.ecartservice.net/06082009/customising-prestashop-module-templates

C'est un comportement très puissant et très confortable de la customization, l'ennui c'est que lorsque l'on met ensuite met à jour ses traductions avec le BO, celui-ci crée automatiquement des fichiers langues vides avec les tpl de modules dans notre thème...ce qui fait que le moteur ne fait appel à ces fichiers et comme ils sont vides, il fait appel aux fichier en anglais de défaut.
Et je dois avouer que cela pénalise beaucoup cette modularité, il suffit que l'on ait eu besoin de customiser tous les block d'une sidebar par ex, on se retrouve donc avec toutes les langues à retraduire, n'y aurait-il pas moyen de hacker gentiment cela ? je voyais déjà 2 choses :

1) Soit vérifier que si le fichier langue n'existe pas dans le chemin du tpl de module, vérifier également que le chemin du tpl ne soit pas dans les themes avant de créer un fichier vide.

3) Sinon on pourrait considérer que lorsque l'on duplique un tpl de module dans son thème, on doit aussi dupliquer le fichier de langue, avantages : intuitif, conserve la modularité et pas de modifs dans le core, inconvénient majeur :...ben c'est pas possible, les fichiers ont la forme :

global $_MODULE;
$_MODULE = array();
$_MODULE['<{blockadvertising}prestashop>blockadvertising_fd4c71c948857cce596a69fbaea7426b'] = 'Bloc publicité';
$_MODULE['<{blockadvertising}prestashop>blockadvertising_2c6706322b2b9f670251533d907d2bbc'] = 'Ajoute un bloc affichant une publicité';
...


Le BO génère un token (apparemment md5) à partir de la chaîne en anglais, mais ça ne fonctionne pas pour les tpl de modules de thème, cette clé est-elle aussi fabriquée en fonction du chemin du fichier ?

Bref je cherche une solution qui me permettrait de copier les fichiers de langue - déjà traduits - de modules dans mon thème et que cela fonctionne OU toute autre solution moins lourde que retraduire tous les modules customisés...si quelqu'un a une piste, je suis preneur, merci d'avance !

Link to comment
Share on other sites

Bon j'ai trouvé, il suffit bien de copier également les fichiers langues de modules dans notre thème et de faire des remplacements de chaînes pour que cela fonctionne, voici une ligne d'exemple :

...
$_MODULE['<{blocknewproducts}prestashop>blocknewproducts_f7c34fc4a48bc683445c1e7bbc245508'] = 'Bloc nouveaux produits';...


il suffit de remplacer la chaîne 'prestashop' (qui est le répertoire du thème par défaut) par le nom du répertoire de notre thème :
$_MODULE['<{blocknewproducts}mon_theme>blocknewproducts_f7c34fc4a48bc683445c1e7bbc245508'] = 'Bloc nouveaux produits';...[/code]

Un ctrl+H de '}prestashop>' pour '}mon_theme>' sur le répertoire modules de notre thème pour utiliser toutes les traductions (déjà existantes) dans nos templates de modules...
salut !

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...