質問

たぶんそれは私だけかもしれませんが、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行です。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top