winben Posted October 4, 2013 Share Posted October 4, 2013 Ich kann nichts mit diesem [no_sync] anfangen. Der eigentliche Shopbetreiber mag diese Klammern nicht und würde gerne auch das [no_sync] entfernen. Das mit dem in Klammern gesetzten Anfang habe ich lösen können (Subject: EcoloBlue - Message from contact form [no_sync]). Die Klammern sind weg. Nur dieses no_sync soll auch weg. Gibt es da eine Möglichkeit? Danke Link to comment Share on other sites More sharing options...
eleazar Posted October 4, 2013 Share Posted October 4, 2013 Da kan so recht keiner etwas mit anfangen. Irgendwie ist dieser seltsame Text ins englische Original geraten. Du kannst ihn nur verhindern, indem du irgendetwas anderes in die Übersetzung schreibst, die derzeit leer ist. Du findest diese Passage unter Lokalisierung --> Übersetzungen --> Übersetzungen E-Mail-Vorlagen --> Programm (Kein Template gewählt) Die letzte Option ist entscheidend, denn wenn du hier ein konkretes Template auswählst, bekommst du beim Speichern eine Fehlermeldung! Dann auf die deutsche Flagge klicken und die erste Sektion öffnen: vordefinierte E-Mails Such dort nach "Template für contact" und schreib etwas in das leere Übersetzungsfeld, z.B. 'Kundennachricht'. Link to comment Share on other sites More sharing options...
winben Posted October 4, 2013 Author Share Posted October 4, 2013 (edited) Alles so gemacht. Tut sich leider nichts. Werde es aber nochmal durchgehen. Also, nach dem Versuchen klappt das nicht. Ich mache das natürlich alles auf englisch. Bei speichern gibt er mir zwar an, dass alles richtig gespeichert ist aber wenn ich dann nachschaue ist das Feld wieder leer. Edited October 4, 2013 by winben (see edit history) Link to comment Share on other sites More sharing options...
Lockesoft Posted October 4, 2013 Share Posted October 4, 2013 Hallo zusammen, es scheint auch kein Übersetzungsproblem zu sein. Dieser Text kommt direkt aus /controllers/front/ContactController.php. Da ist nichts zu erkennen von einer möglichen Übersetzbarkeit dieser Stelle. Hier der Auszug aus der Datei ca bei Zeile 200 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', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, $fileAttachment)) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); Man kann entweder die komplette Passage entfernen, also vom Punkt bis zum zweiten Hochkomma . '[no_sync]' oder man ersetzt den Text zwischen den Hochkomma mit {shop_name}. Dann wird an der Stelle der Name des Shops eingesetzt, das könnte nützlich sein für die Leute, die mehr als einen Shop betreiben. Alternativ kann man bis PS 1.5.4.1 (bei 1.5.5 noch nicht getetestet) auch mein kleines Modul FixContactUpload aus dem Forumbereich Kostenlose Module (http://www.prestashop.com/forums/topic/241530-modul-fix-fur-den-dateiupload-im-kontaktformular/) verwenden. Das war zwar eigentlich gedacht um den Fehler mit Dateiendungen in Großbuchstaben im Kontaktformular zu beheben, behebt aber nebenbei auch diesen Mangel. In jedem Fall sollte dieser wunderbare Fehler in den Bugtracker getippert werden, damit er schnellstmöglich aus dem Shop verschwindet. So wie der Uploadfehler mit den groß geschriebenen Dateinamen im Kontaktformular. aus diesem Grund habe ich das Modul auch nicht mit 1.5.5 getestet. Es war in dem Fall schlicht überflüssig LG Klaus / Lockesoft 2 Link to comment Share on other sites More sharing options...
eleazar Posted October 5, 2013 Share Posted October 5, 2013 Hallo Klaus, Deinem Vorschlag stimme ich zu, nachdem ich der Sache nochmal nachgegangen bin. Ein Bug ist es nicht, sondern ein vom PrestaShop-Team gewolltes Verhalten: http://forge.prestashop.com/browse/PSCFV-8736 Hier werden ja mithilfe des bei php üblichen Punkts zwei Variablen miteinander verknüpft, der eigentliche Text, so wie er in der hierfür zuständigen lang.php der mails übersetzt wurde: $_LANGMAIL['Message from contact form'] = 'Nachricht aus dem Kontaktformular'; und die Variable no_sync, die den Sicherheits-Token der Mitteilung ausgibt, wie er vom Customer Services Tool generiert wurde, also z.B. Nachricht aus dem Kontaktformular #ct1 #tc9jxcWz3iutdD Da sich der normale Anwender spätestens dann fragen wird, ob PrestaShop vielleicht Funktionsstörungen hat , plädiere ich auch dafür, deinem Vorschlag zu folgen. Mit diesen kryptischen Zeichen kann außerhalb der Programmierergemeinde eh niemand etwas anfangen. 1 Link to comment Share on other sites More sharing options...
winben Posted October 5, 2013 Author Share Posted October 5, 2013 (edited) Hallo Klaus, (mein Name ist übrigens Winfried) ich würde mich ja wagen deine vorgeschlagene Änderung vorzunehmen. Werde aber erst nochmal in anderen Sprachen suchen. Ich finde es super, dass hier wenigstens 2 richtig aktive Member sind. Wenn mir da noch nebenbei ein gutes Modul für ein Produktabo nennen kann währe ich froh. Hab schon gesucht aber es läuft fast alles nur auf Paypal. Wenn ich ne nosync idee finde werde ich mich melden. Danke Winfried Habe erstmal das [no_sync] weggemacht und gegen ein anderes Wort ausgetauscht. Geht super. Weglöschen hat nichts gebracht. Da kam nur eine weisse Seite als ich das Formular aufgerufen habe. Also, umbenennen funktioniert gut. Edited October 5, 2013 by winben (see edit history) Link to comment Share on other sites More sharing options...
Lockesoft Posted October 6, 2013 Share Posted October 6, 2013 @Winfried wahrscheinlich hast Du entweder etwas zuviel oder wenig gelöscht. Es ist wie Rainer schon beschrieben hat. Der Rest drum rum ist für die Funktion wichtig. Wobei allerdings [no_sync] selber keiner Schreibweise einer Variable so recht entsprechen mag. :-) @Rainer Wie möchtest Du das lösen? Ich hatte mehrere Vorschläge in dem Posting gemacht. :-) LG Klaus / Lockesoft Link to comment Share on other sites More sharing options...
eleazar Posted October 6, 2013 Share Posted October 6, 2013 Ich hatte mich ja da auch schon zustimmend geäußert, und denke daher nicht, dass die folgende Übersetzung auf große Ablehnung stoßen wird: Message from contact form').' [no_sync] Kundennachricht von {shop_name} Link to comment Share on other sites More sharing options...
Lockesoft Posted October 6, 2013 Share Posted October 6, 2013 (edited) alles klar, es hätte ja auch sein können, dass Du die Variante mit ganz rausschmeissen meinst. :-) Komplett als Übersetzung geht es leider nicht. Da muss schon ein Override her. Oki, Jetzt hat man mal wieder eine Kleinigkeit anders gelöst. Das sorgt dafür, dass ich nicht einfach nur einen einzelnen Override erstellen kann. Für die Shopversionen 1.5.x - 1.5.3.1 gilt diese Datei: ContactController.php Sie basiert auf dem für das Modul FixContactUpload aus dem Bereich Kostenlose Module erstellten Override und sollte damit sowohl für die älteren 1.5er Shopversionen nutzbar sein als auch direkt den Fehler mit den groß geschriebenen Dateiendungen beseitigen. Für die Shopversionen 1.5.4 gibt es dann diese Datei: ContactController.php Für PS 1.5.5.0 (evtl. auch für spätere Versionen) Gilt dann die folgende Datei: ContactController.php In beiden Fällen gehört die zur Shopversion passende Datei nach /override/controllers/front/ContactController.php kopiert. Danach muss noch in /cache die Datei class_index.php gelöscht werden, damit der Shop die Liste der controller neu aufbaut. Alternativ kann natürlich auch das oben erwähnte Modul zum Installieren verwendet werden. Das Modul dazu herunterladen, im Modulverzeichnis den Ordner /override/controllers/front suchen und die zur Shopversion passende Datei hinein kopieren. Das ersetzt die vorhandene Datei. Danach entweder das Modul wieder zippen, oder komplett via FTP nach /modules kopieren. Modul installieren. Der Override ist damit auch installiert. Ergänzung / Nachtrag: Nachdem Rainer / eleazar mich (weiter unten in diesem Thread) darauf hingewiesen hat. sind für die Fehlermeldungen innerhalb der Overrides noch Übersetzungen nachzutragen. Ansonsten gibt es englischsprachige Fehlermeldungen wenn ein Kunde zum Beispiel kein Betreff auswählt. PrestaShops-Übersetzungslogik sieht an der Stelle wohl Zwei verschiedene Sätze Fehlermeldungen. Den einen im Orginal-Controller und den anderen im Override. Nein, so wie im durchgestrichenen war es dann doch nicht. Die englischen Orginaltexte wurden geändert. Gibt es jetzt noch eine dritte Version des Overrides. Also muss das noch ergänzt werden. Das gilt auch für Installation mit dem Modul. LG Klaus / Lockesoft Edited October 9, 2013 by Lockesoft (see edit history) 1 Link to comment Share on other sites More sharing options...
eleazar Posted October 7, 2013 Share Posted October 7, 2013 Das ist mir schon klar, dass eine Änderung der Übersetzung nicht reicht. Deshalb hatte ich auch deinen Vorschlag so verstanden, dass der Code-Schnipsel .' [no_sync]' ersatzlos aus der ContactController.php gestrichen wird. Den Sinn deiner Overrides kann ich allerdings nicht erkennen. Wenn es nur darum geht, den für viele Anwender wahrscheinlich überflüssigen Token unsichtbar zu machen, dann würde es völlig ausreichen, bei der Übersetzung der E-Mail im Back Office Your message has been correctly sent #ct%1$s #tc%2$s die Variablen einfach wegzulassen: Ihre Nachricht wurde gesendet Mit deinem Override schaffst du aber neue Probleme, denn ich kann dir gleich auf Anhieb vier Stellen nennen, bei denen die Übersetzungen nicht mehr funktionieren und statt dessen der englische Text ausgegeben wird, weil deine Variablen nicht stimmen. $this->errors[] = Tools::displayError('Message cannot be blank'); $this->errors[] = Tools::displayError('Please select a subject from the list.'); $this->errors[] = Tools::displayError('An error occurred during the file upload'); $this->errors[] = Tools::displayError('An error occurred while sending message.'); 1 Link to comment Share on other sites More sharing options...
winben Posted October 7, 2013 Author Share Posted October 7, 2013 Hallo Leute, ich möchte dieses Topic nicht als gelöst abstellen. Das ist es ja auch nicht in wirklichkeit. Mit der Änderung von [no_sync] in meinem Fall in Ecoloblue funktioniert es bis jetzt ohne Probleme. Wenn ich Fehler merke werde ich es mitteilen. Grüsse aus Assisi Winfried Link to comment Share on other sites More sharing options...
Lockesoft Posted October 7, 2013 Share Posted October 7, 2013 Hallo Rainer,Du erstaunst mich. In Posting #10 schreibst Du auf einmal das folgende: Das ist mir schon klar, dass eine Änderung der Übersetzung nicht reicht. Deshalb hatte ich auch deinen Vorschlag so verstanden, dass der Code-Schnipsel.' [no_sync]'ersatzlos aus der ContactController.php gestrichen wird. Während Du in Posting #8 noch den Wunsch geäussert hast, das der Shopname da rein soll.: Ich hatte mich ja da auch schon zustimmend geäußert, und denke daher nicht, dass die folgende Übersetzung auf große Ablehnung stoßen wird: Message from contact form').' [no_sync] Kundennachricht von {shop_name} Genau das machen die Override. Sie setzen hinter den übersetzbaren Text den Namen des Shop. Wie Du es gewünscht hast.Dazu schmeisst Du Mitteilungen durcheinander, die von Dir in Posting #10 zitierten sind an den Kunden. Die geänderte Stelle betrifft die Mail an den Shopbetreiber. In dieser gibt es die Variablen imho gar nicht. Dann geht es weiter mit: Mit deinem Override schaffst du aber neue Probleme, denn ich kann dir gleich auf Anhieb vier Stellen nennen, bei denen die Übersetzungen nicht mehr funktionieren und statt dessen der englische Text ausgegeben wird, weil deine Variablen nicht Das kann ich mir ehrlich gesagt nicht vorstellen, weil die einzige Änderung jeweils im Einsetzen der Variable und dem löschen des reinen Text [no_sync] besteht. [no_sync] ist nicht einmal eine Variable. Der Grund dafür ist wie es aussieht ein anderer. Für PrestaShop sind es wohl ZWEI Sätze Fehlermeldungen. Einen im Orginal-Controller und einen im Override. Nachdem ich die Fünf Zeilen nachgetragen habe gibt es auch wieder deutsche Fehlermeldungen im Kontaktformular. Oki, dann werde ich im Nachgang noch die Postings zu den Override und dem FixContactUpload-Modul noch ergänzen.. LG Klaus / Lockesoft 1 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