インライン翻訳クロムバグ?
-
16-10-2019 - |
質問
たぶんそれは私だけかもしれませんが、Chromeブラウザのインラインでは翻訳は機能しません。赤い箱が表示され、マウスをホバリングすると、本のアイコンが表示されますが、クリックすると何も起こりません。さまざまなサーバーで同じ問題がありました。
FirefoxやIEのような他のブラウザは問題ありません。
これにバグフィックスはありますか?
解決
はい、インライン翻訳機能はGoogle Chromeで壊れています。インライン翻訳機能が元々開発されたとき、マゼントは非標準を利用しました 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 Patch(Supee-1373)があります。
基本的にすべてを置き換えます translate
プロパティによる data-translate
コード全体。
Alan Storm Worksが提供するソリューション。サイト全体で動作させるには、snippetを/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行です。