Inline übersetzen Chrome Bug?

7

Vielleicht bin ich es nur, aber im Chrome-Browser funktioniert die Inline-Übersetzung nicht. Die roten Kästchen werden angezeigt und wenn ich mit der Maus darüber fahre, erscheint das Buchsymbol, aber wenn ich darauf klicke, passiert nichts. Ich hatte das gleiche Problem auf verschiedenen Servern.

Andere Browser wie Firefox und IE sind in Ordnung.

Gibt es dafür einen Bugfix?

PiTheNumber
quelle
Was meinst du mit "funktioniert nicht"? Es erscheint nicht, es speichert nicht, bekommen Sie js Fehler?
Marius

Antworten:

11

Ja, die Inline-Übersetzungsfunktion ist in Google Chrome nicht verfügbar. Als die Inline-Übersetzungsfunktion ursprünglich entwickelt wurde, verwendete Magento ein nicht standardmäßiges translateAttribut in DOM-Elementen, um übersetzbaren Text zu kennzeichnen .

Seitdem verfügt Google Chrome über eine Funktion, translatemit der jedem in Javascript verfügbaren DOM-Knoten eine Standardeigenschaft hinzugefügt wird (zu stark vereinfacht).

Dies wirkt sich wiederum auf den PrototypJS-xpath-Code von Magento aus, der zur Implementierung der Übersetzungsfunktion verwendet wird. Insbesondere dies

if (!$(target).match('*[translate]')) {
    target = target.up('*[translate]');
}

Die Lösung, die ich letztes Jahr gefunden habe, bestand darin, jeder Seite das folgende Stück Javascript hinzuzufügen, wenn Inline-Übersetzungen aktiv sind.

if(Object.__defineGetter__)
{
    var hasTranslateAttribute = function(){
        return $(this).hasAttribute("translate");
    };
    document.observe("dom:loaded", function() {
        $$('*').each(function(theElement){
             theElement.__defineGetter__("translate", hasTranslateAttribute);
        });
    });
}
Alan Storm
quelle
Es ist immer noch ein Problem. Aber die Zeile, die das Problem ist, ist ein paar Punkte weiter und ich habe sie folgendermaßen geändert: // if (Ziel && $ (Ziel) .match ('* [translate]')) {if (Ziel && $ (Ziel). readAttribute ('translate')) {
Phazei
5

Für Enterprise-Kunden steht ein Magento-Core-Patch (SUPEE-1373) zur Verfügung, der von uns getestet wurde und funktioniert.

Grundsätzlich werden alle translateEigenschaften im data-translategesamten Code ersetzt.

Alex
quelle
Ist es nur ich oder ist dieser "SUPEE-1373" -Patch gerade aus dem Internet verschwunden? google.com/…
7ochem
@ 7ochem: Der Patch ist nur über den Magento Enterprise-Support verfügbar. Leider wurde das Problem in CE 1.9 nicht behoben, auch wenn der Patch vor der Veröffentlichung von CE 1.9
Alex
Ich habe die gesamte Dateiliste in meinen technischen EE-Ressourcen
durchgesehen
Öffnen Sie einfach eine Supportanfrage und fragen Sie nach dem Patch.
Alex
-1

Die von Alan Storm bereitgestellte Lösung funktioniert. Fügen Sie das Snippet direkt danach zu /app/code/core/Mage/Core/Model/Translate/Inline.php hinzu, damit es auf der gesamten Site funktioniert

<script type="text/javascript">
new TranslateInline('translate-inline-trig', '<?php echo $ajaxUrl ?>', '<?php
    echo Mage::getDesign()->getArea() ?>');

Das ist Zeile 278 in 1.7.

Daniel Oosterhuis
quelle
3
"Ja wirklich?" Kernwechsel? Schlagen Sie dem Benutzer zumindest vor, die Umschreibungen von Magento zu verwenden. Es gibt andere Möglichkeiten, diese Änderung ohne Umschreiben durchzuführen.
Benmarks
Ich habe es in die Javascript-Datei meiner Vorlage eingefügt.
PiTheNumber