Seite 1 von 1

[con 4.9.12] Übersetzung kaputt

Verfasst: Mi 17. Mai 2017, 10:11
von mattmarr
Hallo!

Ärgerliches Problem, das wir hier auch auf anderen Contenido Installationen reproduzieren können.

Wenn man in einem Modul, in der Übersetzung etwas ändert, wird am Ende der ../lang/*.txt immer eine neue Leerzeile hinzugefügt.
Fügt man dann im PHP Code eine weitere Zeile mit mi18n("") hinzu und Übersetzt diese öfter, kommen weitere Leerzeilen hinzu.
Die bereits vorhanden Leerzeilen des vorherigen mi18n("") bleiben an der übersetzten stelle weiterhin bestehen.

Könntet Ihr das bitte noch in der kommenden Version korrigieren.

Es ist sehr sehr ärgerlich, wenn bei einer laufende Seite plötzlich die Platzhalter aus dem mi18n("") zu sehen bekommt. Und das nur, weil ich etwas an der Modul-Übersetzung verändert oder hinzugefügt habe. :cry:


Gruß
Matthias

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Do 18. Mai 2017, 10:41
von frederic.schneider_4fb
Lieber Matthias,

ich schaue mir das gerne noch einmal an. Allerdings ist die Leerzeile bislang immer nötig gewesen, da es ansonsten zu einem Parsing-Fehler kommt. Wir müssten dann einiges umstellen, das natürlich technisch möglich ist, dann aber zwischen verschiedenen Versionen zu Inkompatibilitäten führen könnte. Deshalb will ich Dir da, das gehört zur Ehrlichkeit dazu, für die "kommende Version" keine Hoffnung machen

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Do 18. Mai 2017, 13:12
von mattmarr
Hallo Frederik,
frederic.schneider_4fb hat geschrieben:
Do 18. Mai 2017, 10:41
ich schaue mir das gerne noch einmal an. Allerdings ist die Leerzeile bislang immer nötig gewesen, ....
Eine Zeile wäre ja noch ok, aber viele auf einmal?
Hier mal ein Beispiel:

Code: Alles auswählen

xx=xxxxx
xxxx=xxx
.
.
xx=xxxxxx
xxx=xxxx
.
xxx=xxxx
.
.
.
.

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Do 18. Mai 2017, 14:29
von frederic.schneider_4fb
Kannst Du mir mal bitte eine solche Übersetzungsdatei an frederic.schneider@4fb.de mit einem kurzen Hinweis, wie ich das reproduzieren kann, mailen? Dann schaue ich mir das an. Ich bin allerdings erst wieder übernächste Woche im Büro (nächste Woche ist u. a. Feiertag). Unter Umständen kann ich Dir dann aber weiterhelfen. Okay? :-)

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Do 18. Mai 2017, 15:37
von mattmarr
frederic.schneider_4fb hat geschrieben:
Do 18. Mai 2017, 14:29
Kannst Du mir mal bitte eine solche Übersetzungsdatei an frederic.schneider@4fb.de mit einem kurzen Hinweis, wie ich das reproduzieren kann, mailen? Dann schaue ich mir das an. Ich bin allerdings erst wieder übernächste Woche im Büro (nächste Woche ist u. a. Feiertag). Unter Umständen kann ich Dir dann aber weiterhelfen. Okay? :-)
Ich werde mal schauen was sich machen läßt.
Wenn ich es nicht vergesse, geht morgen ein oder zwei Beispiele raus.


Grus
Matthias

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Do 18. Mai 2017, 15:41
von frederic.schneider_4fb
Danke :)

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Di 13. Jun 2017, 08:53
von mattmarr
Hallo Frederic!

Hab dir eine Email geschickt.


Gruß
Matthias

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Di 13. Jun 2017, 10:01
von Oldperl
mattmarr hat geschrieben:
Do 18. Mai 2017, 15:37
Wenn ich es nicht vergesse, geht morgen ein oder zwei Beispiele raus.
Doch vergessen... :mrgreen:

Aber das geht uns allen so! :wink:

Gruß aus Franken

Ortwin

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Di 13. Jun 2017, 10:30
von mattmarr
Hallo Ortwin!
Oldperl hat geschrieben:
Di 13. Jun 2017, 10:01
Doch vergessen... :mrgreen:
irgendwie schon. :roll:




Gruß
Matthias

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Do 22. Jun 2017, 09:11
von frederic.schneider_4fb
Liebe Community,

bitte tauscht in der Datei class.module.filetranslation.php (Ordner contenido/classes/module) die Funktion _serializeArray() mit folgender neuen Variante aus:

Code: Alles auswählen

     /**
     * This method serialize an array.
     *
     * $key.[Divider].$value."\r\n"
     *
     * @param array $wordListArray
     * @return string
     */
    private function _serializeArray($wordListArray) {
        $retString = '';
        foreach ($wordListArray as $key => $value) {
            // Original String [Divider] Translation String
            if (strlen($key) > 0) {
                $retString .= trim($key . self::$originalTranslationDivider . $value) . "\r\n";
            }
        }

        return trim($retString);
    }

Re: [con 4.9.12] Übersetzung kaputt

Verfasst: Do 22. Jun 2017, 09:22
von frederic.schneider_4fb
In der selben Datei in der Funktion saveTranslationArray() muss noch die Zeile

Code: Alles auswählen

if (cFileHandler::write($fileName, $this->_serializeArray($escapedArray)) === false) {
durch

Code: Alles auswählen

if (cFileHandler::write($fileName, $this->_serializeArray($escapedArray) . "\r\n") === false) {
ersetzt werden. Eine Leerzeile ist nämlich zwingend. Das habe ich eben vergessen