Seite 1 von 1

Bug in Übersetzung bei Modul-Input

Verfasst: So 27. Aug 2006, 19:42
von i-fekt
Folgender Code löst einen Fehler bei der Übersetzung aus.

Code: Alles auswählen

if( "CMS_VALUE[1]" == "1" ) { $send_email = " checked=\"checked\""; } else { $send_email = ""; }
Die Modul-Übersetzung will hier schon die erste Zeile PHP-Code übersetzen. Da wir bereits im PHP sind dachte ich es geht so. Nehme ich folgenden Code arbeitet die Modul-Übersetzung korrekt.

Code: Alles auswählen

?><?php

if( "CMS_VALUE[1]" == "1" ) { $send_email = " checked=\"checked\""; } else { $send_email = ""; }

Verfasst: Mo 28. Aug 2006, 08:36
von emergence
wie wirkt sich der fehler genau aus ?

Verfasst: Mo 28. Aug 2006, 08:50
von i-fekt
Erstell einfach mal kurz ein Modul mit dem Inhalt und kick auf "Übersetzung", ist schneller als wenn ich versuche das zu erklären. ;)

Verfasst: Mo 28. Aug 2006, 11:12
von emergence
momentan keine zeit eine aussagekräftige beschreibung des problems zu verfassen...
ich verschiebs mal nach bugs...

Verfasst: Mi 6. Sep 2006, 00:26
von HerrB
Schöner Bug.

Die parseModuleForStrings-Methode in classes/contenido/class.module.php ermittelt für ein nicht-leeres Modul ohne jegliche mi18n-Einträge grundsätzlich einen Eintrag in einem Array. Nun wird in diesem Eintrag ") gesucht, hier gefunden und dann der String zwischen Anfang und ") als zu übersetzen eingetragen. Funky.

Das lässt sich recht einfach korrigieren: Oberhalb von

Code: Alles auswählen

foreach ($varr as $key => $value)
ein

Code: Alles auswählen

if (count($varr) > 0)
{
einfügen und vor

Code: Alles auswählen

/* Make the strings unique */
        return array_unique($strings);
ein zum Schließen einfügen. Das geht, da selbst ein einzelnes mi18n("Hallo") zwei Einträge im Array liefert.

Vorgesehen für Checkin.

Gruß
HerrB