Übersetzungen verschwunden nach Aktualisierung im Back Office 18. Mai 2011

Eine der Prestshop Stärken sind die Übersetzungen, die man im Back-Office sehr einfach anpassen kann. Dazu wählt man im Menü „Tools“->“Translations“ die gewünschte Art der Übersetzung aus dem Drop-Down der „Übersetzungen ändern“ (engl. modify translations), zum Beispiel die „Übersetzungen Front Office“ und und klickt mit der Maus auf die Flagge, dessen Sprache man ändern will.

Tools zur Übersetzung im PrestaShop Back-Office

Man gelangt nun zu einer Seite auf der man für jeden englische Standard-Begriff oder -Satz seine eigene Übersetzung angeben kann. Sind alle gewünschten Änderungen eingetragen klickt man den Aktualisieren Button.

Nun kann es aber sein, dass die Übersetzungen auf einmal verschwunden sind! Geht man nun nochmal auf die vorherige Seite sieht man, dass viele Felder einfach leer sind. Aber was ist passiert?

Dieses Problem ist dem Apache Modul „Suhosin“ zuzuordnen. Dieses Modul ist eigentlich für die Sicherheit des Apache zuständig und filtert Eingaben über GET und POST Variablen, die vom Benutzer kommen. Eine kleine, aber feine Einstellung bewirkt, dass nur eine maximale Anzahl von Eingabefelder per POST Request vom Suhosin Modul durchgelassen werden. Standardmäßig sind 200 eingestellt.
Nun enthält die Übersetzungsseite allerdings bis zu 3000! Eingabefelder, die über POST verschickt werden, teils sogar noch mehr.

Es gibt mehrere Möglichkeiten den Fehler zu beheben:

Wenn Apache als Modul läuft kann man eine .htaccess in das Shop-Root Verzeichniss einstellen (wenn nicht sogar schon vorhanden) und folgende Zeilen dort einfügen. Am elegantesten geht das im Back-Office unter Tools > Generatoren > Htaccess-Datei erzeugen > spezifische Einstellungen:
php_value suhosin.post.max_vars 4000
php_value suhosin.request.max_vars 4000

oder diese Einstellungen direkt in der php.ini auf dem Server ändern (soweit man darauf Zugriff hat):
suhosin.post.max_vars 4000;
suhosin.request.max_vars 4000;

Danach den Apache mit reload neu starten!

Nun muss man die Sprache wieder herstellen, indem man das aktuelle Sprachpaket von der PrestaShop Seite lädt und in seinem Shop neu installiert. Es sind leider alle eigenen Änderungen weg. Allerdings sollte es jetzt nicht mehr vorkommen, dass Übersetzungen verschwinden. Eine Abhilfe könnte noch der folgende Tipp sein.

Wer Glück hat und sofort festgestellt hat, dass Übersetzungen fehlen, hat die POST-Daten noch im Browser-Zwischenspeicher. Das bedeutet, wenn mit F5 (Browser > Seite neu laden) die Seite nochmal neu geladen wird, könnte nach den o.g. Änderungen in htaccess/php.ini die fehlenden Übersetzungen wieder hergestellt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.