vermich Posted June 11, 2013 Share Posted June 11, 2013 (edited) Bonjours a tous, j'ai un problème au niveau des objets des mails qui restent désespérément en Anglais. j'ai pourtant trouvé le fichier lang dans /mails/fr/lang.php, les traductions françaises sont bien renseignés mais ne sont pas prise en compte. Par exemple les mails du formulaire de contact reste ainsi : "Message from contact form [no_sync]" "Your message has been correctly sent #ct8 #tcPKqzP2atEj81" Edited June 26, 2013 by vermich (see edit history) Link to comment Share on other sites More sharing options...
karopresta Posted June 11, 2013 Share Posted June 11, 2013 Bonjour, Si tu as installé un thème, les traductions sont à faire dans le fichier de langue de ton thème. J'avais le même problème que toi, réglé depuis. Link to comment Share on other sites More sharing options...
vermich Posted June 11, 2013 Author Share Posted June 11, 2013 merci, alors dans mon thème j'avais bien testé de rajouter les traductions des objets au fichier "fr.php" mais ça n'a rien donné. pourrait tu me montrer un exemple de ce que tu as fait ? Link to comment Share on other sites More sharing options...
karopresta Posted June 11, 2013 Share Posted June 11, 2013 Voilà le contenu complet de mon fichier lang.php qui se trouve dans www\themes\themexxx\mails\fr En espérant que cela te permettra de résoudre ton problème. <?php global $_LANGMAIL; $_LANGMAIL = array(); $_LANGMAIL['Welcome!'] = 'Bienvenue !'; $_LANGMAIL['Process the payment of your order'] = 'Traiter le paiement de votre commande'; $_LANGMAIL['Message from contact form\').\' [no_sync'] = 'Message depuis le formulaire de contact'; $_LANGMAIL['New credit slip regarding your order'] = 'Nouvel avoir concernant votre commande'; $_LANGMAIL['Virtual product to download'] = 'Produit virtuel à télécharger'; $_LANGMAIL['Fwd: Customer message'] = 'TR: Message d\'un client'; $_LANGMAIL['Your guest account has been transformed to customer account'] = 'Votre compte invité a été transformé en compte client'; $_LANGMAIL['Package in transit'] = 'Livraison en cours'; $_LANGMAIL['Log: You have a new alert from your shop'] = 'Log : Vous avez un nouveau message d\'alerte dans votre boutique'; $_LANGMAIL['Your order has been changed'] = 'Votre commande a été modifiée'; $_LANGMAIL['Order confirmation'] = 'Confirmation de commande'; $_LANGMAIL['Message from a customer'] = 'Message d\'un client'; $_LANGMAIL['New message regarding your order'] = 'Nouveau message concernant votre commande'; $_LANGMAIL['Your order return state has changed'] = 'Nouveau statut de commande'; $_LANGMAIL['Your new password'] = 'Votre nouveau mot de passe'; $_LANGMAIL['Password query confirmation'] = 'Confirmation de demande de mot de passe'; $_LANGMAIL['An answer to your message is available #ct%1$s #tc%2$s'] = 'Une réponse à votre message est disponible #ct%1$s #tc%2$s'; $_LANGMAIL['New voucher regarding your order %s'] = 'Nouveau bon de réduction concernant votre commande %s'; $_LANGMAIL['Newsletter confirmation'] = 'Confirmation newsletter'; $_LANGMAIL['Email verification'] = 'Email de vérification'; $_LANGMAIL['Newsletter voucher'] = 'Bon de réduction newsletter'; $_LANGMAIL['Your wishlist\\\'s link'] = 'Lien vers votre liste de cadeaux'; $_LANGMAIL['Message from %1$s %2$s'] = 'Message de %1$s %2$s'; $_LANGMAIL['Your cart and your discount'] = 'Votre panier et votre bon de réduction'; $_LANGMAIL['Thanks for your order'] = 'Merci pour votre commande'; $_LANGMAIL['You are one of our best customers'] = 'Vous êtes l\'un de nos meilleurs clients'; $_LANGMAIL['We miss you'] = 'Vous nous manquez'; $_LANGMAIL['Product available'] = 'Produit disponible'; $_LANGMAIL['Stock coverage'] = 'Couverture de stock'; $_LANGMAIL['Product out of stock'] = 'Produit en rupture de stock'; $_LANGMAIL['Error reporting from your PayPal module'] = 'Erreur du module PayPal'; $_LANGMAIL['Congratulations!'] = 'Félicitations'; $_LANGMAIL['%1$s sent you a link to %2$s'] = '%1$s vous a envoyé un lien vers : %2$s'; $_LANGMAIL['New order - #%06d'] = 'Nouvelle commande - #%06d'; ?> Link to comment Share on other sites More sharing options...
vermich Posted June 11, 2013 Author Share Posted June 11, 2013 alors justement, j'avais vu aussi cette différence chez un autre, moi je n'ai pas de dossier mail dans mes thèmes (je suis en version prestashop 1.5) je l'ai juste à la racine. alors j'ai copié collé le dossier pour le mètre dans le dossier de mon thème mais ca ne donne pas grand chose. Link to comment Share on other sites More sharing options...
karopresta Posted June 11, 2013 Share Posted June 11, 2013 Je suis en 1.5.4.1 je ne sais quoi te dire d'autre.... Link to comment Share on other sites More sharing options...
vermich Posted June 12, 2013 Author Share Posted June 12, 2013 merci pour ton temps, je vais continuer a chercher une solution Link to comment Share on other sites More sharing options...
karopresta Posted June 12, 2013 Share Posted June 12, 2013 Je t'en prie. J'espère que tu trouveras vite. Link to comment Share on other sites More sharing options...
vermich Posted June 12, 2013 Author Share Posted June 12, 2013 Depuis le back office tout est traduit mais je ne peux pas accéder aux sujets du mail: Aucun sujet n'a été trouvé pour contact_form, ou le sujet est généré depuis la base de données. Coté controllers j'ai ça: if (isset($ct) && Validate::isLoadedObject($ct)) { if ($ct->id_order) $id_order = $ct->id_order; $subject = sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token); } else $subject = Mail::l('Your message has been correctly sent'); if ($id_order) { $order = new Order((int)$id_order); $var_list['{order_name}'] = $order->getUniqReference(); $var_list['{id_order}'] = $id_order; } if (empty($contact->email)) Mail::Send($this->context->language->id, 'contact_form', $subject, $var_list, $from, null, null, null, $fileAttachment); else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname.' '.$customer->lastname : ''), $fileAttachment) || !Mail::Send($this->context->language->id, 'contact_form', $subject, $var_list, $from, null, $contact->email, $contact->name, $fileAttachment)) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } si quelqu'un voit un truc qui cloche ou sait où trouvé l'emplacement ou je doit mêtre le fichier lang. Link to comment Share on other sites More sharing options...
michelp Posted June 21, 2013 Share Posted June 21, 2013 J'ai aussi un souci bien pénible avec les traductions de mails postés par le module form de contact dans Prestashop. J'ai réussi à contourner le problème, voici ce que j'ai constaté et ce que j'ai fait : Résumé : Dans la version 1.5.4.1 de Prestashop, les traductions par défaut en francais des objets des messages du form de contact comportent un bug de formatage et des oublis. Deux messages sont posté, avec les objets du type, en anglais au lieu du français : - [XXX] Message from contact form [no_sync] - [XXX] Your message has been correctly sent #ct? #tc?????? A noter (c'est sans doute lié) que dans le BO : Localisation > Traduction > Modifier les traductions > Traductions des modèles d'e-mails : Coeur (indépendant du thème) 1) le champs de traduction du 1er sujet de mail s'intitule bizarrement : Message from contact form').' [no_sync] au lieu de : Message from contact form et le contenu reste désépérement vide (cf image en pj) 2) il n'y a pas trace de la trad du sujet de mail : Your message has been correctly sent Solution qui marche que j'ai appliqué : Il faut modifier directement le fichier : /mails/fr/lang.php : $_LANGMAIL['Message from contact form\').\' [no_sync]'] = 'Message depuis le formulaire de contact'; en : $_LANGMAIL['Message from contact form'] = 'Message depuis le formulaire de contact'; puis ajouter 2 lignes : $_LANGMAIL['Your message has been correctly sent'] = 'Votre message a été envoyé'; $_LANGMAIL['Your message has been correctly sent #ct%1$s #tc%2$s'] = 'Votre message a été envoyé #ct%1$s #tc%2$s'; puis, si /mails/fr/ a les droits en modif par le backoffice, il faut interdire la modif de ce fichier (CHMOD du fichier), sinon à la prochaine màj via le Backoffice Prestashop, ce bât.. de sa ra.. va remettre l'ancien bug en place ! Ca provoque une alerte côté BO mais c'est un moindre mal. Bref, bien des emm.... à la clé pour juste 2 trads 1 Link to comment Share on other sites More sharing options...
Quokka Web Posted October 28, 2013 Share Posted October 28, 2013 Je viens de tomber sur le même problème. Au niveau de ContactController.php, j'ai remplacé Mail::Send($this->context->language->id, 'contact_form', $subject, $var_list, $from, null, $contact->email, $contact->name, $fileAttachment)) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); par Mail::Send($this->context->language->id, 'contact_form', Mail::l('Your message has been correctly sent', (int)$id_lang), $var_list, $from, null, $contact->email, $contact->name, $fileAttachment)) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); Et là, ça marche. J'ai laissé tombé les titres du genre "Your message has been correctly sent #ct%1$s #tc%2$s". J'ai bien compris que le #ct... correspond à une espèce de numéro de dossier mais si on ne le dit pas dans le mail, le client risque de ne pas comprendre ce que c'est du coup j'ai préféré simplifier. J'ai l'impression que le fait de passer par une variable pour initialiser le sujet du mail c'est pas terrible. Ca me fait penser que le système de traduction des sujets des mails n'est pas forcément toujours adapté (pour ne pas dire buggé). Premièrement, je confirme il ne faut pas passer par une variable pour initialiser le sujet d'un mail. Deuxièmement, que se passe-t'il si je veux utiliser 2 sujets différents pour un même mail (c'est le cas ici dans le ContactController.php)? Apparemment, PS prend le premier et le second passe à la trappe. 1 mail = 1 sujet. Link to comment Share on other sites More sharing options...
CREATPHYS Posted October 29, 2013 Share Posted October 29, 2013 Bonjour, j'ai le même prob avec les emails en version 1.5.6.0 Je peut comprendre que sur la 1.5.4 peut avoir un bug, mais prestashop ne la pas corriger depuis cette version ? J'ai besoin d'un peut d'aide meme beaucoup. je peut pas utiliser les version 1.5 et je vais devoir revenir a nos magnifique version 1.4 Allez Mr PRESTASHOP aider nous Link to comment Share on other sites More sharing options...
cockpitinferno Posted November 1, 2013 Share Posted November 1, 2013 (edited) ca a l'air de fonctionner mais je n'avais pas tout à fait le même code j'avais un point d'exclamation devant la le mot mail. je l'ai enlevé pour recopier tel quelle la formule donnée au dessus. par contre moi dans mes mails j'ai toujours le [no sync] c'est pas trop grave mais ca m'enquiquine car il faut que je l'enlève à chaque fois que je réponds à un client... c'est bof je suis en 1.5.6, la solution évoquée au dessus avec les traductions ne fonctionne pas pour no sync. du coup je l'ai enlevé mais je ne sais pas si c'est une bonne chose: if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form'), je pense qu'il faudrait enlever résolu au titre du message car avec la toute dernière version de presta (1.5.6) certaines des solutions proposées ne fonctionne pas et ce serait dommage d'ouvrir un n ième topic de plus... Edited November 1, 2013 by cockpitinferno (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now