Domanda

Forse sono solo io, ma nel browser Chrome in linea tradurre non funziona. Le caselle rosse sono mostrate e se mi passa il mouse l'icona del libro appare, ma se lo scatto non succede nulla. Ho avuto lo stesso problema su diversi server.

Altri browser come Firefox e IE vanno bene.

C'è un bugfix per questo?

È stato utile?

Soluzione

Sì, la funzione di traduzione in linea è rotto in Google Chrome. Indietro quando la funzione di traduzione in linea è stato originariamente sviluppato, Magento fatto uso di un attributo translate non standard in elementi DOM a bandiera testo traducibile.

Da allora, Google Chrome ha una caratteristica in cui una proprietà predefinita translate viene aggiunto a ogni nodo DOM disponibili in javascript (oltre semplificazione).

Questa, a sua volta, interferisce con PrototypeJS di Magento XPath codice utilizzato per implementare la funzione di traduzione. In particolare, questo

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

soluzione che ho mi è venuta scorso anno è stato quello di aggiungere la seguente po 'di javascript per ogni pagina quando traduzioni in linea sono attivi.

if(Object.__defineGetter__)
{
    var hasTranslateAttribute = function(){
        return $(this).hasAttribute("translate");
    };
    document.observe("dom:loaded", function() {
        $$('*').each(function(theElement){
             theElement.__defineGetter__("translate", hasTranslateAttribute);
        });
    });
}

Altri suggerimenti

Per i clienti aziendali, c'è una patch nucleo Magento disponibili (SUPEE-1373) che è stato testato da noi e lavora.

Si sostituisce praticamente tutte le proprietà translate dal data-translate tutto il codice.

La soluzione fornita da Alan Tempesta funziona. Per farlo funzionare in tutto il sito, è sufficiente aggiungere il frammento di /app/code/core/Mage/Core/Model/Translate/Inline.php, subito dopo

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

Quello della linea 278 in 1.7.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top