¿Traducir en línea Chrome Bug?
-
16-10-2019 - |
Pregunta
Tal vez solo soy yo, pero en Chrome Browser en línea la traducción no funciona. Se muestran los cuadros rojos y si pasa el ratón el icono del libro, pero si hago clic, no sucede nada. Tuve el mismo problema en diferentes servidores.
Otros navegadores como Firefox e IE están bien.
¿Hay una interrupción para esto?
Solución
Sí, la función de traducción en línea está rota en Google Chrome. Cuando se desarrolló originalmente la función de traducción en línea, Magento usó un no estándar translate
Atributo en los elementos DOM al texto traducible con bandera.
Desde entonces, Google Chrome tiene una característica donde un valor predeterminado translate
La propiedad se agrega a todos los nodos DOM disponibles en JavaScript (sobre simplificación).
Esto, a su vez, interfiere con el código PrototypeJS XPath de Magento utilizado para implementar la función de traducción. Específicamente, esto
if (!$(target).match('*[translate]')) {
target = target.up('*[translate]');
}
Yo solución que se me ocurrió el año pasado Fue para agregar el siguiente bit de JavaScript a cada página cuando las traducciones en línea están activas.
if(Object.__defineGetter__)
{
var hasTranslateAttribute = function(){
return $(this).hasAttribute("translate");
};
document.observe("dom:loaded", function() {
$$('*').each(function(theElement){
theElement.__defineGetter__("translate", hasTranslateAttribute);
});
});
}
Otros consejos
Para los clientes empresariales, hay un parche Magento Core disponible (SUPEE-1373) que fue probado por nosotros y trabaja.
Básicamente reemplaza todo el translate
propiedades por data-translate
a través del código.
La solución proporcionada por Alan Storm Works. Para que funcione en todo el sitio, simplemente agregue el fragmento a /app/code/core/mage/core/model/translate/inline.php, justo después
<script type="text/javascript">
new TranslateInline('translate-inline-trig', '<?php echo $ajaxUrl ?>', '<?php
echo Mage::getDesign()->getArea() ?>');
Esa es la línea 278 en 1.7.