-
16-10-2019 - |
题
也许只是我,但是在Chrome浏览器中,翻译不起作用。显示了红色框,如果我将鼠标悬停在鼠标上,则书籍图标出现,但是如果我单击它,则什么也不会发生。我在不同的服务器上也有同样的问题。
像Firefox和IE这样的其他浏览器都很好。
有这个错误吗?
解决方案
是的,在Google Chrome中,内联翻译功能破坏了。回到最初开发内联翻译功能时,Magento使用了非标准 translate
DOM元素中的属性属于标志可翻译的文本。
从那以后,Google Chrome具有默认值的功能 translate
将属性添加到JavaScript中可用的每个DOM节点(超过简化)中。
反过来,这与Magento的Prototypejs XPath代码进行了交流,用于实现翻译功能。具体来说,这
if (!$(target).match('*[translate]')) {
target = target.up('*[translate]');
}
我解决了我想到的 去年 当内联翻译处于活动状态时,将以下JavaScript添加到每个页面。
if(Object.__defineGetter__)
{
var hasTranslateAttribute = function(){
return $(this).hasAttribute("translate");
};
document.observe("dom:loaded", function() {
$$('*').each(function(theElement){
theElement.__defineGetter__("translate", hasTranslateAttribute);
});
});
}
其他提示
对于企业客户,有一个可用的Magento Core补丁(Supee-1373),由我们和工作进行了测试。
它基本上取代了所有 translate
属性 data-translate
跨代码。
Alan Storm提供的解决方案作品。为了使其在整个网站上工作,只需将片段添加到/app/code/core/mage/core/model/translate/inline.php,之后
<script type="text/javascript">
new TranslateInline('translate-inline-trig', '<?php echo $ajaxUrl ?>', '<?php
echo Mage::getDesign()->getArea() ?>');
那是1.7中的第278行。