Jump to content

Übersetzungen werden nicht mehr in Dateien geschrieben


Recommended Posts

Hallo,

 

irgendwie werden meine Übersetzungen welche im Backend gemacht habe - trotz Erfolgsmeldung (ok2.png Update successful) - nicht mehr in die dazugehörigen Dateien geschrieben. Mir ist das jetzt bei einigen Modulen und auch der /translations/admin.php aufgefallen - in der admin.php ist das aber so, dass lediglich 999 Zeilen geschrieben werden, danach ist dann Schluss.

 

Hat jemand nen Tipp wo das Problem liegen könnte?!

Bin am Verzweifeln, denn ich habe in der AdminOrders so einiges hinzugefügt (wollte das eigentlich über include in eine Datei im Modulordner auslagern, da ich nicht weiß, wie ich das als richtiges Modul eingebunden bekomme, aber auch dort wurden meine Übersetzungen nicht geschrieben) und es werden in der admin.php nichtmal die leeren Übersetzungsfelder angezeigt :( -> lediglich im Übersetzungstab des Backends, aber wie gesagt, der schreibt ja nicht alles in die admin.php

 

 

Vielen Dank im Vorraus

 

greetz

 

 

PS: PrestaShop™ 1.4.7.0

Link to comment
Share on other sites

Fehlende Schreibrechte in dem entsprechenden Ordner. Wenn zu wenig Zeilen geschrieben werden, oder im BO irgendetwas fehlt, dann ist das auf zu wenig memory_limit zurückzuführen. Für alle Prestaversionen ab 1.4.X ist ein minimal memory_limit von 128M nötig.

Provider kontaktieren und diesen Limit erhöhen. Wie man Schreibrechte setzt findest du HIER.

Link to comment
Share on other sites

Die angegebenen 64M sind für Versionen 1.3. und darunter geeignet. Die Software ist in diesen 2 Jahren gewachsen und enthält mehr Features. Auch wächst dein Shop, mehr Artikel, mehr Kunden, Bestellungen, neue Module werden aktiviert. Alles das benötigt mehr Ressourcen. 64M ist viel zu wenig, deshalb werden auch nur 64M geladen und du hast die Probleme.

 

Bis 1.4.4.1 konnte man mit den 64M noch ohne Probleme arbeiten, ab der 1.4.51. nicht mehr. Mit 1.4.6.2 fast garnicht mehr und mit der 1..4.7. nur in der Standardversion mit 3 Kategorien und 5 Produkten. Die 1.5. erfordert sowieso ein Minimum von 128M.

Link to comment
Share on other sites

Nein. In der confi.inc.php gibt es nur einen Eintrag über das Limit von Scripts, also wie lange die Ausführung dauern kann. Um welche Übersetzung geht es denn ? Standard oder extra Modul ? Wenn es ein Modul ist, dann hat das Modul eine de.php (für Deutsch). Diese muss Schreibrechte haben.

 

Alternativ kannst du aber auch die de.php mit einem Editor öffnen, übersetzen und dann wieder auf dem FTP speichern. Das geht auf jeden Fall und läuft dann nicht durch Presta's Routine.

Ist zwar keine Lösung, aber das Problem für jetzt mal gelöst.

 

Wenn es trotzdem nicht funktioniert, dann die Error-Logs des Servers auswerten, bzw. mit firebug den Verlauf ansehen.

Link to comment
Share on other sites

Also, normalerweise wurden neue Sprachteile (bsp: $this->l('Thank you again for your Order in our online shop which we confirm.')), wie im Backend auch, in der dazugehörigen Sprachdatei als Leerfelder eingefügt - dies geschieht gar nicht mehr!

Also geht auch die Übersetzung in dieser Datei nicht, es sei denn ich nehme jeden Text, wandle ihn in MD5 um und lege die Zeile mit dem MD5-Hash und sonstigem Zeugs in der Datei an (geht doch so, oder?). Das wäre natürlich ziemlich umständlich :(

Die Rechte sind wie gesagt vollkommen in Ordnung (640 geht aber nicht, dann kommt die "beliebte" Fehlermeldung im Backend).

Werd mal den Errorlog aktivieren und schaun was dabei rauskommt.

 

Greetz

 

 

PS: Rechteprobleme können doch eh ausgeschlossen werden, da ja etwas geschrieben wird - nur halt nicht alles ;)

PPS: Keine Eintragungen im Log :(

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

also legt er die Einträge erst an, wenn ich die Übersetzung im Backend mache?

Wie soll ich denn dann vorgehen um die selbst einzutragen? MD5 Hash erzeugen und an die passende Stelle einfügen z.B.:

 

für

 

$this->l('Send delivery slip')

 

ergibt

 

$_LANGADM['AdminOrders9a889eeafc9fa118fc375eb7d4c7c53a'] = 'Auftragsbestätigung senden';

 

???

 

Nutze Prestashop übrigens erst seit Version 1.4.1 glaube ich also auf jeden Fall nicht unter 1.4 :blink:

 

Mir fällt grad ein, dass es sein kann, dass ich das Phänomen Leereinträge evtl. aus Modulen kenne, welche schon "etwas" älter sind?!

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

Ja. BEI MODULEN ! Alle Standardtexte kommen von der Sprachdatei die mitkommt. Handelt es sich um ein extra Modul, oder ein EXTRA TEMPLATE, dann wird, wenn die Sprache nicht verfügbar ist, diese erst dann angelegt, wenn man sie übersetzt. DAS GILT ABER NUR FÜR VERSIONEN AB 1.4.4.1. Versionen darunter hatten nicht so eine intelligente Struktur. Dies dient der Einsparung von Serverressourcen und unnötigen Dateien.

 

Du kannst eine andere Sprache kopieren die Übersetzungen beinhaltet, so hast du zumindest die Variablen vorhanden. ABER NICHT EN !

Dann kannst du ganz normal aus dem BO die Übersetzungen ändern.

Link to comment
Share on other sites

Mhhh, ich hab aber keine Sprachdateien, da ich z.B. die AdminOrders.php extrem verändert habe (beispielsweise viele neue Sprachvariablen hinzugefügt) - jede meiner Änderungen wird im Backend aufgeführt nur komm ich da wieder zu dem Problem, dass nur 999 Einträge in die admin.php übernommen werden (weitaus weniger als schon standardmäßig drin sind) ;(

 

Ich werd nochmal die Originaldateien einspielen und schaun, ob das Problem damit gelöst ist - dann müsst ich halt lernen, wie ich ein Modul schreibe, welches sich dann in die AdminOrders.php einbindet :(

 

Danke

Link to comment
Share on other sites

OK. Dann liegt das Problem woanders. Du hast in einer Datei neue Texte eingefügt ?

 

Damit ist es nicht abgetan. Du musst erst die neuen Variablen im Smarty anlegen, dann im php oder tpl übergeben, damit diese auch für die Übersetzungsdateien zur Verfügung stehen. In den Übersetzungsdateien musst du dann den MD5Hash für die neuen Variablen einfügen, UND erst dann stehen sie dir für Übersetzungen zur Verfügung.

Link to comment
Share on other sites

OK. Dann liegt das Problem woanders. Du hast in einer Datei neue Texte eingefügt ?

 

Damit ist es nicht abgetan. Du musst erst die neuen Variablen im Smarty anlegen, dann im php oder tpl übergeben, damit diese auch für die Übersetzungsdateien zur Verfügung stehen. In den Übersetzungsdateien musst du dann den MD5Hash für die neuen Variablen einfügen, UND erst dann stehen sie dir für Übersetzungen zur Verfügung.

 

komisch, hat bisher immer so funktioniert?! Außerdem gibts ein paar Texte, welche zu lang sind (zumindest konnte ich sie auf einer schnell gesucht/gefundenen MD5 Wandlerseite nicht vollständig wandeln) - die Texte werden nicht als Variablen angelegt sondern per "echo $this->l('Send delivery slip')" ausgegeben. Sie werden auch auf der betreffenden Seite angezeigt.

Hier die geänderte Datei: AdminOrders.php ab Zeile 564

Link to comment
Share on other sites

So funktioniert das nicht. Mit echo übergibst du Hardcode aber keine Variable. Sicher wird das ausgegeben, ist aber gleich wie {1=s'MEIN TEXT'}. Es steckt 0 Funktion dahinter.

 

Der Weg ist so wie ich das im #13 erläutert habe. Erst anlegen damit es überall verfügbar ist, dann übergeben und dann übersetzen. So entstehen keine Lücken und alles funktioniert ohne Probleme.

Link to comment
Share on other sites

Na gut, hatte bisher nicht die Zeit gefunden, mich damit genauer zu befassen - sonst hätt ich das ganze wahrscheinlich auch gleich als Modul geschrieben ;)

Werd mich also doch mal mit dem ganzen näher auseinander setzen müssen :(

 

Vielen Dank für die umfangreiche Unterstützung

 

Schönen abend noch

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