Jump to content

[RESOLU] Clonage d'un module, problème de traduction


Recommended Posts

Bonjour,

Confrontée comme beaucoup au souci de l'incapacité de PS d'accepter des commandes de produits gratuits, j'ai fait des recherches sur le Net et ai vu qu'une solution possible serait de cloner le module de paiement par chèque et de le modifier .
Eolia avait concocté quelque chose dans ce sens en 2015 mais hélas a retiré son module. C'était pour PS 1.6 mais je me serais basée dessus pour voir comment modifier celui de PS 1.7 (le site est sur 1.7.5.2)

Son module était renommé genericpaiement, pour ma part, j'ai cloné le module en l'appelant ps_freeorder et j'ai modifié à l'intérieur en remplaçant checkpaiement par freeorder. Ensuite je l'ai installé. 

Ayant modifié les termes à traduire pour les faire correspondre à mes attentes, et pour ne pas empiéter sur les traductions du module initial, j'ai modifié les appels de traduction.
Par exemple 

$this->displayName = $this->trans('Payment by check'), array(), 'Modules.Checkpayment.Admin');

est devenu

$this->displayName = $this->trans('Free orders', array(), 'Modules.Freeorder.Admin');

mais j'ai beau chercher partout dans Internationalisation -> Traduction -> back-office, je ne trouve pas "free orders"

J'ai cherché dans la doc (qui dit que cette méthode est pour 1.7.6 et supérieur mais qui manifestement est déjà utilisé sur 1.7.5.2, version de mon site). Il me semble avoir bien respecté les règles en ne mettant pas le ps_ qui est dans le nom de mon module, et en mettant une majuscule sur la première lettre.

Quelle est l'astuce pour que cela fonctionne ?

 

Si je remets les traductions avec checkpayment, si le module originel est désinstallé, est-ce que cela supprime les traductions ?

[edit]Pour modifier le texte dans la config de mon module ps_freeorder, je vois qu'en fait c'est dans le fichier infos.tpl ou j'ai mis :

<p><strong>{l s="This module allows free orders" d='Modules.Freeorder.Admin'}</strong></p>

Je pourrais bien sûr mettre tout en français dans le code mais c'est moins "joli" ...

[/edit]

Merci d'avance

Edited by kerlin
ajout (see edit history)
Link to comment
Share on other sites

J'ai trouvé. La méthode utilisée ne fonctionne que pour les modules du Core ou natifs. Même si c'est un clone, mon module est considéré comme 3thparty.

La phrase à traduire doit donc être écrite comme ceci :

{l s="Blabla to translate" mod='nom_module'}

Et là ça semble fonctionner.

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...