Jump to content

[Résolu]Objets de mail en anglais


Recommended Posts

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 by vermich (see edit history)
Link to comment
Share on other sites

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

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

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

  • 2 weeks later...

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 :(

post-387906-0-18362100-1371806600_thumb.jpg

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

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

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

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 by cockpitinferno (see edit history)
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...